From 26fe3794fa4ece4df34a6aab98b45bf11d00371a Mon Sep 17 00:00:00 2001 From: ZLY Date: Wed, 15 Oct 2025 16:22:40 +0800 Subject: [PATCH] =?UTF-8?q?refactor(flow):=E4=BC=98=E5=8C=96=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E4=B8=8E=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E7=BB=84=E4=BB=B6=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完善输入输出数据结构,支持数组类型定义- 改进循环结束组件的自定义配置序列化逻辑 - 增强数据转换时的字段兼容性处理 --- .../nodeEditors/components/ConditionsTable.tsx | 1 - src/hooks/useFlowCallbacks.ts | 8 +++++++- src/utils/convertFlowData.ts | 10 ++++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/components/FlowEditor/nodeEditors/components/ConditionsTable.tsx b/src/components/FlowEditor/nodeEditors/components/ConditionsTable.tsx index b6422b4..276819b 100644 --- a/src/components/FlowEditor/nodeEditors/components/ConditionsTable.tsx +++ b/src/components/FlowEditor/nodeEditors/components/ConditionsTable.tsx @@ -138,7 +138,6 @@ const ConditionsTable: React.FC = ({ ]; const convertData = (originData) => { - console.log('apiOutsList:', apiOutsList); const apiOutIds = apiOutsList; const conditions = originData.map(item => { let expression = ''; diff --git a/src/hooks/useFlowCallbacks.ts b/src/hooks/useFlowCallbacks.ts index ec036c6..eca0cd5 100644 --- a/src/hooks/useFlowCallbacks.ts +++ b/src/hooks/useFlowCallbacks.ts @@ -367,7 +367,11 @@ export const useFlowCallbacks = ( }, component: { type: 'LOOP_END', - customDef: '', + customDef: JSON.stringify({ + apiOutIds: ['continue', 'break'], + conditions: [], + loopStartNodeId: loopStartNode.id + }), loopStartNodeId: loopStartNode.id // 这里的参数是为了提供在组件内部处理数据是使用,最后这个字段要序列化后放进customDef } } @@ -510,6 +514,8 @@ export const useFlowCallbacks = ( // 删除节点函数 const deleteNode = useCallback((node: Node) => { + console.log('node:', node); + setNodes((nds: Node[]) => nds.filter((n) => n.id !== node.id)); setEdges((eds: Edge[]) => eds.filter((e) => e.source !== node.id && e.target !== node.id)); diff --git a/src/utils/convertFlowData.ts b/src/utils/convertFlowData.ts index 4ab6371..f0aeb9c 100644 --- a/src/utils/convertFlowData.ts +++ b/src/utils/convertFlowData.ts @@ -142,7 +142,7 @@ export const convertFlowData = (flowData: any, useDefault = true) => { registerNodeType('LOOP', LoopNode, '循环'); } } - + // 构造节点数据 const node: any = { id: nodeConfig.nodeId, @@ -280,10 +280,11 @@ export const revertFlowData = (nodes: any[], edges: any[]) => { // 处理 dataIns(输入数据) if (parameters.dataIns && parameters.dataIns.length > 0) { nodeConfig.dataIns = parameters.dataIns.map((input: any) => ({ - id: input.name, + id: input.name || input.id, desc: input.desc, dataType: input.dataType, - defaultValue: input.defaultValue + defaultValue: input.defaultValue, + arrayType: input.arrayType || null })); } @@ -293,7 +294,8 @@ export const revertFlowData = (nodes: any[], edges: any[]) => { id: output.name, desc: output.desc, dataType: output.dataType, - defaultValue: output.defaultValue + defaultValue: output.defaultValue, + arrayType: output.arrayType || null })); }