import { ref, computed } from "vue"; export class StateManager { vueFlow: any nodes: any nodes_: any edges: any zoom: any // 管理器 eventManager: any flowManager: any nodeManager: any // 设置管理器 setManager(options) { options.eventManager && (this.eventManager = options.eventManager) options.flowManager && (this.flowManager = options.flowManager) options.nodeManager && (this.nodeManager = options.nodeManager) } constructor(options) { this.vueFlow = options.vueFlow this.nodes = ref([ // { // id: '8', // type: 'SecondaryNode', // class: 'custom-node', // position: { x: 0, y: 0 }, // data: { component: card, type: 'edit-material' } // } ]); this.nodes_ = computed(() => { return this.nodes.value.map((node, index) => { const obj = { ...node, } if (index === 0) { obj.class = 'custom-node start'; obj.type = 'InputNode'; } else { obj.class = 'custom-node'; obj.type = 'SecondaryNode'; } return obj }) }) this.edges = computed(() => { const arr = [] this.nodes.value.forEach((node, index) => { if (index < this.nodes.value.length - 1) { const id = node.id const target = this.nodes.value[index + 1].id arr.push({ id: `el-${id}-${target}`, source: id, target: target, type: 'smoothstep' }) } }) return arr }) this.zoom = ref(1) } getLastNode() { return this.nodes.value[this.nodes.value.length - 1] } }