diff --git a/src/components/FlowEditor/nodeEditors/LocalNodeEditor.tsx b/src/components/FlowEditor/nodeEditors/LocalNodeEditor.tsx index 347ae2b..2e55682 100644 --- a/src/components/FlowEditor/nodeEditors/LocalNodeEditor.tsx +++ b/src/components/FlowEditor/nodeEditors/LocalNodeEditor.tsx @@ -41,9 +41,9 @@ const LocalNodeEditor: React.FC = ({ case 'CYCLE': // 周期 return ; case 'EVENTLISTENE': // 事件接收 - return ; + return ; case 'EVENTSEND': // 事件发送 - return ; + return ; case 'JSON2STR': // JSON转字符串 return ; case 'STR2JSON': // 字符串转JSON diff --git a/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx b/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx index 01a9a20..2c8ce11 100644 --- a/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx +++ b/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx @@ -7,12 +7,17 @@ import { useDispatch, useSelector } from 'react-redux'; import { queryEventItemBySceneId } from '@/api/event'; import ParamsTable from '@/components/FlowEditor/nodeEditors/components/ParamsTable'; -const EventListenEditor: React.FC = ({ nodeData, updateNodeData }) => { +const EventListenEditor: React.FC = ({ node, nodeData, updateNodeData }) => { const [eventList, setEventList] = useState(); const { currentAppData } = useSelector(state => state.ideContainer); const getEventList = async () => { - const res = await queryEventItemBySceneId(currentAppData.sceneId); + const params = { + nodeId: node.id, + appId: currentAppData.id, + sceneId: currentAppData.sceneId + }; + const res = await queryEventItemBySceneId(params); setEventList(res.data); }; diff --git a/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx b/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx index 749721f..78b0902 100644 --- a/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx +++ b/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx @@ -27,25 +27,30 @@ const EventSelect: React.FC = ({ nodeData, eventList, type, on const [form] = Form.useForm(); const [showModal, setShowModal] = useState(false); const [currentEvent, setCurrentEvent] = useState(null); - const { currentAppData } = useSelector(state => state.ideContainer); + const { currentAppData, eventListOld } = useSelector(state => state.ideContainer); useEffect(() => { if (nodeData && eventList && eventList.length > 0) { setOptions(eventList.filter(item => !item.topic.includes('**empty**'))); try { + // 数据是JSON字符串,标识是接口回来的 const customDef = JSON.parse(nodeData.component?.customDef); // 先判断topic是不是**empty**,是就不设置currentevent - if (customDef.topic && customDef.topic.includes('**empty**')) { - setCurrentEvent(null); - } + if (customDef.topic && customDef.topic.includes('**empty**')) setCurrentEvent(null); else { - setCurrentEvent(eventList.find(item => customDef.topic === item.topic)); + if (!customDef.eventId) { + setCurrentEvent(eventList.find(item => customDef.topic === item.topic)); + } + else { + const currentItem = eventListOld.find(item => customDef.eventId === item.eventId); + console.log('1', currentItem); + setCurrentEvent(currentItem.topic); + } } } catch (e) { + // 数据是普通对象标识是当前操作数据 // 先判断topic是不是**empty**,是就不设置currentevent - if (nodeData.component?.customDef?.topic && nodeData.component?.customDef?.topic.includes('**empty**')) { - setCurrentEvent(null); - } + if (nodeData.component?.customDef?.topic && nodeData.component?.customDef?.topic.includes('**empty**')) setCurrentEvent(null); else { setCurrentEvent(eventList.find(item => nodeData.component?.customDef.topic === item.topic)); } @@ -80,10 +85,11 @@ const EventSelect: React.FC = ({ nodeData, eventList, type, on }; const handelSelect = (e) => { + console.log('e:', e); const data = { type: typeMap[type], customDef: { - eventId: null, + eventId: e.eventId, name: e.name, topic: e.topic } @@ -123,8 +129,8 @@ const EventSelect: React.FC = ({ nodeData, eventList, type, on )} dropdownMenuStyle={{ maxHeight: 300 }} > - {options.map((option) => ( - ))} diff --git a/src/components/FlowEditor/nodeEditors/components/EventSendEditor.tsx b/src/components/FlowEditor/nodeEditors/components/EventSendEditor.tsx index 55c06a2..e595ff6 100644 --- a/src/components/FlowEditor/nodeEditors/components/EventSendEditor.tsx +++ b/src/components/FlowEditor/nodeEditors/components/EventSendEditor.tsx @@ -12,7 +12,7 @@ const EventSendEditor: React.FC = ({ nodeData, updateNodeData } const { currentAppData } = useSelector(state => state.ideContainer); const getEventList = async () => { - const res = await queryEventItemBySceneId(currentAppData.sceneId); + const res = await queryEventItemBySceneId({sceneId:currentAppData.sceneId}); setEventList(res.data); }; diff --git a/src/pages/flowEditor/components/nodeContentOther.tsx b/src/pages/flowEditor/components/nodeContentOther.tsx index fbaed69..fd66f09 100644 --- a/src/pages/flowEditor/components/nodeContentOther.tsx +++ b/src/pages/flowEditor/components/nodeContentOther.tsx @@ -193,10 +193,18 @@ const formatFooter = (data: any, eventListOld = []) => { return cronstrue.toString(intervalSeconds, { locale: 'zh_CN' }); case 'EVENTSEND': case 'EVENTLISTENE': - const { eventId, topic, name } = isJSON(data.customDef) ? JSON.parse(data.customDef) : data.customDef; - if (topic.includes('**empty**')) return ''; - const currentEvent = eventListOld.length > 0 ? eventListOld.find(item => item.eventId === eventId) : { name: '无' }; - return `事件: ${name || currentEvent.name}`; + const parsedData = isJSON(data.customDef) ? JSON.parse(data.customDef) : null; + // 数据是JSON字符串,标识是接口回来的,数据是普通对象标识是当前操作 + if (parsedData) { + const { eventId, topic, name } = parsedData; + if (topic.includes('**empty**')) return ''; + const currentEvent = eventListOld.length > 0 ? eventListOld.find(item => item.eventId === eventId) : { name: '无' }; + return `事件: ${currentEvent.name}`; + } + else { + const { name } = data.customDef; + return `事件: ${name}`; + } case 'BASIC': return data.compIdentifier ? `当前实例:${data.compIdentifier}` : ''; default: