diff --git a/src/App.vue b/src/App.vue index 9b3d174..2e026ee 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,7 +14,7 @@ import { useVueFlow } from '@vue-flow/core'; import DialogManager from './components/DialogManager.vue'; const filesStore = useFilesStore(); -const { updateNode } = useVueFlow(); +const { updateNode,toObject,fromObject } = useVueFlow(); const width = ref('100%'); const height = ref('100vh'); @@ -100,6 +100,7 @@ watch( if (oldVal && flowEditorRef.value && flowEditorRef.value.getViewport) { const viewport = flowEditorRef.value.getViewport(); filesStore.updateFileViewport(oldVal, viewport); + filesStore.updateFileFlowData(oldVal, toObject()); } lastActiveFile.value = newVal; } @@ -135,9 +136,9 @@ watch( diff --git a/src/components/flow/FlowEditor.vue b/src/components/flow/FlowEditor.vue index 8c5d77c..5810db9 100644 --- a/src/components/flow/FlowEditor.vue +++ b/src/components/flow/FlowEditor.vue @@ -189,18 +189,6 @@ onUnmounted(() => { const lastActiveFile = ref(filesStore.activeFile); const flowEditorRef = ref(); - -watch( - () => filesStore.activeFile, - (newVal, oldVal) => { - // 切换前保存旧 tab 的 viewport - if (oldVal && flowEditorRef.value && flowEditorRef.value.getViewport) { - const viewport = flowEditorRef.value.getViewport(); - filesStore.updateFileViewport(oldVal, viewport); - } - lastActiveFile.value = newVal; - } -);