diff --git a/modeler/src/views/decision/communication/communication.vue b/modeler/src/views/decision/communication/communication.vue index eb6c567..63b14a8 100644 --- a/modeler/src/views/decision/communication/communication.vue +++ b/modeler/src/views/decision/communication/communication.vue @@ -104,7 +104,6 @@ export default defineComponent({ const isDraggingOver = ref(false); const currentScenarioEditing = ref(false); const currentScenario = ref(null); - const currentGraph = ref(null); const selectedModelNode = ref | null>(null); const selectedNodeTaskElement = ref(null); const changed = ref(false); @@ -403,10 +402,6 @@ export default defineComponent({ (graph.value as any).currentScenario = null; } - currentGraph.value = { - edges: [], - nodes: [], - }; selectedModelNode.value = null; selectedNodeTaskElement.value = null; @@ -743,7 +738,6 @@ export default defineComponent({ handleCreate, currentScenarioEditing, currentScenario, - currentGraph, selectedNodeTaskElement, selectedModelNode, graph, diff --git a/modeler/src/views/decision/designer/designer.vue b/modeler/src/views/decision/designer/designer.vue index e25571a..e822b7b 100644 --- a/modeler/src/views/decision/designer/designer.vue +++ b/modeler/src/views/decision/designer/designer.vue @@ -115,7 +115,6 @@ export default defineComponent({ const isDraggingOver = ref(false); const currentTreeEditing = ref(false); const currentBehaviorTree = ref(null); - const currentGraph = ref(null); const selectedModelNode = ref | null>(null); const selectedNodeTaskElement = ref(null); const changed = ref(false); @@ -309,30 +308,25 @@ export default defineComponent({ const createElements = () => { clearGraph(); nextTick(() => { - setTimeout(() => { - if (currentBehaviorTree.value?.graph && graph.value) { - if (currentBehaviorTree.value?.graph.nodes) { - currentBehaviorTree.value?.graph.nodes.forEach(ele => { - const node = createGraphTaskElement(ele as GraphTaskElement); - console.info('create node: ', ele); - // 将节点添加到画布 - graph.value?.addNode(node as Node); - }); - fitToScreen(); - } - if (currentBehaviorTree.value?.graph.edges) { - // 然后添加所有边,确保包含桩点信息 - setTimeout(() => { - currentBehaviorTree.value?.graph.edges.forEach(edgeData => { - graph.value?.addEdge({ - ...edgeData, - ...createLineOptions(), - }); - }); - }, 100); // 延迟一会儿,免得连线错位 - } + if (currentBehaviorTree.value?.graph && graph.value) { + if (currentBehaviorTree.value?.graph.nodes) { + currentBehaviorTree.value?.graph.nodes.forEach(ele => { + const node = createGraphTaskElement(ele as GraphTaskElement); + console.info('create node: ', ele); + // 将节点添加到画布 + graph.value?.addNode(node as Node); + }); + fitToScreen(); } - }, 100); + + // 然后添加所有边,确保包含桩点信息 + currentBehaviorTree.value?.graph.edges.forEach(edgeData => { + graph.value?.addEdge({ + ...edgeData, + ...createLineOptions(), + }); + }); + } }); }; @@ -354,7 +348,6 @@ export default defineComponent({ currentScenarioId.value = storedId; fromScenarioPage.value = true; } else { - currentScenarioId.value = undefined; fromScenarioPage.value = false; } } @@ -371,8 +364,11 @@ export default defineComponent({ currentScenarioId.value = scenario.id; }; - const handleCreateTree = () => { - destroyGraph(); + const initGraphConfig = (_graph?: GraphContainer) => { + const graph: GraphContainer = _graph ? _graph : { + nodes: [], + edges: [], + }; currentBehaviorTree.value = { id: 0, @@ -383,16 +379,15 @@ export default defineComponent({ createdAt: null, platformId: currentPlatformId.value, scenarioId: currentScenarioId.value, - graph: { - edges: [], - nodes: [], - }, + graph: { ...graph }, updatedAt: null, }; - currentGraph.value = { - edges: [], - nodes: [], - }; + }; + + const handleCreateTree = () => { + destroyGraph(); + initGraphConfig(); + selectedModelNode.value = null; selectedNodeTaskElement.value = null; subPlatforms.value = []; // 重置下属平台 @@ -412,6 +407,7 @@ export default defineComponent({ try { graph.value = createCanvas(canvas.value); console.log('画布初始化成功'); + initGraphConfig(); createElements(); // 监听缩放变化 @@ -503,6 +499,7 @@ export default defineComponent({ message.error('当前决策树不存在'); return; } + // return; const newTree: BehaviorTree = { ...currentBehaviorTree.value, graph: graphData, @@ -553,7 +550,6 @@ export default defineComponent({ handleSelectScenario, currentTreeEditing, currentBehaviorTree, - currentGraph, selectedNodeTaskElement, selectedModelNode, graph,