refactor(flowEditor): 重构节点类型定义和管理
parent
3760ba410e
commit
d2b6d8eb10
@ -0,0 +1,57 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { NodeTypes } from '@xyflow/react';
|
||||||
|
import TextUpdaterNode from './textUpdateNode/TextUpdaterNode';
|
||||||
|
import StartNode from './startNode/StartNode';
|
||||||
|
import EndNode from './endNode/EndNode';
|
||||||
|
import DraggableNode from './draggableNode/DraggableNode';
|
||||||
|
import BasicNode from './basicNode/BasicNode';
|
||||||
|
|
||||||
|
// 定义所有可用的节点类型
|
||||||
|
export const nodeTypes: NodeTypes = {
|
||||||
|
textUpdater: TextUpdaterNode,
|
||||||
|
start: StartNode,
|
||||||
|
end: EndNode,
|
||||||
|
draggable: DraggableNode,
|
||||||
|
BASIC: BasicNode
|
||||||
|
};
|
||||||
|
|
||||||
|
// 节点类型映射,用于创建节点时的类型查找
|
||||||
|
export const nodeTypeMap: Record<string, string> = {
|
||||||
|
'textUpdater': 'textUpdater',
|
||||||
|
'start': 'start',
|
||||||
|
'end': 'end',
|
||||||
|
'draggable': 'draggable',
|
||||||
|
'basic': 'BASIC'
|
||||||
|
};
|
||||||
|
|
||||||
|
// 节点显示名称映射
|
||||||
|
export const nodeTypeNameMap: Record<string, string> = {
|
||||||
|
'textUpdater': '文本更新节点',
|
||||||
|
'start': '开始节点',
|
||||||
|
'end': '结束节点',
|
||||||
|
'draggable': '任务节点',
|
||||||
|
'basic': '基础节点'
|
||||||
|
};
|
||||||
|
|
||||||
|
// 注册新节点类型的函数
|
||||||
|
export const registerNodeType = (
|
||||||
|
type: string,
|
||||||
|
component: React.ComponentType<any>,
|
||||||
|
displayName?: string
|
||||||
|
) => {
|
||||||
|
// 在nodeTypes中注册节点组件
|
||||||
|
(nodeTypes as any)[type] = component;
|
||||||
|
|
||||||
|
// 在nodeTypeMap中添加类型映射
|
||||||
|
nodeTypeMap[type] = type;
|
||||||
|
|
||||||
|
// 在nodeTypeNameMap中添加显示名称
|
||||||
|
nodeTypeNameMap[type] = displayName || type;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default {
|
||||||
|
nodeTypes,
|
||||||
|
nodeTypeMap,
|
||||||
|
nodeTypeNameMap,
|
||||||
|
registerNodeType
|
||||||
|
};
|
||||||
Loading…
Reference in New Issue