From e9352a4f6c7bcedd70fd12406942b501356d2637 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: Mon, 15 Apr 2024 18:50:05 +0800 Subject: [PATCH] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E9=9D=9E=E5=BD=93=E5=89=8D=E6=BF=80=E6=B4=BB=E7=9A=84?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=97=B6=EF=BC=8C=E5=BD=93=E5=89=8D=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E8=8A=82=E7=82=B9=E7=9A=84=E6=BF=80=E6=B4=BB=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=97=A0=E6=B3=95=E5=8F=96=E6=B6=88=E7=9A=84=E9=97=AE?= =?UTF-8?q?=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 | 12 ++++++++---- simple-mind-map/src/layouts/Base.js | 7 ++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index a6cf9d09..95197a7b 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -1242,7 +1242,7 @@ class Render { root.nodeData.children = [] } else { // 如果只选中了一个节点,删除后激活其兄弟节点或者父节点 - needActiveNode = this.getNextActiveNode() + needActiveNode = this.getNextActiveNode(list) for (let i = 0; i < list.length; i++) { const node = list[i] const currentEditNode = this.textEdit.getCurrentEditNode() @@ -1297,13 +1297,13 @@ class Render { if (this.activeNodeList.length <= 0 && appointNodes.length <= 0) { return } - // 删除节点后需要激活的节点,如果只选中了一个节点,删除后激活其兄弟节点或者父节点 - let needActiveNode = this.getNextActiveNode() let isAppointNodes = appointNodes.length > 0 let list = isAppointNodes ? appointNodes : this.activeNodeList list = list.filter(node => { return !node.isRoot }) + // 删除节点后需要激活的节点,如果只选中了一个节点,删除后激活其兄弟节点或者父节点 + let needActiveNode = this.getNextActiveNode(list) for (let i = 0; i < list.length; i++) { let node = list[i] if (node.isGeneralization) { @@ -1329,7 +1329,11 @@ class Render { } // 计算下一个可激活的节点 - getNextActiveNode() { + getNextActiveNode(deleteList) { + // 删除多个节点不自动激活相邻节点 + if (deleteList.length !== 1) return null + // 被删除的节点不在当前激活的节点列表里,不激活相邻节点 + if (this.findActiveNodeIndex(deleteList[0]) === -1) return null let needActiveNode = null if ( this.activeNodeList.length === 1 && diff --git a/simple-mind-map/src/layouts/Base.js b/simple-mind-map/src/layouts/Base.js index f06b0549..a2caa07a 100644 --- a/simple-mind-map/src/layouts/Base.js +++ b/simple-mind-map/src/layouts/Base.js @@ -144,9 +144,10 @@ class Base { this.cacheNode(newUid, newNode) // 数据关联实际节点 data._node = newNode - if (data.data.isActive) { - this.renderer.addNodeToActiveList(newNode) - } + } + // 如果该节点数据是已激活状态,那么添加到激活节点列表里 + if (data.data.isActive) { + this.renderer.addNodeToActiveList(newNode) } // 如果当前节点在激活节点列表里,那么添加上激活的状态 if (this.mindMap.renderer.findActiveNodeIndex(newNode) !== -1) {