From ebc6de6965690c2e50d431e005ddc5c2f26fcbf0 Mon Sep 17 00:00:00 2001 From: ZLY Date: Wed, 27 Aug 2025 14:32:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(flowEditor):=20=E6=B7=BB=E5=8A=A0=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E8=8A=82=E7=82=B9=E7=BB=84=E4=BB=B6=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE=E8=BD=AC=E6=8D=A2=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 flowEditor 目录下新增 basicNode 文件夹和 BasicNode 组件 - 更新 convertFlowData 函数,增加 nodeType 字段 - 在 FlowEditor 组件中注册 BasicNode 节点类型 --- src/pages/flowEditor/index.tsx | 4 ++- .../flowEditor/node/basicNode/BasicNode.tsx | 29 +++++++++++++++++++ src/utils/convertFlowData.ts | 3 +- 3 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/pages/flowEditor/node/basicNode/BasicNode.tsx diff --git a/src/pages/flowEditor/index.tsx b/src/pages/flowEditor/index.tsx index be0c542..63bf0b8 100644 --- a/src/pages/flowEditor/index.tsx +++ b/src/pages/flowEditor/index.tsx @@ -18,6 +18,7 @@ import TextUpdaterNode from './node/textUpdateNode/TextUpdaterNode'; import StartNode from './node/startNode/StartNode'; import EndNode from './node/endNode/EndNode'; import DraggableNode from './node/draggableNode/DraggableNode'; +import BasicNode from './node/basicNode/BasicNode'; import SideBar from './sideBar/sideBar'; import { convertFlowData } from '@/utils/convertFlowData'; import { exampleFlowData } from '@/pages/flowEditor/test/exampleFlowData'; @@ -26,7 +27,8 @@ const nodeTypes: NodeTypes = { textUpdater: TextUpdaterNode, start: StartNode, end: EndNode, - draggable: DraggableNode + draggable: DraggableNode, + BASIC: BasicNode }; const { nodes: convertedNodes, edges: convertedEdges } = convertFlowData(exampleFlowData); diff --git a/src/pages/flowEditor/node/basicNode/BasicNode.tsx b/src/pages/flowEditor/node/basicNode/BasicNode.tsx new file mode 100644 index 0000000..d0747c4 --- /dev/null +++ b/src/pages/flowEditor/node/basicNode/BasicNode.tsx @@ -0,0 +1,29 @@ +import React from 'react'; +import styles from '@/pages/flowEditor/node/style/base.module.less'; +import NodeContent from '@/pages/flowEditor/components/nodeContent'; + +interface BasicNodeData { + title?: string; + parameters?: { + inputs?: any[]; + outputs?: any[]; + }; + showFooter?: boolean; + + [key: string]: any; +} + +const BasicNode = ({ data }: { data: BasicNodeData }) => { + const title = data.title || '基础节点'; + return ( +
+
+ {title} +
+ + +
+ ); +}; + +export default BasicNode; \ No newline at end of file diff --git a/src/utils/convertFlowData.ts b/src/utils/convertFlowData.ts index f5f5de7..821a766 100644 --- a/src/utils/convertFlowData.ts +++ b/src/utils/convertFlowData.ts @@ -51,7 +51,8 @@ export const convertFlowData = (flowData: any) => { dataType: output.dataType, defaultValue: output.defaultValue })) || [] - } + }, + type: nodeType, } };