feat(flow): 支持多种节点类型注册

- 新增 BasicNode、ImageNode、CodeNode 和 RestNode 组件导入
- 重构节点注册逻辑,使用 getNodeComponent 动态获取节点组件
-优化节点类型判断流程,提高代码可维护性- 调整导入语句顺序,统一代码风格
- 修复节点类型映射逻辑,确保正确注册对应组件
master
钟良源 4 months ago
parent e0bba0753e
commit 3627621454

@ -1,8 +1,12 @@
import { nodeTypeMap, registerNodeType } from '@/components/FlowEditor/node'; import { nodeTypeMap, registerNodeType } from '@/components/FlowEditor/node';
import store from '@/store/index';
import LocalNode from '@/components/FlowEditor/node/localNode/LocalNode'; import LocalNode from '@/components/FlowEditor/node/localNode/LocalNode';
import LoopNode from '@/components/FlowEditor/node/loopNode/LoopNode'; import LoopNode from '@/components/FlowEditor/node/loopNode/LoopNode';
import store from '@/store/index';
import SwitchNode from '@/components/FlowEditor/node/switchNode/SwitchNode'; import SwitchNode from '@/components/FlowEditor/node/switchNode/SwitchNode';
import BasicNode from '@/components/FlowEditor/node/basicNode/BasicNode';
import ImageNode from '@/components/FlowEditor/node/imageNode/ImageNode';
import CodeNode from '@/components/FlowEditor/node/codeNode/CodeNode';
import RestNode from '@/components/FlowEditor/node/restNode/RestNode';
/** /**
* flow editor nodes edges * flow editor nodes edges
@ -118,7 +122,7 @@ export const convertFlowData = (flowData: any, useDefault = true) => {
// 注册其他节点类型 // 注册其他节点类型
const nodeMap = Array.from(Object.values(nodeTypeMap).map(key => key)); const nodeMap = Array.from(Object.values(nodeTypeMap).map(key => key));
if (!nodeMap.includes(nodeType) && nodeType !== 'start' && nodeType !== 'end' && nodeType !== 'LOOP') { if (!nodeMap.includes(nodeType) && nodeType !== 'start' && nodeType !== 'end' && nodeType !== 'LOOP') {
registerNodeType(nodeType, nodeType === 'SWITCH' ? SwitchNode : LocalNode, nodeConfig.componentName); registerNodeType(nodeType, getNodeComponent(nodeType), nodeConfig.componentName);
} }
nodes.push(node); nodes.push(node);
@ -649,5 +653,22 @@ const getCurrentProjectStoreData = () => {
} }
return result; return result;
};
// 根据节点类型获取对应的节点组件
const getNodeComponent = (nodeType: string) => {
switch (nodeType) {
case 'BASIC':
return BasicNode;
case 'SWITCH':
return SwitchNode;
case 'IMAGE':
return ImageNode;
case 'CODE':
return CodeNode;
case 'REST':
return RestNode;
default:
return LocalNode;
}
}; };
Loading…
Cancel
Save