From 61034e71d1e02240aa3bed492330b803326bb61a Mon Sep 17 00:00:00 2001 From: "X1627315083@163.com" <1627315083@qq.com> Date: Tue, 17 Mar 2026 15:23:56 +0800 Subject: [PATCH] fix --- .../FlowCanvas/components/nodes/cards/index.vue | 3 +-- .../Canvas/FlowCanvas/manager/NodeManager.ts | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue b/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue index 2c2de05..01f62da 100644 --- a/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue +++ b/src/components/Canvas/FlowCanvas/components/nodes/cards/index.vue @@ -139,11 +139,10 @@ // if (!subordNode) { taskList.forEach((item,index) => { nodeManager.createResultNode({ - positionY: (index + subordNodes.length) * (50 + 250), data: { superiorID: attrs.node.id, superiorNodeType: attrs.node?.data?.type, - createIndexPosition: index, + createIndexPosition: index + subordNodes.length, tier: currentComponent.value.tier, isActive: index == 0 && subordNodes.length == 0, data: { diff --git a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts index dc0d287..231d638 100644 --- a/src/components/Canvas/FlowCanvas/manager/NodeManager.ts +++ b/src/components/Canvas/FlowCanvas/manager/NodeManager.ts @@ -46,16 +46,28 @@ export class NodeManager { createNode(options: NodeOptions) { const superiorID = options?.data?.superiorID const snode = superiorID ? this.stateManager.flowManager.getNodeById(superiorID) : this.stateManager.flowManager.getLastNode(); + //获取上级节点所生成的最后一个node,设置位置为最后一个节点的xy 加上 节点间距 + const superiorGenerateNodes = this.stateManager.getSubordNodes(superiorID) + const endGenerateNode = superiorGenerateNodes.reduce((max, current) => { + return current.data.createIndexPosition > max.data.createIndexPosition ? current : max + }, superiorGenerateNodes[0]) const id = options.id || createId() const positionX = options.positionX || 0 const positionY = options.positionY || 0 const position = options.position || - (!snode ? + ( + endGenerateNode? + { + x: endGenerateNode.position.x + positionX, + y: endGenerateNode.position.y + positionY + this.ranksep + 200 + } : + !snode ? { x: positionX, y: positionY } : { x: snode.position.x + snode.dimensions.width + this.nodesep + positionX, y: snode.position.y + positionY - }) + } + ) const data = options?.data || {} data['component'] = options.component const options_ = {