From 47328236f7af3e12a10ab0debbae0a7d1acf5477 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 30 Dec 2022 10:52:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=BB=E5=B8=83=E8=B7=9D?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E5=B7=A6=E4=B8=8A=E8=A7=92=E4=B8=8D=E4=B8=BA?= =?UTF-8?q?0=E6=97=B6=E8=8A=82=E7=82=B9=E6=8B=96=E6=8B=BD=E5=87=BA?= =?UTF-8?q?=E7=8E=B0=E5=81=8F=E7=A7=BB=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- index.html | 2 +- simple-mind-map/package.json | 2 +- simple-mind-map/src/Drag.js | 9 ++-- simple-mind-map/src/Render.js | 67 ++++++++++++-------------- web/src/pages/Edit/components/Edit.vue | 5 ++ 6 files changed, 43 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 381738dd..e68dfe13 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ npm run build # 安装 -> 当前仓库版本:0.2.19,当前npm版本:0.2.19 +> 当前仓库版本:0.2.20,当前npm版本:0.2.20 ```bash npm i simple-mind-map diff --git a/index.html b/index.html index 34c8bdf3..8094277b 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -一个简单的web思维导图实现
\ No newline at end of file +一个简单的web思维导图实现
\ No newline at end of file diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 9d99df75..2407f636 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -1,6 +1,6 @@ { "name": "simple-mind-map", - "version": "0.2.19", + "version": "0.2.20", "description": "一个简单的web在线思维导图", "authors": [ { diff --git a/simple-mind-map/src/Drag.js b/simple-mind-map/src/Drag.js index f186bb05..5c8925d6 100644 --- a/simple-mind-map/src/Drag.js +++ b/simple-mind-map/src/Drag.js @@ -76,12 +76,11 @@ class Drag extends Base { // 计算鼠标按下的位置距离节点左上角的距离 this.drawTransform = this.mindMap.draw.transform() let { scaleX, scaleY, translateX, translateY } = this.drawTransform - this.offsetX = e.clientX - (node.left * scaleX + translateX) - this.offsetY = e.clientY - (node.top * scaleY + translateY) - // + let { x, y } = this.mindMap.toPos(e.clientX, e.clientY) + this.offsetX = x - (node.left * scaleX + translateX) + this.offsetY = y - (node.top * scaleY + translateY) this.node = node this.isMousedown = true - let { x, y } = this.mindMap.toPos(e.clientX, e.clientY) this.mouseDownX = x this.mouseDownY = y }) @@ -275,7 +274,7 @@ class Drag extends Base { } } // 检测兄弟节点位置 - if (!this.prevNode && !this.nextNode && this.node.isBrother(node)) { + if (!this.prevNode && !this.nextNode && !node.isRoot) {// && this.node.isBrother(node) if (left <= checkRight && right >= this.cloneNodeLeft) { if (this.cloneNodeTop > bottom && this.cloneNodeTop <= bottom + 10) { this.prevNode = node diff --git a/simple-mind-map/src/Render.js b/simple-mind-map/src/Render.js index c5980c9c..b31b0195 100644 --- a/simple-mind-map/src/Render.js +++ b/simple-mind-map/src/Render.js @@ -549,32 +549,30 @@ class Render { if (node.isRoot) { return } - let parent = node.parent - let childList = parent.children - // 要移动节点的索引 - let index = childList.findIndex(item => { + // 移动节点 + let nodeParent = node.parent + let nodeBorthers = nodeParent.children + let nodeIndex = nodeBorthers.findIndex(item => { return item === node }) - if (index === -1) { + if (nodeIndex === -1) { return } - // 目标节点的索引 - let existIndex = childList.findIndex(item => { + nodeBorthers.splice(nodeIndex, 1) + nodeParent.nodeData.children.splice(nodeIndex, 1) + + + // 目标节点 + let existParent = exist.parent + let existBorthers = existParent.children + let existIndex = existBorthers.findIndex(item => { return item === exist }) if (existIndex === -1) { return } - // 当前节点在目标节点前面 - if (index < existIndex) { - existIndex = existIndex - 1 - } - // 节点实例 - childList.splice(index, 1) - childList.splice(existIndex, 0, node) - // 节点数据 - parent.nodeData.children.splice(index, 1) - parent.nodeData.children.splice(existIndex, 0, node.nodeData) + existBorthers.splice(existIndex, 0, node) + existParent.nodeData.children.splice(existIndex, 0, node.nodeData) this.mindMap.render() } @@ -588,34 +586,31 @@ class Render { if (node.isRoot) { return } - let parent = node.parent - let childList = parent.children - // 要移动节点的索引 - let index = childList.findIndex(item => { + // 移动节点 + let nodeParent = node.parent + let nodeBorthers = nodeParent.children + let nodeIndex = nodeBorthers.findIndex(item => { return item === node }) - if (index === -1) { + if (nodeIndex === -1) { return } - // 目标节点的索引 - let existIndex = childList.findIndex(item => { + nodeBorthers.splice(nodeIndex, 1) + nodeParent.nodeData.children.splice(nodeIndex, 1) + + + // 目标节点 + let existParent = exist.parent + let existBorthers = existParent.children + let existIndex = existBorthers.findIndex(item => { return item === exist }) if (existIndex === -1) { return } - // 当前节点在目标节点前面 - if (index < existIndex) { - // do nothing - } else { - existIndex = existIndex + 1 - } - // 节点实例 - childList.splice(index, 1) - childList.splice(existIndex, 0, node) - // 节点数据 - parent.nodeData.children.splice(index, 1) - parent.nodeData.children.splice(existIndex, 0, node.nodeData) + existIndex++ + existBorthers.splice(existIndex, 0, node) + existParent.nodeData.children.splice(existIndex, 0, node.nodeData) this.mindMap.render() } diff --git a/web/src/pages/Edit/components/Edit.vue b/web/src/pages/Edit/components/Edit.vue index b7f81bd0..b3b1a8ba 100644 --- a/web/src/pages/Edit/components/Edit.vue +++ b/web/src/pages/Edit/components/Edit.vue @@ -328,6 +328,11 @@ export default { top: 0px; width: 100%; height: 100%; + + // left: 100px; + // top: 100px; + // right: 100px; + // bottom: 100px; } }