From 5cbe5d2906016bac9b05e90eaafc5a60fd1102ea Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 10 Oct 2022 16:11:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=90=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E6=94=B6=E8=B5=B7=E7=8A=B6=E6=80=81=E5=A4=8D=E5=88=B6=E6=97=B6?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=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/Render.js | 4 ++-- simple-mind-map/src/utils/index.js | 14 ++++++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/simple-mind-map/src/Render.js b/simple-mind-map/src/Render.js index 445811fa..2b8f9a6c 100644 --- a/simple-mind-map/src/Render.js +++ b/simple-mind-map/src/Render.js @@ -658,7 +658,7 @@ class Render { if (this.activeNodeList.length <= 0) { return } - return copyNodeTree({}, this.activeNodeList[0]) + return copyNodeTree({}, this.activeNodeList[0], true) } /** @@ -674,7 +674,7 @@ class Render { if (node.isRoot) { return null } - let copyData = copyNodeTree({}, node) + let copyData = copyNodeTree({}, node, true) this.removeActiveNode(node) this.removeOneNode(node) this.mindMap.emit('node_active', null, this.activeNodeList) diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index 8834226b..67907f16 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -147,13 +147,19 @@ export const copyRenderTree = (tree, root) => { * @Date: 2021-05-04 14:40:11 * @Desc: 复制节点树数据 */ -export const copyNodeTree = (tree, root) => { - tree.data = simpleDeepClone(root.nodeData.data) - // tree.data.isActive = false +export const copyNodeTree = (tree, root, removeActiveState = false) => { + tree.data = simpleDeepClone(root.nodeData ? root.nodeData.data : root.data) + if (removeActiveState) { + tree.data.isActive = false + } tree.children = [] if (root.children && root.children.length > 0) { root.children.forEach((item, index) => { - tree.children[index] = copyNodeTree({}, item) + tree.children[index] = copyNodeTree({}, item, removeActiveState) + }) + } else if (root.nodeData && root.nodeData.children && root.nodeData.children.length > 0) { + root.nodeData.children.forEach((item, index) => { + tree.children[index] = copyNodeTree({}, item, removeActiveState) }) } return tree;