From 2ff0bae9d04d6d0dd6b2c5b19aac40271125a54a Mon Sep 17 00:00:00 2001 From: Zeke Zhang <958414905@qq.com> Date: Thu, 19 Jun 2025 06:51:18 +0800 Subject: [PATCH] feat: add icon support to ActionModel button --- .../client/src/flow/models/ActionModel.tsx | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/core/client/src/flow/models/ActionModel.tsx b/packages/core/client/src/flow/models/ActionModel.tsx index d7484861f1..6bb46a86db 100644 --- a/packages/core/client/src/flow/models/ActionModel.tsx +++ b/packages/core/client/src/flow/models/ActionModel.tsx @@ -11,6 +11,8 @@ import { FlowModel } from '@nocobase/flow-engine'; import { Button } from 'antd'; import type { ButtonProps } from 'antd/es/button'; import React from 'react'; +import IconPicker from '../../schema-component/antd/icon-picker/IconPicker'; +import { Icon } from '../../icon/Icon'; export class ActionModel extends FlowModel { declare props: ButtonProps; @@ -22,8 +24,13 @@ export class ActionModel extends FlowModel { render() { const props = { ...this.defaultProps, ...this.props }; + const icon = ; - return ; + return ( + + ); } } @@ -36,22 +43,24 @@ ActionModel.registerFlow({ title: '编辑按钮', uiSchema: { title: { - type: 'string', - title: '标题', 'x-decorator': 'FormItem', 'x-component': 'Input', - 'x-component-props': { - placeholder: '请输入标题', - }, + title: 'Button title', + }, + icon: { + 'x-decorator': 'FormItem', + 'x-component': IconPicker, + title: 'Button icon', }, }, defaultParams(ctx) { return { title: ctx.model.defaultProps.title, + icon: ctx.model.defaultProps.icon, }; }, handler(ctx, params) { - ctx.model.setProps('children', params.title); + ctx.model.setProps(params); ctx.model.setProps('onClick', (event) => { ctx.model.dispatchEvent('click', { ...ctx.extra,