diff --git a/frontend/src/pages/Workflow/Definition/Design/components/NodeConfigModal.tsx b/frontend/src/pages/Workflow/Definition/Design/components/NodeConfigModal.tsx index 002f412f..44c55c55 100644 --- a/frontend/src/pages/Workflow/Definition/Design/components/NodeConfigModal.tsx +++ b/frontend/src/pages/Workflow/Definition/Design/components/NodeConfigModal.tsx @@ -44,12 +44,14 @@ const NodeConfigDrawer: React.FC = ({ }) => { const [panelValues, setPanelValues] = React.useState({}); const [localValues, setLocalValues] = React.useState({}); + const [formValues, setFormValues] = React.useState({}); useEffect(() => { if (nodeDefinition) { // 使用 convertJsonSchemaToColumns 获取字段配置 const panelColumns = convertJsonSchemaToColumns(nodeDefinition.panelVariablesSchema || { type: 'object', properties: {} }); const localColumns = convertJsonSchemaToColumns(nodeDefinition.localVariablesSchema || { type: 'object', properties: {} }); + const formColumns = convertJsonSchemaToColumns(nodeDefinition.formVariablesSchema || { type: 'object', properties: {} }); // 初始化表单值,包括默认值 const initialPanelValues = panelColumns.reduce((acc, column) => { @@ -66,6 +68,13 @@ const NodeConfigDrawer: React.FC = ({ return acc; }, {} as Variables); + const initialFormValues = formColumns.reduce((acc, column) => { + if (column.initialValue !== undefined) { + acc[column.dataIndex] = column.initialValue; + } + return acc; + }, {} as Variables); + // 设置初始值 setPanelValues({ ...initialPanelValues, @@ -75,14 +84,21 @@ const NodeConfigDrawer: React.FC = ({ ...initialLocalValues, ...(nodeDefinition.localVariables || {}) }); + setFormValues({ + ...initialFormValues, + ...(nodeDefinition.formVariables || {}) + }); // 打印调试信息 console.log('Panel Columns:', panelColumns); console.log('Local Columns:', localColumns); + console.log('Form Columns:', formColumns); console.log('Initial Panel Values:', initialPanelValues); console.log('Initial Local Values:', initialLocalValues); + console.log('Initial Form Values:', initialFormValues); console.log('Node Definition Panel Variables:', nodeDefinition.panelVariables); console.log('Node Definition Local Variables:', nodeDefinition.localVariables); + console.log('Node Definition Form Variables:', nodeDefinition.formVariables); } }, [nodeDefinition]); @@ -90,7 +106,8 @@ const NodeConfigDrawer: React.FC = ({ const updatedNodeDefinition = { ...nodeDefinition, panelVariables: panelValues, - localVariables: localValues + localVariables: localValues, + formVariables: formValues }; onOk(updatedNodeDefinition); }; @@ -168,6 +185,10 @@ const NodeConfigDrawer: React.FC = ({ setLocalValues(prev => ({...prev, [key]: value})); }; + const handleFormChange = (key: string, value: any) => { + setFormValues(prev => ({...prev, [key]: value})); + }; + const items: TabsProps['items'] = [ nodeDefinition?.panelVariablesSchema && { key: 'panel', @@ -186,6 +207,15 @@ const NodeConfigDrawer: React.FC = ({ {renderFormFields(nodeDefinition.localVariablesSchema, localValues, handleLocalChange)} ) + }, + nodeDefinition?.formVariablesSchema && { + key: 'form', + label: '表单配置(预览)', + children: ( +
+ {renderFormFields(nodeDefinition.formVariablesSchema, formValues, handleFormChange)} +
+ ) } ].filter(Boolean) as TabsProps['items'];