diff --git a/frontend/src/pages/Workflow/NodeDesign/Design.tsx b/frontend/src/pages/Workflow/NodeDesign/Design.tsx index 00ec367b..30453b01 100644 --- a/frontend/src/pages/Workflow/NodeDesign/Design.tsx +++ b/frontend/src/pages/Workflow/NodeDesign/Design.tsx @@ -4,7 +4,6 @@ import { Row, Col, Menu, Tabs, Card, Button, message } from 'antd'; import { BetaSchemaForm, ProForm, ProFormGroup, ProFormText, ProFormTextArea } from '@ant-design/pro-form'; import type { NodeDesignData } from './types'; import * as service from './service'; -import { useParams, useLocation } from 'react-router-dom'; // Tab 配置 const TAB_CONFIG = [ @@ -16,7 +15,7 @@ const TAB_CONFIG = [ const NodeDesignForm: React.FC = () => { // 缓存节点定义数据 - const [nodeDesignData, setNodeDesignData] = useState([]); + const [nodeDefinitions, setNodeDefinitions] = useState([]); const [loading, setLoading] = useState(false); // 当前选中的节点 const [selectedNode, setSelectedNode] = useState(null); @@ -26,40 +25,39 @@ const NodeDesignForm: React.FC = () => { const formRef = useRef(); const uiFormRef = useRef(); // 添加 UI 配置表单的 ref - const { nodeCode } = useParams(); - const location = useLocation(); - const nodeData = location.state?.nodeData; - // 加载节点定义数据 useEffect(() => { - const loadData = async () => { - if (nodeCode && !nodeData) { - try { - const data = await service.getNodeDesign(nodeCode); - setSelectedNode(data); - } catch (error) { - console.error('Failed to load node design:', error); - message.error('加载节点设计失败'); + const loadNodeDefinitions = async () => { + try { + setLoading(true); + const data = await service.getNodeDefinitionsDefined(); + setNodeDefinitions(data); + // 默认选中第一个节点 + if (data.length > 0) { + setSelectedNode(data[0]); } - } else if (nodeData) { - setSelectedNode(nodeData); + } catch (error) { + console.error('加载节点定义失败:', error); + } finally { + setLoading(false); } }; - loadData(); - }, [nodeCode, nodeData]); + + loadNodeDefinitions(); + }, []); // 获取当前节点可用的 Tab 列表 - const getAvailableTabs = (node: NodeDesignData | null) => { + const getAvailableTabs = (node: NodeDefinitionData | null) => { if (!node) return []; return TAB_CONFIG.filter(tab => { - const value = node[tab.schemaKey as keyof NodeDesignData]; + const value = node[tab.schemaKey as keyof NodeDefinitionData]; return value !== null && value !== undefined; }); }; // 处理节点选择 const handleNodeSelect = (nodeCode: string) => { - const node = nodeDesignData.find(n => n.nodeCode === nodeCode); + const node = nodeDefinitions.find(n => n.nodeCode === nodeCode); if (node) { setSelectedNode(node); // 获取可用的 tab 列表 @@ -349,7 +347,7 @@ const NodeDesignForm: React.FC = () => { ({ + items={nodeDefinitions.map(node => ({ key: node.nodeCode, label: `${node.nodeName}(${node.nodeCode})`, }))}