From 62b734890b035be2ab952d4f76c127e025ab4da5 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: Fri, 6 Sep 2024 09:36:02 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E4=B8=BB=E9=A2=98=E6=97=B6=E6=A6=82=E8=A6=81=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E7=9A=84=E6=A0=B7=E5=BC=8F=E6=B2=A1=E6=9C=89=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/layouts/Base.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/simple-mind-map/src/layouts/Base.js b/simple-mind-map/src/layouts/Base.js index 63eb4e48..e8943ce9 100644 --- a/simple-mind-map/src/layouts/Base.js +++ b/simple-mind-map/src/layouts/Base.js @@ -128,8 +128,9 @@ class Base { ) } // 主题或主题配置改变了、节点层级改变了,需要重新渲染节点文本等情况需要重新计算节点大小和布局 + const isNeedResizeSources = this.checkIsNeedResizeSources() if ( - this.checkIsNeedResizeSources() || + isNeedResizeSources || isLayerTypeChange || newNode.getData('resetRichText') || isNumberChange @@ -137,7 +138,7 @@ class Base { newNode.getSize() newNode.needLayout = true } - this.checkGetGeneralizationChange(newNode) + this.checkGetGeneralizationChange(newNode, isNeedResizeSources) } else if ( (this.lru.has(uid) || this.renderer.lastNodeCache[uid]) && !this.renderer.reRender @@ -186,7 +187,7 @@ class Base { newNode.getSize() newNode.needLayout = true } - this.checkGetGeneralizationChange(newNode) + this.checkGetGeneralizationChange(newNode, isResizeSource) } else { // 创建新节点 const newUid = uid || createUid() @@ -228,7 +229,7 @@ class Base { } // 检查概要节点是否需要更新 - checkGetGeneralizationChange(node) { + checkGetGeneralizationChange(node, isResizeSource) { const generalizationList = node.getData('generalization') if ( generalizationList && @@ -239,7 +240,10 @@ class Base { const gNode = item.generalizationNode const oldData = gNode.getData() const newData = generalizationList[index] - if (newData && JSON.stringify(oldData) !== JSON.stringify(newData)) { + if ( + isResizeSource || + (newData && JSON.stringify(oldData) !== JSON.stringify(newData)) + ) { gNode.nodeData.data = newData gNode.getSize() gNode.needLayout = true