From 04285162c9578358fd5d2786d2d5b015c7877fb9 Mon Sep 17 00:00:00 2001 From: cocos02 Date: Fri, 12 Jun 2026 13:28:44 +0800 Subject: [PATCH] fix: pin edge endpoints to node edge midpoints for clean orthogonal routing --- src/components/TreeFlow.vue | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/TreeFlow.vue b/src/components/TreeFlow.vue index cd20c2c..2753274 100644 --- a/src/components/TreeFlow.vue +++ b/src/components/TreeFlow.vue @@ -155,13 +155,26 @@ function buildFlow(root: PlayerTreeNode) { } }) + const nodeMap = new Map(resultNodes.map((n) => [n.id, n])) + const resultEdges: FlowEdge[] = dagreEdges.map((e) => { const edge = g.edge(e.from, e.to) + const pts = edge.points || [] + if (pts.length >= 2) { + const src = nodeMap.get(e.from) + const dst = nodeMap.get(e.to) + if (src) { + pts[0] = { x: src.x + src.w, y: src.y + src.h / 2 } + } + if (dst) { + pts[pts.length - 1] = { x: dst.x, y: dst.y + dst.h / 2 } + } + } return { from: e.from, to: e.to, visited: e.visited, - points: edge.points || [], + points: pts, } })