diff --git a/src/pages/flowEditor/nodeEditors/LocalNodeEditor.tsx b/src/pages/flowEditor/nodeEditors/LocalNodeEditor.tsx index ca92d67..a759004 100644 --- a/src/pages/flowEditor/nodeEditors/LocalNodeEditor.tsx +++ b/src/pages/flowEditor/nodeEditors/LocalNodeEditor.tsx @@ -1,87 +1,62 @@ import React from 'react'; import { NodeEditorProps } from './index'; -import { Form, Input, Switch, Select } from '@arco-design/web-react'; +import { Form, Input } from '@arco-design/web-react'; +import ConditionEditor from './components/ConditionEditor'; +import AndEditor from './components/AndEditor'; +import OrEditor from './components/OrEditor'; +import WaitEditor from './components/WaitEditor'; +import LoopEditor from './components/LoopEditor'; +import CycleEditor from './components/CycleEditor'; +import EventListenEditor from './components/EventListenEditor'; +import EventSendEditor from './components/EventSendEditor'; +import JsonToStringEditor from './components/JsonToStringEditor'; +import StringToJsonEditor from './components/StringToJsonEditor'; +import JsonConvertEditor from './components/JsonConvertEditor'; +import ResultEditor from './components/ResultEditor'; +import ImageEditor from './components/ImageEditor'; +import CodeEditor from './components/CodeEditor'; +import RestEditor from './components/RestEditor'; const LocalNodeEditor: React.FC = ({ - node, - nodeData, - updateNodeData -}) => { + node, + nodeData, + updateNodeData + }) => { // 根据LocalNode的不同类型渲染不同的编辑界面 const renderLocalNodeEditor = () => { const localNodeType = nodeData.type || ''; - + switch (localNodeType) { - case 'CONDITION': - return ( - <> - - updateNodeData('title', value)} - /> - - - updateNodeData('expression', value)} - placeholder="请输入条件表达式" - /> - - - updateNodeData('enabled', value)} - /> - - - ); - - case 'WAIT': - return ( - <> - - updateNodeData('title', value)} - /> - - - updateNodeData('waitTime', value)} - type="number" - /> - - - ); - - case 'LOOP': - return ( - <> - - updateNodeData('title', value)} - /> - - - updateNodeData('loopCount', value)} - type="number" - /> - - - updateNodeData('condition', value)} - placeholder="请输入循环条件" - /> - - - ); - + case 'CONDITION': // 条件选择 + return ; + case 'AND': // 与门 + return ; + case 'OR': // 或门 + return ; + case 'WAIT': // 等待 + return ; + case 'LOOP': // 循环 + return ; + case 'CYCLE': // 周期 + return ; + case 'EVENTLISTENE': // 事件接收 + return ; + case 'EVENTSEND': // 事件发送 + return ; + case 'JSON2STR': // JSON转字符串 + return ; + case 'STR2JSON': // 字符串转JSON + return ; + case 'JSONCONVERT': // JSON封装 + return ; + case 'RESULT': // 结果展示 + return ; + case 'IMAGE': // 图片展示 + return ; + case 'CODE': // 代码编辑器 + return ; + case 'REST': // REST调用 + return ; default: return ( <> diff --git a/src/pages/flowEditor/nodeEditors/components/AndEditor.tsx b/src/pages/flowEditor/nodeEditors/components/AndEditor.tsx new file mode 100644 index 0000000..f220811 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/AndEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const AndEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default AndEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/CodeEditor.tsx b/src/pages/flowEditor/nodeEditors/components/CodeEditor.tsx new file mode 100644 index 0000000..d62f5fc --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/CodeEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const CodeEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default CodeEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/ConditionEditor.tsx b/src/pages/flowEditor/nodeEditors/components/ConditionEditor.tsx new file mode 100644 index 0000000..8086479 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/ConditionEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const ConditionEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default ConditionEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/CycleEditor.tsx b/src/pages/flowEditor/nodeEditors/components/CycleEditor.tsx new file mode 100644 index 0000000..e8671b3 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/CycleEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const CycleEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default CycleEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/EventListenEditor.tsx b/src/pages/flowEditor/nodeEditors/components/EventListenEditor.tsx new file mode 100644 index 0000000..4c907a4 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/EventListenEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const EventListenEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default EventListenEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/EventSendEditor.tsx b/src/pages/flowEditor/nodeEditors/components/EventSendEditor.tsx new file mode 100644 index 0000000..dbf074a --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/EventSendEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const EventSendEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default EventSendEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/ImageEditor.tsx b/src/pages/flowEditor/nodeEditors/components/ImageEditor.tsx new file mode 100644 index 0000000..07ec0f2 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/ImageEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const ImageEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default ImageEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/JsonConvertEditor.tsx b/src/pages/flowEditor/nodeEditors/components/JsonConvertEditor.tsx new file mode 100644 index 0000000..989897b --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/JsonConvertEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const JsonConvertEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default JsonConvertEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/JsonToStringEditor.tsx b/src/pages/flowEditor/nodeEditors/components/JsonToStringEditor.tsx new file mode 100644 index 0000000..43fc0a0 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/JsonToStringEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const JsonToStringEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default JsonToStringEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/LoopEditor.tsx b/src/pages/flowEditor/nodeEditors/components/LoopEditor.tsx new file mode 100644 index 0000000..c013d0a --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/LoopEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const LoopEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default LoopEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/OrEditor.tsx b/src/pages/flowEditor/nodeEditors/components/OrEditor.tsx new file mode 100644 index 0000000..5658886 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/OrEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const OrEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default OrEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/RestEditor.tsx b/src/pages/flowEditor/nodeEditors/components/RestEditor.tsx new file mode 100644 index 0000000..ec7158d --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/RestEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const RestEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default RestEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/ResultEditor.tsx b/src/pages/flowEditor/nodeEditors/components/ResultEditor.tsx new file mode 100644 index 0000000..7b020dd --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/ResultEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const ResultEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default ResultEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/StringToJsonEditor.tsx b/src/pages/flowEditor/nodeEditors/components/StringToJsonEditor.tsx new file mode 100644 index 0000000..9a65465 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/StringToJsonEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const StringToJsonEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default StringToJsonEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/components/WaitEditor.tsx b/src/pages/flowEditor/nodeEditors/components/WaitEditor.tsx new file mode 100644 index 0000000..2766e32 --- /dev/null +++ b/src/pages/flowEditor/nodeEditors/components/WaitEditor.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { NodeEditorProps } from '@/pages/flowEditor/nodeEditors'; +import { Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from './ParamsTable'; + +const WaitEditor: React.FC = ({ nodeData, updateNodeData }) => { + return ( + <> + 输入参数 + { + updateNodeData('parameters', { + ...nodeData.parameters, + dataIns: data + }); + }} + /> + + ); +}; + +export default WaitEditor; \ No newline at end of file diff --git a/src/pages/flowEditor/nodeEditors/index.tsx b/src/pages/flowEditor/nodeEditors/index.tsx index 608db0b..efe2ef4 100644 --- a/src/pages/flowEditor/nodeEditors/index.tsx +++ b/src/pages/flowEditor/nodeEditors/index.tsx @@ -7,7 +7,7 @@ import LocalNodeEditor from './LocalNodeEditor'; // 定义节点编辑器的属性接口 export interface NodeEditorProps { - node: Node; + node?: Node; nodeData: any; updateNodeData: (key: string, value: any) => void; }