diff --git a/simple-mind-map/index.js b/simple-mind-map/index.js index cea6d114..367d1add 100644 --- a/simple-mind-map/index.js +++ b/simple-mind-map/index.js @@ -142,21 +142,21 @@ class MindMap { } // 渲染,部分渲染 - render() { + render(callback) { this.batchExecution.push('render', () => { this.initTheme() this.renderer.reRender = false - this.renderer.render() + this.renderer.render(callback) }) } // 重新渲染 - reRender() { + reRender(callback) { this.batchExecution.push('render', () => { this.draw.clear() this.initTheme() this.renderer.reRender = true - this.renderer.render() + this.renderer.render(callback) }) } diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 68257368..d8164d0b 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -1,6 +1,6 @@ { "name": "simple-mind-map", - "version": "0.3.1", + "version": "0.3.2", "description": "一个简单的web在线思维导图", "authors": [ { diff --git a/simple-mind-map/src/Render.js b/simple-mind-map/src/Render.js index 19c315e4..65693d70 100644 --- a/simple-mind-map/src/Render.js +++ b/simple-mind-map/src/Render.js @@ -239,7 +239,7 @@ class Render { // 渲染 - render() { + render(callback = () => {}) { if (this.reRender) { this.clearActive() } @@ -247,6 +247,7 @@ class Render { this.root = root this.root.render(() => { this.mindMap.emit('node_tree_render_end') + callback() }) }) this.mindMap.emit('node_active', null, this.activeNodeList) @@ -472,6 +473,8 @@ class Render { if (node.isRoot) { return } + // 如果是二级节点变成了下级节点,或是下级节点变成了二级节点,节点样式需要更新 + let nodeLayerChanged = (node.layerIndex === 1 && exist.layerIndex !== 1) || (node.layerIndex !== 1 && exist.layerIndex === 1) // 移动节点 let nodeParent = node.parent let nodeBorthers = nodeParent.children @@ -495,7 +498,12 @@ class Render { } existBorthers.splice(existIndex, 0, node) existParent.nodeData.children.splice(existIndex, 0, node.nodeData) - this.mindMap.render() + this.mindMap.render(() => { + if (nodeLayerChanged) { + node.getSize() + node.renderNode() + } + }) } // 将节点移动到另一个节点的后面 @@ -504,6 +512,8 @@ class Render { if (node.isRoot) { return } + // 如果是二级节点变成了下级节点,或是下级节点变成了二级节点,节点样式需要更新 + let nodeLayerChanged = (node.layerIndex === 1 && exist.layerIndex !== 1) || (node.layerIndex !== 1 && exist.layerIndex === 1) // 移动节点 let nodeParent = node.parent let nodeBorthers = nodeParent.children @@ -528,7 +538,12 @@ class Render { existIndex++ existBorthers.splice(existIndex, 0, node) existParent.nodeData.children.splice(existIndex, 0, node.nodeData) - this.mindMap.render() + this.mindMap.render(() => { + if (nodeLayerChanged) { + node.getSize() + node.renderNode() + } + }) } // 移除节点 diff --git a/web/src/pages/Doc/en/changelog/index.md b/web/src/pages/Doc/en/changelog/index.md index 472d6ddf..6b10c94f 100644 --- a/web/src/pages/Doc/en/changelog/index.md +++ b/web/src/pages/Doc/en/changelog/index.md @@ -1,5 +1,9 @@ # Changelog +## 0.3.2 + +Fix: 1.Fix the problem that the node style is not updated when the secondary node is dragged to other nodes or other nodes are dragged to the secondary node; + ## 0.3.1 Fix: 1.The problem that deleting the background image does not take effect; 2.The problem that the connector runs above the root node when the node is dragged to the root node. diff --git a/web/src/pages/Doc/en/changelog/index.vue b/web/src/pages/Doc/en/changelog/index.vue index c781161e..d91379ce 100644 --- a/web/src/pages/Doc/en/changelog/index.vue +++ b/web/src/pages/Doc/en/changelog/index.vue @@ -1,6 +1,8 @@