From 5ede3901321f367870459cd7815b9a0522fc0b60 Mon Sep 17 00:00:00 2001 From: rookie4show Date: Thu, 17 Jul 2025 16:37:29 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=AE=9E=E7=8E=B0=E6=8B=96?= =?UTF-8?q?=E5=8A=A8=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=85=B6=E4=BB=96=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/flow/ComponentsPanel.vue | 48 ++++----- src/components/flow/FlowEditor.vue | 26 ++--- src/components/flow/PropertyPanel.vue | 102 ++++++++---------- .../flow/nodes/yys/ShikigamiSelectNode.vue | 1 + .../flow/nodes/yys/YuhunSelectNode.vue | 1 + src/ts/useLogicFlow.ts | 16 +++ 6 files changed, 100 insertions(+), 94 deletions(-) create mode 100644 src/ts/useLogicFlow.ts diff --git a/src/components/flow/ComponentsPanel.vue b/src/components/flow/ComponentsPanel.vue index 99d23be..3268cc3 100644 --- a/src/components/flow/ComponentsPanel.vue +++ b/src/components/flow/ComponentsPanel.vue @@ -1,8 +1,6 @@ @@ -140,17 +141,12 @@ const handleComponentClick = (component) => { >
{{ group.title }}
-
diff --git a/src/components/flow/FlowEditor.vue b/src/components/flow/FlowEditor.vue index 68672d9..705f4f9 100644 --- a/src/components/flow/FlowEditor.vue +++ b/src/components/flow/FlowEditor.vue @@ -32,7 +32,8 @@ import PropertySelectNode from './nodes/yys/PropertySelectNode.vue'; // import ImageNode from './nodes/common/ImageNode.vue'; // import TextNode from './nodes/common/TextNode.vue'; import PropertyPanel from './PropertyPanel.vue'; -import {useFilesStore} from "@/ts/useStore"; +import { useFilesStore } from "@/ts/useStore"; +import { setLogicFlowInstance, destroyLogicFlowInstance } from '@/ts/useLogicFlow'; const props = defineProps<{ nodes: any[]; @@ -74,7 +75,7 @@ onMounted(() => { }); registerNodes(lf.value); renderFlow(); - filesStore.setLogicFlowInstance(lf.value); + setLogicFlowInstance(lf.value); // 监听节点点击事件,更新 selectedNode lf.value.on(EventType.NODE_CLICK, ({ data }) => { @@ -88,18 +89,16 @@ onMounted(() => { // 节点属性改变,如果当前节点是选中节点,则同步更新 selectedNode lf.value.on(EventType.NODE_PROPERTIES_CHANGE, (data) => { - const nodeId = data.id || (data.value && data.value.id); - if (selectedNode.value && nodeId === selectedNode.value.id) { - if (data.value) { - selectedNode.value = data.value; - } else if (data.properties) { - selectedNode.value = { - ...selectedNode.value, - properties: data.properties - }; + const nodeId = data.id; + if (selectedNode.value && nodeId === selectedNode.value.id) { + if (data.properties) { + selectedNode.value = { + ...selectedNode.value, + properties: data.properties + }; + } } - } -}); + }); // 右键事件 lf.value.on('node:contextmenu', handleNodeContextMenu); @@ -110,6 +109,7 @@ onMounted(() => { onBeforeUnmount(() => { lf.value?.destroy(); lf.value = null; + destroyLogicFlowInstance(); }); // 响应式更新 nodes/edges diff --git a/src/components/flow/PropertyPanel.vue b/src/components/flow/PropertyPanel.vue index bae29ef..18e1451 100644 --- a/src/components/flow/PropertyPanel.vue +++ b/src/components/flow/PropertyPanel.vue @@ -1,38 +1,31 @@