diff --git a/src/components/FlowEditor/nodeEditors/BasicNodeEditor.tsx b/src/components/FlowEditor/nodeEditors/BasicNodeEditor.tsx index 126e45f..64118a9 100644 --- a/src/components/FlowEditor/nodeEditors/BasicNodeEditor.tsx +++ b/src/components/FlowEditor/nodeEditors/BasicNodeEditor.tsx @@ -1,12 +1,99 @@ -import React from 'react'; +import React, { useEffect, useState } from 'react'; +import { useSelector } from 'react-redux'; import { NodeEditorProps } from './index'; -import { Form, Input, Select } from '@arco-design/web-react'; +import { Form, Input, Select, Typography } from '@arco-design/web-react'; +import { IconUnorderedList } from '@arco-design/web-react/icon'; +import ParamsTable from '@/components/FlowEditor/nodeEditors/components/ParamsTable'; +import { queryInstance } from '@/api/components'; const BasicNodeEditor: React.FC = ({ - node, - nodeData, - updateNodeData -}) => { + node, + nodeData, + updateNodeData + }) => { + const [currentCompInfo, setCurrentCompInfo] = useState(null); + const [options, setOptions] = useState([]); + const { projectComponentData, info, currentAppData } = useSelector(state => state.ideContainer); + + const getCurrentProjectStoreData = () => { + const compData = projectComponentData[currentAppData.sceneId] || {}; + + const result: any[] = []; + + // 处理projectCompDto中的数据 + if (compData.projectCompDto) { + const { mineComp = [], pubComp = [], teamWorkComp = [] } = compData.projectCompDto; + + // 添加mineComp数据 + mineComp.forEach((item: any) => { + result.push({ + ...item, + type: 'mineComp' + }); + }); + + // 添加pubComp数据 + pubComp.forEach((item: any) => { + result.push({ + ...item, + type: 'pubComp' + }); + }); + + // 添加teamWorkComp数据 + teamWorkComp.forEach((item: any) => { + result.push({ + ...item, + type: 'teamWorkComp' + }); + }); + } + + // 处理projectFlowDto中的数据 + if (compData.projectFlowDto) { + const { mineFlow = [], pubFlow = [] } = compData.projectFlowDto; + + // 添加mineFlow数据 + mineFlow.forEach((item: any) => { + result.push({ + ...item, + type: 'mineFlow' + }); + }); + + // 添加pubFlow数据 + pubFlow.forEach((item: any) => { + result.push({ + ...item, + type: 'pubFlow' + }); + }); + } + + return result; + }; + + const getCompInfo = () => { + const flatData = getCurrentProjectStoreData(); + setCurrentCompInfo(flatData.find((item: any) => item.id === nodeData.compId)); + }; + const getCompInstance = async () => { + const res: any = await queryInstance(nodeData.compId); + if (res.code === 200) { + console.log('res:', res); + const newOptions = res.data.map((item: any) => { + return { + label: item.identifier, + value: item.identifier + }; + }); + setOptions(newOptions); + } + }; + useEffect(() => { + getCompInfo(); + getCompInstance(); + }, []); return (
@@ -21,17 +108,53 @@ const BasicNodeEditor: React.FC = ({ onChange={(value) => updateNodeData('description', value)} /> + 组件信息 +
+ 组件类型: +
{currentCompInfo?.type}
+
+
+ 组件名称: +
{currentCompInfo?.name}
+
+
+ 组件描述: +
{currentCompInfo?.description}
+