This commit is contained in:
2026-02-27 09:56:49 +08:00
parent b6af9d5044
commit a8a898d2df
9 changed files with 98 additions and 56 deletions

View File

@@ -12,12 +12,12 @@
@viewport-change="(e) => eventManager.handleViewportChange(e)"
>
<template #node-InputNode="nodeProps">
<node type="InputNode">
<node type="InputNode" :isAdd="lastNode.id === nodeProps.id">
<component :is="nodeProps.data.component" v-bind="nodeProps.data" />
</node>
</template>
<template #node-SecondaryNode="nodeProps">
<node type="SecondaryNode">
<node type="SecondaryNode" :isAdd="lastNode.id === nodeProps.id">
<component :is="nodeProps.data.component" v-bind="nodeProps.data" />
</node>
</template>
@@ -40,25 +40,39 @@
import zoom from '../components/zoom.vue'
import node from './components/node.vue'
import card from './components/cards/index.vue'
import resultImage from './components/result/result-image.vue'
import { computed, ref, markRaw, onMounted, reactive, nextTick } from 'vue'
// 管理器
import { StateManager } from './manager/StateManager'
import { EventManager } from './manager/EventManager'
import { FlowManager } from './manager/FlowManager'
import { NodeManager } from './manager/NodeManager'
const vueFlow = ref<any>()
// 状态管理器
const stateManager = new StateManager({ vueFlow })
const nodes = computed(() => stateManager.nodes.value)
const edges = computed(() => stateManager.edges.value)
const eventManager = new EventManager({
stateManager,
vueFlow
const lastNode = computed(() => nodes.value[nodes.value.length - 1])
// 事件管理器
const eventManager = new EventManager({ stateManager, vueFlow })
// 流程管理器
const flowManager = new FlowManager({ stateManager, vueFlow })
// 节点管理器
const nodeManager = new NodeManager({ stateManager, vueFlow })
stateManager.setManager({
eventManager,
flowManager,
nodeManager
})
const flowManager = new FlowManager({
stateManager,
vueFlow
nodeManager.createNode({
type: 'InputNode',
class: 'custom-node start',
component: resultImage,
data: {}
})
const { fitView } = useVueFlow()