From dcd1a0005965d13b4bd94d3c9d9457614fe81a98 Mon Sep 17 00:00:00 2001 From: ZLY Date: Sun, 19 Oct 2025 09:44:49 +0800 Subject: [PATCH] =?UTF-8?q?feat(flow):=20=E5=AE=9E=E7=8E=B0=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=9B=91=E5=90=AC=E4=B8=8E=E5=8F=91=E9=80=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8=E7=9A=84=E6=95=B0=E6=8D=AE=E5=88=B7=E6=96=B0?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/EventListenEditor.tsx | 15 +++++++- .../nodeEditors/components/EventSelect.tsx | 38 +++++++++++++++++-- .../components/EventSendEditor.tsx | 18 ++++++++- 3 files changed, 64 insertions(+), 7 deletions(-) diff --git a/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx b/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx index b588a06..648f196 100644 --- a/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx +++ b/src/components/FlowEditor/nodeEditors/components/EventListenEditor.tsx @@ -1,11 +1,23 @@ -import React, { useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { NodeEditorProps } from '@/components/FlowEditor/nodeEditors'; import { Typography } from '@arco-design/web-react'; import { IconUnorderedList } from '@arco-design/web-react/icon'; import EventSelect from './EventSelect'; +import { useDispatch, useSelector } from 'react-redux'; +import { queryEventItemBySceneId } from '@/api/event'; const EventListenEditor: React.FC = ({ nodeData, updateNodeData }) => { const [eventList, setEventList] = useState(); + const { currentAppData } = useSelector(state => state.ideContainer); + + const getEventList = async () => { + const res = await queryEventItemBySceneId(currentAppData.sceneId); + setEventList(res.data); + }; + + useEffect(() => { + getEventList(); + }, []); return ( <> @@ -13,6 +25,7 @@ const EventListenEditor: React.FC = ({ nodeData, updateNodeData { updateNodeData('component', { ...data diff --git a/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx b/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx index a3288b4..c179bc0 100644 --- a/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx +++ b/src/components/FlowEditor/nodeEditors/components/EventSelect.tsx @@ -1,6 +1,9 @@ import React, { useEffect, useState } from 'react'; -import { Select, Divider, Modal, Button, Form, Input } from '@arco-design/web-react'; +import { Select, Divider, Modal, Button, Form, Input, Message } from '@arco-design/web-react'; import { IconPlus } from '@arco-design/web-react/icon'; +import { useDispatch, useSelector } from 'react-redux'; +import { addEventItem } from '@/api/event'; +import { AddEventParams } from '@/api/interface'; const FormItem = Form.Item; const TextArea = Input.TextArea; @@ -9,6 +12,7 @@ const Option = Select.Option; interface EventSelectProps { eventList: any[]; type: 'send' | 'listen'; + onRefresh: () => void; onUpdateData: (data) => void; } @@ -17,10 +21,11 @@ const typeMap = { listen: 'EVENTLISTENE' }; -const EventSelect: React.FC = ({ eventList, type, onUpdateData }) => { +const EventSelect: React.FC = ({ eventList, type, onRefresh, onUpdateData }) => { const [options, setOptions] = useState([]); const [form] = Form.useForm(); const [showModal, setShowModal] = useState(false); + const { currentAppData } = useSelector(state => state.ideContainer); useEffect(() => { eventList && setOptions(eventList); @@ -32,9 +37,22 @@ const EventSelect: React.FC = ({ eventList, type, onUpdateData const saveForm = async () => { try { - // TODO 需要对接事件新增的接口 await form.validate(); - console.log('form:', form.getFields()); + const formData = form.getFields(); + const params = { + ...formData, + sceneId: currentAppData.sceneId, + topic: formData.topic += `/${currentAppData.identify}` + }; + const res: any = await addEventItem(params as AddEventParams); + + if (res && res.code === 200) { + Message.success('添加成功'); + onRefresh(); + } + else { + Message.error(res.message); + } setShowModal(false); } catch (e) { } @@ -140,6 +158,18 @@ const EventSelect: React.FC = ({ eventList, type, onUpdateData