From 31c6154e7ab3b230802cfc46f25004214d256b96 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 <80892890+shaohuzhang1@users.noreply.github.com> Date: Wed, 17 Sep 2025 18:16:23 +0800 Subject: [PATCH] fix: Resolve the issue of sub canvas drift (#4051) --- ui/src/workflow/nodes/loop-body-node/index.vue | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ui/src/workflow/nodes/loop-body-node/index.vue b/ui/src/workflow/nodes/loop-body-node/index.vue index 509a9be40..69a6bf4eb 100644 --- a/ui/src/workflow/nodes/loop-body-node/index.vue +++ b/ui/src/workflow/nodes/loop-body-node/index.vue @@ -65,6 +65,24 @@ const renderGraphData = (data?: any) => { }, }) + function HtmlPointToCanvasPoint(point: any) { + let scaleX = lf.value.graphModel.transformModel.SCALE_X as number + let scaleY = lf.value.graphModel.transformModel.SCALE_Y as number + let translateX = lf.value.graphModel.transformModel.TRANSLATE_X + let translateY = lf.value.graphModel.transformModel.TRANSLATE_Y + const [x, y] = point + props.nodeModel.graphModel.transformModel + scaleX *= props.nodeModel.graphModel.transformModel.SCALE_X + scaleY *= props.nodeModel.graphModel.transformModel.SCALE_Y + translateX *= props.nodeModel.graphModel.transformModel.SCALE_X + translateY *= props.nodeModel.graphModel.transformModel.SCALE_Y + return [(x - translateX) / scaleX, (y - translateY) / scaleY] + } + + lf.value.graphModel.transformModel.HtmlPointToCanvasPoint = HtmlPointToCanvasPoint.bind( + lf.value.graphModel.transformModel, + ) + initDefaultShortcut(lf.value, lf.value.graphModel) lf.value.graphModel.get_provide = (node: any, graph: any) => { return {