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,