From 07a3f65911f6d2ce19af49d5af13b7419408f7cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Tue, 7 May 2024 17:24:13 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E7=A7=BB=E5=8A=A8=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E8=8A=82=E7=82=B9=E5=88=B0=E7=94=BB=E5=B8=83=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E6=97=B6=E9=BB=98=E8=AE=A4=E4=B8=8D=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E7=BC=A9=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/constants/defaultOptions.js | 4 +++- simple-mind-map/src/core/render/Render.js | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/simple-mind-map/src/constants/defaultOptions.js b/simple-mind-map/src/constants/defaultOptions.js index c13b3b05..d49a52aa 100644 --- a/simple-mind-map/src/constants/defaultOptions.js +++ b/simple-mind-map/src/constants/defaultOptions.js @@ -320,5 +320,7 @@ export const defaultOpt = { addContentToHeader: null, addContentToFooter: null, // 演示插件配置 - demonstrateConfig: null + demonstrateConfig: null, + // 移动节点到画布中心、回到根节点等操作时是否将缩放层级复位为100% + resetScaleOnMoveNodeToCenter: false } diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 42e1779c..a7e9d809 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -1801,19 +1801,28 @@ class Render { // 移动节点到画布中心 moveNodeToCenter(node) { + const { resetScaleOnMoveNodeToCenter } = this.mindMap.opt + let { transform, state } = this.mindMap.view.getTransformData() + let { left, top, width, height } = node + if (!resetScaleOnMoveNodeToCenter) { + left *= transform.scaleX + top *= transform.scaleY + width *= transform.scaleX + height *= transform.scaleY + } let halfWidth = this.mindMap.width / 2 let halfHeight = this.mindMap.height / 2 - let { left, top, width, height } = node let nodeCenterX = left + width / 2 let nodeCenterY = top + height / 2 - let { state } = this.mindMap.view.getTransformData() let targetX = halfWidth - state.x let targetY = halfHeight - state.y let offsetX = targetX - nodeCenterX let offsetY = targetY - nodeCenterY this.mindMap.view.translateX(offsetX) this.mindMap.view.translateY(offsetY) - this.mindMap.view.setScale(1) + if (resetScaleOnMoveNodeToCenter) { + this.mindMap.view.setScale(1) + } } // 回到中心主题,即设置根节点到画布中心