From 4db6bda1936fc81f272883ae1083d0205e05c49f Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 20 Nov 2023 17:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=85=88=E7=BB=99=E8=87=AA?= =?UTF-8?q?=E8=BA=AB=E6=B7=BB=E5=8A=A0=E6=A6=82=E8=A6=81=EF=BC=8C=E5=86=8D?= =?UTF-8?q?=E7=BB=99=E4=B8=8B=E7=BA=A7=E6=B7=BB=E5=8A=A0=E6=A6=82=E8=A6=81?= =?UTF-8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=E6=A6=82=E8=A6=81=E9=87=8D=E5=8F=A0?= =?UTF-8?q?=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/core/render/Render.js | 9 ++++++++- simple-mind-map/src/core/render/node/Node.js | 14 +++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index b309495d..886e3f12 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -1400,10 +1400,12 @@ class Render { if (this.activeNodeList.length <= 0) { return } + let hasAncestorsExistGeneralization = false this.activeNodeList.forEach(node => { if (node.getData('generalization') || node.isRoot) { return } + hasAncestorsExistGeneralization = node.ancestorHasGeneralization() this.mindMap.execCommand('SET_NODE_DATA', node, { generalization: data || { text: this.mindMap.opt.defaultGeneralizationText @@ -1414,7 +1416,12 @@ class Render { expand: true }) }) - this.mindMap.render() + this.mindMap.render(() => { + // 修复祖先节点存在概要时位置未更新的问题 + if (hasAncestorsExistGeneralization) { + this.mindMap.render() + } + }) } // 删除节点概要 diff --git a/simple-mind-map/src/core/render/node/Node.js b/simple-mind-map/src/core/render/node/Node.js index bed78c06..45a92a9c 100644 --- a/simple-mind-map/src/core/render/node/Node.js +++ b/simple-mind-map/src/core/render/node/Node.js @@ -849,7 +849,7 @@ class Node { return this.customLeft !== undefined && this.customTop !== undefined } - // 检查节点是否存在自定义位置的祖先节点 + // 检查节点是否存在自定义位置的祖先节点,包含自身 ancestorHasCustomPosition() { let node = this while (node) { @@ -861,6 +861,18 @@ class Node { return false } + // 检查是否存在概要的祖先节点 + ancestorHasGeneralization() { + let node = this.parent + while (node) { + if (node.getData('generalization')) { + return true + } + node = node.parent + } + return false + } + // 添加子节点 addChildren(node) { this.children.push(node)