refactor(flow):优化节点数据处理与循环组件配置

- 完善输入输出数据结构,支持数组类型定义- 改进循环结束组件的自定义配置序列化逻辑
- 增强数据转换时的字段兼容性处理
master
钟良源 4 months ago
parent ae70967f86
commit 26fe3794fa

@ -138,7 +138,6 @@ const ConditionsTable: React.FC<ConditionsTableProps> = ({
]; ];
const convertData = (originData) => { const convertData = (originData) => {
console.log('apiOutsList:', apiOutsList);
const apiOutIds = apiOutsList; const apiOutIds = apiOutsList;
const conditions = originData.map(item => { const conditions = originData.map(item => {
let expression = ''; let expression = '';

@ -367,7 +367,11 @@ export const useFlowCallbacks = (
}, },
component: { component: {
type: 'LOOP_END', type: 'LOOP_END',
customDef: '', customDef: JSON.stringify({
apiOutIds: ['continue', 'break'],
conditions: [],
loopStartNodeId: loopStartNode.id
}),
loopStartNodeId: loopStartNode.id // 这里的参数是为了提供在组件内部处理数据是使用最后这个字段要序列化后放进customDef loopStartNodeId: loopStartNode.id // 这里的参数是为了提供在组件内部处理数据是使用最后这个字段要序列化后放进customDef
} }
} }
@ -510,6 +514,8 @@ export const useFlowCallbacks = (
// 删除节点函数 // 删除节点函数
const deleteNode = useCallback((node: Node) => { const deleteNode = useCallback((node: Node) => {
console.log('node:', node);
setNodes((nds: Node[]) => nds.filter((n) => n.id !== node.id)); setNodes((nds: Node[]) => nds.filter((n) => n.id !== node.id));
setEdges((eds: Edge[]) => eds.filter((e) => e.source !== node.id && e.target !== node.id)); setEdges((eds: Edge[]) => eds.filter((e) => e.source !== node.id && e.target !== node.id));

@ -142,7 +142,7 @@ export const convertFlowData = (flowData: any, useDefault = true) => {
registerNodeType('LOOP', LoopNode, '循环'); registerNodeType('LOOP', LoopNode, '循环');
} }
} }
// 构造节点数据 // 构造节点数据
const node: any = { const node: any = {
id: nodeConfig.nodeId, id: nodeConfig.nodeId,
@ -280,10 +280,11 @@ export const revertFlowData = (nodes: any[], edges: any[]) => {
// 处理 dataIns输入数据 // 处理 dataIns输入数据
if (parameters.dataIns && parameters.dataIns.length > 0) { if (parameters.dataIns && parameters.dataIns.length > 0) {
nodeConfig.dataIns = parameters.dataIns.map((input: any) => ({ nodeConfig.dataIns = parameters.dataIns.map((input: any) => ({
id: input.name, id: input.name || input.id,
desc: input.desc, desc: input.desc,
dataType: input.dataType, 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, id: output.name,
desc: output.desc, desc: output.desc,
dataType: output.dataType, dataType: output.dataType,
defaultValue: output.defaultValue defaultValue: output.defaultValue,
arrayType: output.arrayType || null
})); }));
} }

Loading…
Cancel
Save