From 44410900aad9af28a15ea6394553bc279a9028ff Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Wed, 6 Sep 2023 09:18:29 +0800 Subject: [PATCH 01/68] Doc: update --- index.html | 4 ++-- web/src/pages/Doc/catalogList.js | 2 +- web/src/pages/Doc/routerList.js | 4 +++- web/src/pages/Doc/zh/help1/index.md | 6 ++++-- web/src/pages/Doc/zh/help1/index.vue | 5 +++-- web/src/pages/Doc/zh/help3/index.md | 11 +++++++++++ web/src/pages/Doc/zh/help3/index.vue | 21 +++++++++++++++++++++ 7 files changed, 45 insertions(+), 8 deletions(-) create mode 100644 web/src/pages/Doc/zh/help3/index.md create mode 100644 web/src/pages/Doc/zh/help3/index.vue diff --git a/index.html b/index.html index 2e40b502..1c47fd3a 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ 思绪思维导图
\ No newline at end of file + } \ No newline at end of file diff --git a/web/src/pages/Doc/catalogList.js b/web/src/pages/Doc/catalogList.js index f98610d9..f602a71c 100644 --- a/web/src/pages/Doc/catalogList.js +++ b/web/src/pages/Doc/catalogList.js @@ -39,7 +39,7 @@ let APIList = [ 'markdown', 'utils' ] -let helpList = new Array(2).fill(0).map((_, index) => { +let helpList = new Array(3).fill(0).map((_, index) => { return 'help' + (index + 1) }) diff --git a/web/src/pages/Doc/routerList.js b/web/src/pages/Doc/routerList.js index 88f8964b..88b5c7f2 100644 --- a/web/src/pages/Doc/routerList.js +++ b/web/src/pages/Doc/routerList.js @@ -56,7 +56,9 @@ export default [ { path: 'painter', title: 'Painter插件' }, { path: 'painter', title: 'Painter插件' }, { path: 'scrollbar', title: 'Scrollbar插件' }, - { path: 'help2', title: '客户端' } + { path: 'help1', title: '概要/关联线' }, + { path: 'help2', title: '客户端' }, + { path: 'help3', title: '打开预览在线文件' } ] }, { diff --git a/web/src/pages/Doc/zh/help1/index.md b/web/src/pages/Doc/zh/help1/index.md index ba382983..9dcd537a 100644 --- a/web/src/pages/Doc/zh/help1/index.md +++ b/web/src/pages/Doc/zh/help1/index.md @@ -4,8 +4,10 @@ 可以选中一个节点添加概要,如果想给多个节点添加一个概要,只能通过给它们的父节点添加来实现。 -概要节点后面无法再添加节点,后续该特性也不会支持。 +概要节点后面无法再添加节点,后续该特性大概率也不会支持。 ## 关联线 -关联线添加完后要删除,需要先点击选中关联线,然后按删除键即可。 \ No newline at end of file +添加关联线:先激活某个节点,然后点击上方工具栏的【关联线】按钮,最后点击要关联到的节点即可创建完成。 + +删除关联线:需要先点击选中关联线,然后按删除键即可。 \ No newline at end of file diff --git a/web/src/pages/Doc/zh/help1/index.vue b/web/src/pages/Doc/zh/help1/index.vue index a7a6fba9..a6902a54 100644 --- a/web/src/pages/Doc/zh/help1/index.vue +++ b/web/src/pages/Doc/zh/help1/index.vue @@ -3,9 +3,10 @@

概要/关联线

概要

可以选中一个节点添加概要,如果想给多个节点添加一个概要,只能通过给它们的父节点添加来实现。

-

概要节点后面无法再添加节点,后续该特性也不会支持。

+

概要节点后面无法再添加节点,后续该特性大概率也不会支持。

关联线

-

关联线添加完后要删除,需要先点击选中关联线,然后按删除键即可。

+

添加关联线:先激活某个节点,然后点击上方工具栏的【关联线】按钮,最后点击要关联到的节点即可创建完成。

+

删除关联线:需要先点击选中关联线,然后按删除键即可。

diff --git a/web/src/pages/Doc/zh/help3/index.md b/web/src/pages/Doc/zh/help3/index.md new file mode 100644 index 00000000..ca3f2183 --- /dev/null +++ b/web/src/pages/Doc/zh/help3/index.md @@ -0,0 +1,11 @@ +# 打开预览在线文件 + +v0.7.0+版本支持打开url中携带的在线文件: + +``` +https://wanglin2.github.io/mind-map/#/?fileURL=http://xxx.com/xxx.xmind +``` + +在`fileURL`参数后带上你的在线文件url即可,目前支持`.xmind`、`.smm`、`.json`、`.md`后缀的文件url。 + +需要注意的是你在打开在线文件的情况下编辑并不会修改在线文件,改动会保存在你的浏览器本地,你可以选择导出文件。 \ No newline at end of file diff --git a/web/src/pages/Doc/zh/help3/index.vue b/web/src/pages/Doc/zh/help3/index.vue new file mode 100644 index 00000000..f3574946 --- /dev/null +++ b/web/src/pages/Doc/zh/help3/index.vue @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file From 4ac91003bb9d20fb6e6bb29ac7263d83ed7e225b Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Thu, 7 Sep 2023 17:17:32 +0800 Subject: [PATCH 02/68] =?UTF-8?q?Demo=EF=BC=9A=E9=A1=B5=E9=9D=A2=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=98=BE=E7=A4=BA=E5=BD=93=E5=89=8D=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E5=BA=93=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/pages/Edit/components/NavigatorToolbar.vue | 3 +++ 1 file changed, 3 insertions(+) diff --git a/web/src/pages/Edit/components/NavigatorToolbar.vue b/web/src/pages/Edit/components/NavigatorToolbar.vue index 5916e7f4..99700575 100644 --- a/web/src/pages/Edit/components/NavigatorToolbar.vue +++ b/web/src/pages/Edit/components/NavigatorToolbar.vue @@ -80,6 +80,7 @@ 开发文档 官方网站 意见反馈 + 当前:v{{ version }} @@ -94,6 +95,7 @@ import { langList } from '@/config' import i18n from '@/i18n' import { storeLang, getLang } from '@/api' import { mapState, mapMutations } from 'vuex' +import pkg from 'simple-mind-map/package.json' /** * @Author: 王林 @@ -114,6 +116,7 @@ export default { }, data() { return { + version: pkg.version, langList, lang: '', isReadonly: false, From 305c5e9f7091579c1831c7b6bdf43a8996277a51 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Thu, 7 Sep 2023 17:36:36 +0800 Subject: [PATCH 03/68] Doc: update --- README.md | 4 +++ web/src/assets/avatar/蜉蝣撼大叔.jpg | Bin 0 -> 49683 bytes web/src/pages/Doc/catalogList.js | 2 +- web/src/pages/Doc/en/introduction/index.md | 4 +++ web/src/pages/Doc/en/introduction/index.vue | 4 +++ web/src/pages/Doc/en/start/index.md | 12 ++++++++- web/src/pages/Doc/en/start/index.vue | 5 ++++ web/src/pages/Doc/routerList.js | 3 ++- web/src/pages/Doc/zh/help4/index.md | 23 +++++++++++++++++ web/src/pages/Doc/zh/help4/index.vue | 27 ++++++++++++++++++++ web/src/pages/Doc/zh/introduction/index.md | 4 +++ web/src/pages/Doc/zh/introduction/index.vue | 4 +++ web/src/pages/Doc/zh/start/index.md | 12 ++++++++- web/src/pages/Doc/zh/start/index.vue | 5 ++++ 14 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 web/src/assets/avatar/蜉蝣撼大叔.jpg create mode 100644 web/src/pages/Doc/zh/help4/index.md create mode 100644 web/src/pages/Doc/zh/help4/index.vue diff --git a/README.md b/README.md index 3dda2b1b..e1723c94 100644 --- a/README.md +++ b/README.md @@ -171,4 +171,8 @@ const mindMap = new MindMap({ 南风 + + + 蜉蝣撼大叔 +

\ No newline at end of file diff --git a/web/src/assets/avatar/蜉蝣撼大叔.jpg b/web/src/assets/avatar/蜉蝣撼大叔.jpg new file mode 100644 index 0000000000000000000000000000000000000000..24ef2f3d68217b2c55f4192d7fbac6af8ce7e7df GIT binary patch literal 49683 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 { +let helpList = new Array(4).fill(0).map((_, index) => { return 'help' + (index + 1) }) diff --git a/web/src/pages/Doc/en/introduction/index.md b/web/src/pages/Doc/en/introduction/index.md index 1f856d9e..862cf6db 100644 --- a/web/src/pages/Doc/en/introduction/index.md +++ b/web/src/pages/Doc/en/introduction/index.md @@ -192,4 +192,8 @@ Open source is not easy. If this project is helpful to you, you can invite the a

南风

+
+ +

蜉蝣撼大叔

+
\ No newline at end of file diff --git a/web/src/pages/Doc/en/introduction/index.vue b/web/src/pages/Doc/en/introduction/index.vue index dc31cb3f..adc0c630 100644 --- a/web/src/pages/Doc/en/introduction/index.vue +++ b/web/src/pages/Doc/en/introduction/index.vue @@ -151,6 +151,10 @@ full screen, support mini map

南风

+
+ +

蜉蝣撼大叔

+
diff --git a/web/src/pages/Doc/en/start/index.md b/web/src/pages/Doc/en/start/index.md index e76ddf9f..887c30f6 100644 --- a/web/src/pages/Doc/en/start/index.md +++ b/web/src/pages/Doc/en/start/index.md @@ -167,4 +167,14 @@ module. If you need it, you can try using other libraries to parse `xml` to ### Error `Getting bbox of element "text" is not possible: TypeError: Cannot read properties of undefined (reading 'apply')` -The reason is that the installed version of `@svgdotjs/svg.js` is too high. You can manually reduce it to the version of `3.0.16`. \ No newline at end of file +The reason is that the installed version of `@svgdotjs/svg.js` is too high. You can manually reduce it to the version of `3.0.16`. + +### TypeError: Cannot read properties of undefined (reading 'prototype') at sax.js:222:46 + +The following configurations can be added to the packaging configuration file: + +```js +resolve: { alias: { stream: "stream-browserify" } } +``` + +Different packaging tools may have different specific configurations, with the principle of excluding 'stream' dependencies. \ No newline at end of file diff --git a/web/src/pages/Doc/en/start/index.vue b/web/src/pages/Doc/en/start/index.vue index 6ad429f9..0d3dee1e 100644 --- a/web/src/pages/Doc/en/start/index.vue +++ b/web/src/pages/Doc/en/start/index.vue @@ -116,6 +116,11 @@ module. If you need it, you can try using other libraries to parse xmljson.

Error Getting bbox of element "text" is not possible: TypeError: Cannot read properties of undefined (reading 'apply')

The reason is that the installed version of @svgdotjs/svg.js is too high. You can manually reduce it to the version of 3.0.16.

+

TypeError: Cannot read properties of undefined (reading 'prototype') at sax.js:222:46

+

The following configurations can be added to the packaging configuration file:

+
resolve: { alias: { stream: "stream-browserify" } }
+
+

Different packaging tools may have different specific configurations, with the principle of excluding 'stream' dependencies.

diff --git a/web/src/pages/Doc/routerList.js b/web/src/pages/Doc/routerList.js index 88b5c7f2..f8615889 100644 --- a/web/src/pages/Doc/routerList.js +++ b/web/src/pages/Doc/routerList.js @@ -58,7 +58,8 @@ export default [ { path: 'scrollbar', title: 'Scrollbar插件' }, { path: 'help1', title: '概要/关联线' }, { path: 'help2', title: '客户端' }, - { path: 'help3', title: '打开预览在线文件' } + { path: 'help3', title: '打开预览在线文件' }, + { path: 'help4', title: '复制粘贴' } ] }, { diff --git a/web/src/pages/Doc/zh/help4/index.md b/web/src/pages/Doc/zh/help4/index.md new file mode 100644 index 00000000..f80ae0d5 --- /dev/null +++ b/web/src/pages/Doc/zh/help4/index.md @@ -0,0 +1,23 @@ +# 复制粘贴 + +## 复制粘贴画布内的节点 + +你可以通过选中某个节点,然后按`ctrl`+`c`快捷键来复制节点,如果选中多个节点,目前只支持复制第一个节点,然后点击你要复制到的节点,按`ctrl`+`v`快捷键粘贴即可。 + +除了快捷键,也可以通过右键菜单来操作。 + +## 支持粘贴剪贴板中的数据 + +当你选中某个节点后,直接按`ctrl`+`v`快捷键时,如果你的剪贴板中有数据,会粘贴你剪贴板中的数据,目前支持文本和图片两种格式,如果你的剪贴板中有图片,那么会将图片粘贴到你选中的节点里,如果存在文本,那么会以该文件创建一个子节点。 + +如果你的剪贴板中存在数据,又在画布里复制了节点数据,那么是以谁最后改变了为准。 + +## 支持跨浏览器标签、跨浏览器复制 + +如果你在多个浏览器里打开了思维导图编辑页面,那么可以复制一个页面的节点数据到另一个页面进行粘贴。 + +在客户端场景下打开了多个编辑页面时比较常用。 + +## 支持粘贴知犀思维导图数据 + +目前支持复制知犀思维导图的节点数据粘贴到本思维导图里。 \ No newline at end of file diff --git a/web/src/pages/Doc/zh/help4/index.vue b/web/src/pages/Doc/zh/help4/index.vue new file mode 100644 index 00000000..17ff1491 --- /dev/null +++ b/web/src/pages/Doc/zh/help4/index.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/web/src/pages/Doc/zh/introduction/index.md b/web/src/pages/Doc/zh/introduction/index.md index f901afa0..07f8d62b 100644 --- a/web/src/pages/Doc/zh/introduction/index.md +++ b/web/src/pages/Doc/zh/introduction/index.md @@ -185,4 +185,8 @@

南风

+
+ +

蜉蝣撼大叔

+
\ No newline at end of file diff --git a/web/src/pages/Doc/zh/introduction/index.vue b/web/src/pages/Doc/zh/introduction/index.vue index 9420382d..3e3a2043 100644 --- a/web/src/pages/Doc/zh/introduction/index.vue +++ b/web/src/pages/Doc/zh/introduction/index.vue @@ -145,6 +145,10 @@

南风

+
+ +

蜉蝣撼大叔

+
diff --git a/web/src/pages/Doc/zh/start/index.md b/web/src/pages/Doc/zh/start/index.md index e6998a65..4adb7f3f 100644 --- a/web/src/pages/Doc/zh/start/index.md +++ b/web/src/pages/Doc/zh/start/index.md @@ -151,4 +151,14 @@ import MindMap from "simple-mind-map/dist/simpleMindMap.umd.min" ### 2.报错`Getting bbox of element "text" is not possible: TypeError: Cannot read properties of undefined (reading 'apply')` -原因为安装的`@svgdotjs/svg.js`版本太高,手动降到`3.0.16`版本即可。 \ No newline at end of file +原因为安装的`@svgdotjs/svg.js`版本太高,手动降到`3.0.16`版本即可。 + +### 3.TypeError: Cannot read properties of undefined (reading 'prototype') at sax.js:222:46 + +可以在打包配置文件中增加如下配置: + +```js +resolve: { alias: { stream: "stream-browserify" } } +``` + +不同的打包工具可能具体配置不一样,原理就是排除`stream`依赖。 \ No newline at end of file diff --git a/web/src/pages/Doc/zh/start/index.vue b/web/src/pages/Doc/zh/start/index.vue index 45a59f93..a2fc0c63 100644 --- a/web/src/pages/Doc/zh/start/index.vue +++ b/web/src/pages/Doc/zh/start/index.vue @@ -99,6 +99,11 @@ npm run build

如果需要二次开发,也就是必须要使用未打包代码的话,如果你不需要解析xmind文件的话,可以去除xmind模块,如果需要的话那么可以尝试换成其他的解析xmljson的库。

2.报错Getting bbox of element "text" is not possible: TypeError: Cannot read properties of undefined (reading 'apply')

原因为安装的@svgdotjs/svg.js版本太高,手动降到3.0.16版本即可。

+

3.TypeError: Cannot read properties of undefined (reading 'prototype') at sax.js:222:46

+

可以在打包配置文件中增加如下配置:

+
resolve: { alias: { stream: "stream-browserify" } }
+
+

不同的打包工具可能具体配置不一样,原理就是排除stream依赖。

From 1d04038609eb9fb0329042fe98a87aa6f3538139 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Thu, 7 Sep 2023 18:21:12 +0800 Subject: [PATCH 04/68] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=85=B3?= =?UTF-8?q?=E8=81=94=E7=BA=BF=E7=AB=AF=E7=82=B9=E6=94=B9=E5=8F=98=E5=90=8E?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E9=A1=B5=E9=9D=A2=E6=9C=AA=E4=BF=9D=E5=AD=98?= =?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/plugins/AssociativeLine.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simple-mind-map/src/plugins/AssociativeLine.js b/simple-mind-map/src/plugins/AssociativeLine.js index dbca5808..7f0ae128 100644 --- a/simple-mind-map/src/plugins/AssociativeLine.js +++ b/simple-mind-map/src/plugins/AssociativeLine.js @@ -433,7 +433,7 @@ class AssociativeLine { ] let associativeLinePoint = fromNode.nodeData.data.associativeLinePoint || [] // 记录关联的起始|结束坐标 - associativeLinePoint[list.length - 1] = [{ startPoint, endPoint }] + associativeLinePoint[list.length - 1] = { startPoint, endPoint } this.mindMap.execCommand('SET_NODE_DATA', fromNode, { associativeLineTargets: list, associativeLineTargetControlOffsets: offsetList, From 5585d2a4f76b151da3e806d5dc15e7a298c601c0 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Thu, 7 Sep 2023 18:45:02 +0800 Subject: [PATCH 05/68] =?UTF-8?q?Feat=EF=BC=9A=E8=8A=82=E7=82=B9=E6=AF=94?= =?UTF-8?q?=E5=AF=B9=E5=85=A8=E9=83=A8=E6=94=B9=E4=B8=BA=E9=80=9A=E8=BF=87?= =?UTF-8?q?uid=E5=AF=B9=E6=AF=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/core/render/Render.js | 16 ++++++++-------- simple-mind-map/src/core/render/node/Node.js | 8 ++++---- simple-mind-map/src/plugins/AssociativeLine.js | 4 ++-- simple-mind-map/src/plugins/Drag.js | 4 ++-- .../src/plugins/KeyboardNavigation.js | 6 +++--- simple-mind-map/src/plugins/NodeImgAdjust.js | 2 +- simple-mind-map/src/plugins/Painter.js | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 3aa2500e..230713cb 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -382,7 +382,7 @@ class Render { // 检索某个节点在激活列表里的索引 findActiveNodeIndex(node) { return this.activeNodeList.findIndex(item => { - return item === node + return item.uid === node.uid }) } @@ -390,7 +390,7 @@ class Render { getNodeIndex(node) { return node.parent ? node.parent.children.findIndex(item => { - return item === node + return item.uid === node.uid }) : 0 } @@ -553,7 +553,7 @@ class Render { let parent = node.parent let childList = parent.children let index = childList.findIndex(item => { - return item === node + return item.uid === node.uid }) if (index === -1 || index === 0) { return @@ -580,7 +580,7 @@ class Render { let parent = node.parent let childList = parent.children let index = childList.findIndex(item => { - return item === node + return item.uid === node.uid }) if (index === -1 || index === childList.length - 1) { return @@ -752,7 +752,7 @@ class Render { let nodeParent = node.parent let nodeBorthers = nodeParent.children let nodeIndex = nodeBorthers.findIndex(item => { - return item === node + return item.uid === node.uid }) if (nodeIndex === -1) { return @@ -764,7 +764,7 @@ class Render { let existParent = exist.parent let existBorthers = existParent.children let existIndex = existBorthers.findIndex(item => { - return item === exist + return item.uid === exist.uid }) if (existIndex === -1) { return @@ -791,7 +791,7 @@ class Render { let nodeParent = node.parent let nodeBorthers = nodeParent.children let nodeIndex = nodeBorthers.findIndex(item => { - return item === node + return item.uid === node.uid }) if (nodeIndex === -1) { return @@ -803,7 +803,7 @@ class Render { let existParent = exist.parent let existBorthers = existParent.children let existIndex = existBorthers.findIndex(item => { - return item === exist + return item.uid === exist.uid }) if (existIndex === -1) { return diff --git a/simple-mind-map/src/core/render/node/Node.js b/simple-mind-map/src/core/render/node/Node.js index 9bca88b9..43e3075b 100644 --- a/simple-mind-map/src/core/render/node/Node.js +++ b/simple-mind-map/src/core/render/node/Node.js @@ -794,12 +794,12 @@ class Node { // 检测当前节点是否是某个节点的祖先节点 isParent(node) { - if (this === node) { + if (this.uid === node.uid) { return false } let parent = node.parent while (parent) { - if (this === parent) { + if (this.uid === parent.uid) { return true } parent = parent.parent @@ -809,11 +809,11 @@ class Node { // 检测当前节点是否是某个节点的兄弟节点 isBrother(node) { - if (!this.parent || this === node) { + if (!this.parent || this.uid === node.uid) { return false } return this.parent.children.find(item => { - return item === node + return item.uid === node.uid }) } diff --git a/simple-mind-map/src/plugins/AssociativeLine.js b/simple-mind-map/src/plugins/AssociativeLine.js index 7f0ae128..5855c27b 100644 --- a/simple-mind-map/src/plugins/AssociativeLine.js +++ b/simple-mind-map/src/plugins/AssociativeLine.js @@ -362,7 +362,7 @@ class AssociativeLine { if (node.nodeData.data.isActive) { this.mindMap.renderer.setNodeActive(node, false) } - if (node === this.creatingStartNode || this.overlapNode) { + if (node.uid === this.creatingStartNode.uid || this.overlapNode) { return } let { left, top, width, height } = node @@ -379,7 +379,7 @@ class AssociativeLine { // 完成创建连接线 completeCreateLine(node) { - if (this.creatingStartNode === node) return + if (this.creatingStartNode.uid === node.uid) return this.addLine(this.creatingStartNode, node) if (this.overlapNode && this.overlapNode.nodeData.data.isActive) { this.mindMap.renderer.setNodeActive(this.overlapNode, false) diff --git a/simple-mind-map/src/plugins/Drag.js b/simple-mind-map/src/plugins/Drag.js index fd99c5bf..3b49a035 100644 --- a/simple-mind-map/src/plugins/Drag.js +++ b/simple-mind-map/src/plugins/Drag.js @@ -218,7 +218,7 @@ class Drag extends Base { if (node.nodeData.data.isActive) { this.mindMap.renderer.setNodeActive(node, false) } - if (node === this.node || this.node.isParent(node)) { + if (node.uid === this.node.uid) { return } if (this.overlapNode || (this.prevNode && this.nextNode)) { @@ -231,7 +231,7 @@ class Drag extends Base { return item !== this.node }) : [] let index = checkList.findIndex((item) => { - return item === node + return item.uid === node.uid }) let prevBrother = null let nextBrother = null diff --git a/simple-mind-map/src/plugins/KeyboardNavigation.js b/simple-mind-map/src/plugins/KeyboardNavigation.js index 5ed4b593..d38815d0 100644 --- a/simple-mind-map/src/plugins/KeyboardNavigation.js +++ b/simple-mind-map/src/plugins/KeyboardNavigation.js @@ -94,7 +94,7 @@ class KeyboardNavigation { // 遍历节点树 bfsWalk(this.mindMap.renderer.root, node => { // 跳过当前聚焦的节点 - if (node === currentActiveNode) return + if (node.uid === currentActiveNode.uid) return // 当前遍历到的节点的位置信息 let rect = this.getNodeRect(node) let { left, top, right, bottom } = rect @@ -131,7 +131,7 @@ class KeyboardNavigation { checkNodeDis }) { bfsWalk(this.mindMap.renderer.root, node => { - if (node === currentActiveNode) return + if (node.uid === currentActiveNode.uid) return let rect = this.getNodeRect(node) let { left, top, right, bottom } = rect let match = false @@ -173,7 +173,7 @@ class KeyboardNavigation { let cX = (currentActiveNodeRect.right + currentActiveNodeRect.left) / 2 let cY = (currentActiveNodeRect.bottom + currentActiveNodeRect.top) / 2 bfsWalk(this.mindMap.renderer.root, node => { - if (node === currentActiveNode) return + if (node.uid === currentActiveNode.uid) return let rect = this.getNodeRect(node) let { left, top, right, bottom } = rect // 遍历到的节点的中心点 diff --git a/simple-mind-map/src/plugins/NodeImgAdjust.js b/simple-mind-map/src/plugins/NodeImgAdjust.js index cdde7045..ff62cb56 100644 --- a/simple-mind-map/src/plugins/NodeImgAdjust.js +++ b/simple-mind-map/src/plugins/NodeImgAdjust.js @@ -49,7 +49,7 @@ class NodeImgAdjust { // 如果当前正在拖动调整中那么直接返回 if (this.isMousedown || this.isAdjusted || this.mindMap.opt.readonly) return // 如果在当前节点内移动,以及自定义元素已经是显示状态,那么直接返回 - if (this.node === node && this.isShowHandleEl) return + if ((this.node && this.node.uid === node.uid) && this.isShowHandleEl) return // 更新当前节点信息 this.node = node this.img = img diff --git a/simple-mind-map/src/plugins/Painter.js b/simple-mind-map/src/plugins/Painter.js index b9ef5cd3..ff395165 100644 --- a/simple-mind-map/src/plugins/Painter.js +++ b/simple-mind-map/src/plugins/Painter.js @@ -49,7 +49,7 @@ class Painter { !this.isInPainter || !this.painterNode || !node || - node === this.painterNode + node.uid === this.painterNode.uid ) return const style = {} From 21868c7f44dfd44041b9f3f25c7625471168a020 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 09:21:32 +0800 Subject: [PATCH 06/68] =?UTF-8?q?Feat=EF=BC=9A=E4=BC=98=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B=E7=9A=84=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E6=8B=96=E6=8B=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/plugins/Drag.js | 82 +++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 21 deletions(-) diff --git a/simple-mind-map/src/plugins/Drag.js b/simple-mind-map/src/plugins/Drag.js index 3b49a035..3ba968c3 100644 --- a/simple-mind-map/src/plugins/Drag.js +++ b/simple-mind-map/src/plugins/Drag.js @@ -13,6 +13,8 @@ class Drag extends Base { // 复位 reset() { + // 当前画布节点列表 + this.nodeList = [] // 当前拖拽节点 this.node = null // 当前重叠节点 @@ -68,6 +70,7 @@ class Drag extends Base { this.isMousedown = true this.mouseDownX = x this.mouseDownY = y + this.nodeTreeToList() }) this.mindMap.on('mousemove', e => { if (this.mindMap.opt.readonly) { @@ -106,7 +109,9 @@ class Drag extends Base { this.node.isDrag = false this.node.show() this.removeCloneNode() - let overlapNodeUid = this.overlapNode ? this.overlapNode.nodeData.data.uid : '' + let overlapNodeUid = this.overlapNode + ? this.overlapNode.nodeData.data.uid + : '' let prevNodeUid = this.prevNode ? this.prevNode.nodeData.data.uid : '' let nextNodeUid = this.nextNode ? this.nextNode.nodeData.data.uid : '' // 存在重叠子节点,则移动作为其子节点 @@ -207,14 +212,14 @@ class Drag extends Base { if (!this.drawTransform || !this.placeholder) { return } - const { nodeDragPlaceholderMaxSize } = this.mindMap.opt + const { nodeDragPlaceholderMaxSize } = this.mindMap.opt let x = this.mouseMoveX let y = this.mouseMoveY this.overlapNode = null this.prevNode = null this.nextNode = null this.placeholder.size(0, 0) - bfsWalk(this.mindMap.renderer.root, node => { + this.nodeList.forEach(node => { if (node.nodeData.data.isActive) { this.mindMap.renderer.setNodeActive(node, false) } @@ -227,10 +232,12 @@ class Drag extends Base { let nodeRect = this.getNodeRect(node) let oneFourthHeight = nodeRect.height / 4 // 前一个和后一个节点 - let checkList = node.parent ? node.parent.children.filter((item) => { - return item !== this.node - }) : [] - let index = checkList.findIndex((item) => { + let checkList = node.parent + ? node.parent.children.filter(item => { + return item !== this.node + }) + : [] + let index = checkList.findIndex(item => { return item.uid === node.uid }) let prevBrother = null @@ -246,10 +253,11 @@ class Drag extends Base { // 和前一个兄弟节点的距离 let prevBrotherOffset = 0 if (prevBrother) { - let prevNodeRect = this.getNodeRect(prevBrother) + let prevNodeRect = this.getNodeRect(prevBrother) prevBrotherOffset = nodeRect.top - prevNodeRect.bottom // 间距小于10就当它不存在 - prevBrotherOffset = prevBrotherOffset >= this.minOffset ? prevBrotherOffset / 2 : 0 + prevBrotherOffset = + prevBrotherOffset >= this.minOffset ? prevBrotherOffset / 2 : 0 } else { // 没有前一个兄弟节点,那么假设和前一个节点的距离为20 prevBrotherOffset = this.minOffset @@ -259,27 +267,45 @@ class Drag extends Base { if (nextBrother) { let nextNodeRect = this.getNodeRect(nextBrother) nextBrotherOffset = nextNodeRect.top - nodeRect.bottom - nextBrotherOffset = nextBrotherOffset >= this.minOffset ? nextBrotherOffset / 2 : 0 + nextBrotherOffset = + nextBrotherOffset >= this.minOffset ? nextBrotherOffset / 2 : 0 } else { nextBrotherOffset = this.minOffset } if (nodeRect.left <= x && nodeRect.right >= x) { // 检测兄弟节点位置 - if (!this.overlapNode && !this.prevNode && !this.nextNode && !node.isRoot) { - let checkIsPrevNode = nextBrotherOffset > 0 ? // 距离下一个兄弟节点的距离大于0 - y > nodeRect.bottom && y <= (nodeRect.bottom + nextBrotherOffset) : // 那么在当前节点外底部判断 - y >= nodeRect.bottom - oneFourthHeight && y <= nodeRect.bottom // 否则在当前节点内底部1/4区间判断 - let checkIsNextNode = prevBrotherOffset > 0 ? // 距离上一个兄弟节点的距离大于0 - y < nodeRect.top && y >= (nodeRect.top - prevBrotherOffset) : // 那么在当前节点外底部判断 - y >= nodeRect.top && y <= nodeRect.top + oneFourthHeight + if ( + !this.overlapNode && + !this.prevNode && + !this.nextNode && + !node.isRoot + ) { + let checkIsPrevNode = + nextBrotherOffset > 0 // 距离下一个兄弟节点的距离大于0 + ? y > nodeRect.bottom && y <= nodeRect.bottom + nextBrotherOffset // 那么在当前节点外底部判断 + : y >= nodeRect.bottom - oneFourthHeight && y <= nodeRect.bottom // 否则在当前节点内底部1/4区间判断 + let checkIsNextNode = + prevBrotherOffset > 0 // 距离上一个兄弟节点的距离大于0 + ? y < nodeRect.top && y >= nodeRect.top - prevBrotherOffset // 那么在当前节点外底部判断 + : y >= nodeRect.top && y <= nodeRect.top + oneFourthHeight if (checkIsPrevNode) { this.prevNode = node - let size = nextBrotherOffset > 0 ? Math.min(nextBrotherOffset, nodeDragPlaceholderMaxSize) : 5 - this.placeholder.size(node.width, size).move(nodeRect.originLeft, nodeRect.originBottom) + let size = + nextBrotherOffset > 0 + ? Math.min(nextBrotherOffset, nodeDragPlaceholderMaxSize) + : 5 + this.placeholder + .size(node.width, size) + .move(nodeRect.originLeft, nodeRect.originBottom) } else if (checkIsNextNode) { this.nextNode = node - let size = prevBrotherOffset > 0 ? Math.min(prevBrotherOffset, nodeDragPlaceholderMaxSize) : 5 - this.placeholder.size(node.width, size).move(nodeRect.originLeft, nodeRect.originTop - size) + let size = + prevBrotherOffset > 0 + ? Math.min(prevBrotherOffset, nodeDragPlaceholderMaxSize) + : 5 + this.placeholder + .size(node.width, size) + .move(nodeRect.originLeft, nodeRect.originTop - size) } } // 检测是否重叠 @@ -321,6 +347,20 @@ class Drag extends Base { originBottom } } + + // 节点由树转换成数组,从子节点到根节点 + nodeTreeToList() { + const list = [] + bfsWalk(this.mindMap.renderer.root, node => { + if (!list[node.layerIndex]) { + list[node.layerIndex] = [] + } + list[node.layerIndex].push(node) + }) + this.nodeList = list.reduceRight((res, cur) => { + return [...res, ...cur] + }, []) + } } Drag.instanceName = 'drag' From fe43be34518ea4a3263b1ed7615eb617734bdbcb Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 17:18:01 +0800 Subject: [PATCH 07/68] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E7=94=BB?= =?UTF-8?q?=E5=B8=83=E5=B7=A6=E4=B8=8A=E8=A7=92=E8=B7=9D=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E7=AA=97=E5=8F=A3=E4=B8=8D=E4=B8=BA0=E6=97=B6?= =?UTF-8?q?=E5=A4=9A=E9=80=89=E8=8A=82=E7=82=B9=E9=BC=A0=E6=A0=87=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=E8=BE=B9=E7=BC=98=E6=97=B6=E7=94=BB=E5=B8=83?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E5=BC=82=E5=B8=B8=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/plugins/Select.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simple-mind-map/src/plugins/Select.js b/simple-mind-map/src/plugins/Select.js index fe6d801d..bd782a47 100644 --- a/simple-mind-map/src/plugins/Select.js +++ b/simple-mind-map/src/plugins/Select.js @@ -55,7 +55,7 @@ class Select { return } clearTimeout(this.autoMoveTimer) - this.onMove(x, y) + this.onMove(e.clientX, e.clientY) }) this.mindMap.on('mouseup', () => { if (this.mindMap.opt.readonly) { From aee10c68101169550a2d5a9995a169d27f044afb Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 17:54:15 +0800 Subject: [PATCH 08/68] =?UTF-8?q?Feat=EF=BC=9A=E8=8A=82=E7=82=B9=E6=95=B0?= =?UTF-8?q?=E6=8D=AEdata=E4=B8=AD=E4=BB=A5=5F=E5=BC=80=E5=A4=B4=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E8=A2=AB=E8=AE=A4=E4=B8=BA=E6=98=AF=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/core/render/node/Style.js | 9 ++-- simple-mind-map/src/plugins/Painter.js | 4 +- simple-mind-map/src/utils/index.js | 12 ++++++ web/src/pages/Doc/en/constructor/index.md | 43 ++++++++++++++++++- web/src/pages/Doc/en/constructor/index.vue | 38 +++++++++++++++- web/src/pages/Doc/zh/constructor/index.md | 43 ++++++++++++++++++- web/src/pages/Doc/zh/constructor/index.vue | 38 +++++++++++++++- 7 files changed, 176 insertions(+), 11 deletions(-) diff --git a/simple-mind-map/src/core/render/node/Style.js b/simple-mind-map/src/core/render/node/Style.js index 98341bee..dacc31c3 100644 --- a/simple-mind-map/src/core/render/node/Style.js +++ b/simple-mind-map/src/core/render/node/Style.js @@ -1,7 +1,6 @@ -import { - tagColorList, - nodeDataNoStylePropList -} from '../../../constants/constant' +import { tagColorList } from '../../../constants/constant' +import { checkIsNodeStyleDataKey } from '../../../utils/index' + const rootProp = ['paddingX', 'paddingY'] const backgroundStyleProps = [ 'backgroundColor', @@ -225,7 +224,7 @@ class Style { hasCustomStyle() { let res = false Object.keys(this.ctx.nodeData.data).forEach(item => { - if (!nodeDataNoStylePropList.includes(item)) { + if (checkIsNodeStyleDataKey(item)) { res = true } }) diff --git a/simple-mind-map/src/plugins/Painter.js b/simple-mind-map/src/plugins/Painter.js index ff395165..5dd0be52 100644 --- a/simple-mind-map/src/plugins/Painter.js +++ b/simple-mind-map/src/plugins/Painter.js @@ -1,4 +1,4 @@ -import { nodeDataNoStylePropList } from '../constants/constant' +import { checkIsNodeStyleDataKey } from '../utils/index' // 格式刷插件 class Painter { @@ -55,7 +55,7 @@ class Painter { const style = {} const painterNodeData = this.painterNode.nodeData.data Object.keys(painterNodeData).forEach(key => { - if (!nodeDataNoStylePropList.includes(key)) { + if (checkIsNodeStyleDataKey(key)) { style[key] = painterNodeData[key] } }) diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index 405e2c56..d9de6f48 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -1,4 +1,5 @@ import { v4 as uuidv4 } from 'uuid' +import { nodeDataNoStylePropList } from '../constants/constant' // 深度优先遍历树 export const walk = ( @@ -656,4 +657,15 @@ export const getObjectChangedProps = (oldObject, newObject) => { } }) return res +} + +// 判断一个字段是否是节点数据中的样式字段 +export const checkIsNodeStyleDataKey = (key) => { + // 用户自定义字段 + if (/^_/.test(key)) return false + // 不在节点非样式字段列表里,那么就是样式字段 + if (!nodeDataNoStylePropList.includes(key)) { + return true + } + return false } \ No newline at end of file diff --git a/web/src/pages/Doc/en/constructor/index.md b/web/src/pages/Doc/en/constructor/index.md index a82b6e66..1566600e 100644 --- a/web/src/pages/Doc/en/constructor/index.md +++ b/web/src/pages/Doc/en/constructor/index.md @@ -25,7 +25,7 @@ const mindMap = new MindMap({ | Field Name | Type | Default Value | Description | Required | | -------------------------------- | ------- | ---------------- | ------------------------------------------------------------ | -------- | | el | Element | | Container element, must be a DOM element | Yes | -| data | Object | {} | Mind map data, refer to: [exampleData.js](https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js) | | +| data | Object | {} | Mind map data, Please refer to the introduction of 【Data structure】 below | | | layout | String | logicalStructure | Layout type, options: logicalStructure (logical structure diagram), mindMap (mind map), catalogOrganization (catalog organization diagram), organizationStructure (organization structure diagram)、timeline(v0.5.4+, timeline)、timeline2(v0.5.4+, up down alternating timeline)、fishbone(v0.5.4+, fishbone diagram) | | | fishboneDeg(v0.5.4+) | Number | 45 | Set the diagonal angle of the fishbone structure diagram | | | theme | String | default | Theme, options: default, classic, minions, pinkGrape, mint, gold, vitalityOrange, greenLeaf, dark2, skyGreen, classic2, classic3, classic4(v0.2.0+), classicGreen, classicBlue, blueSky, brainImpairedPink, dark, earthYellow, freshGreen, freshRed, romanticPurple, simpleBlack(v0.5.4+), courseGreen(v0.5.4+), coffee(v0.5.4+), redSpirit(v0.5.4+), blackHumour(v0.5.4+), lateNightOffice(v0.5.4+), blackGold(v0.5.4+)、、avocado(v.5.10-fix.2+)、autumn(v.5.10-fix.2+)、orangeJuice(v.5.10-fix.2+) | | @@ -88,6 +88,47 @@ const mindMap = new MindMap({ | hoverRectPadding(v0.7.0+) | Number | 2 | The distance between the node mouse hover and the displayed rectangular border when activated and the node content | | | selectTextOnEnterEditText(v0.7.0+) | Boolean | true | Is the text selected by default when double-clicking a node to enter node text editing? By default, it will only be selected when creating a new node | | +### Data structure + +The basic data structure is as follows: + +```js +{ + data: { + text: '', // The text of the node can be rich text, which is in HTML format. In this case, richText should be set to true + richText: false, // Is the text of the node in rich text mode + expand: true, // Whether the node is expanded + uid: '',// The unique ID of the node, which may not be passed, will be generated internally + icon: [], // The format of the icon can be found in the "插入和扩展节点图标" section of the tutorial + image: '', // URL of the image + imageTitle: '', // The title of the image can be blank + imageSize: { // The size of the image + width: 100, // The width of the image, mandatory + height: 100, // The height of the image is mandatory + custom: false // If set to true, the display size of the image is not controlled by the theme, and is based on imageSize.width and imageSize.height + }, + hyperlink: '', // Hyperlink address + hyperlinkTitle: '', // Title of hyperlink + note: '', // Content of remarks + tag: [], // Tag list + generalization: {// The summary of the node, if there is no summary, the generalization can be set to null + text: ''// Summary Text + }, + associativeLineTargets: [''],// If there are associated lines, then it is the uid list of the target node + associativeLineText: '',// Association Line Text + // ...For other style fields, please refer to the topic + }, + children [// Child nodes, with consistent structure and root nodes + { + data: {}, + children: [] + } + ] +} +``` + +If you want to add custom fields, you can add them to the same level as 'data' and 'children'. If you want to add them to the 'data' object, please use the `_` Name your custom field at the beginning, and it will be used internally to determine whether it is a custom field. + ### Watermark config | Field Name | Type | Default Value | Description | diff --git a/web/src/pages/Doc/en/constructor/index.vue b/web/src/pages/Doc/en/constructor/index.vue index 0e7f439f..22890976 100644 --- a/web/src/pages/Doc/en/constructor/index.vue +++ b/web/src/pages/Doc/en/constructor/index.vue @@ -39,7 +39,7 @@ data Object {} -Mind map data, refer to: exampleData.js +Mind map data, Please refer to the introduction of 【Data structure】 below @@ -471,6 +471,42 @@ +

Data structure

+

The basic data structure is as follows:

+
{
+  data: {
+    text: '', // The text of the node can be rich text, which is in HTML format. In this case, richText should be set to true
+    richText: false, // Is the text of the node in rich text mode
+    expand: true, // Whether the node is expanded
+    uid: '',// The unique ID of the node, which may not be passed, will be generated internally
+    icon: [], // The format of the icon can be found in the "插入和扩展节点图标" section of the tutorial
+    image: '', // URL of the image
+    imageTitle: '', // The title of the image can be blank
+    imageSize: { // The size of the image
+      width: 100, // The width of the image, mandatory
+      height: 100, // The height of the image is mandatory
+      custom: false // If set to true, the display size of the image is not controlled by the theme, and is based on imageSize.width and imageSize.height
+    },
+    hyperlink: '', // Hyperlink address
+    hyperlinkTitle: '', // Title of hyperlink
+    note: '', // Content of remarks
+    tag: [], // Tag list
+    generalization: {// The summary of the node, if there is no summary, the generalization can be set to null
+      text: ''// Summary Text
+    },
+    associativeLineTargets: [''],// If there are associated lines, then it is the uid list of the target node
+    associativeLineText: '',// Association Line Text
+    // ...For other style fields, please refer to the topic
+  },
+  children [// Child nodes, with consistent structure and root nodes
+    {
+      data: {},
+      children: []
+    }
+  ]
+}
+
+

If you want to add custom fields, you can add them to the same level as 'data' and 'children'. If you want to add them to the 'data' object, please use the _ Name your custom field at the beginning, and it will be used internally to determine whether it is a custom field.

Watermark config

diff --git a/web/src/pages/Doc/zh/constructor/index.md b/web/src/pages/Doc/zh/constructor/index.md index 25bf7083..15e82745 100644 --- a/web/src/pages/Doc/zh/constructor/index.md +++ b/web/src/pages/Doc/zh/constructor/index.md @@ -25,7 +25,7 @@ const mindMap = new MindMap({ | 字段名称 | 类型 | 默认值 | 描述 | 是否必填 | | -------------------------------- | ------- | ---------------- | ------------------------------------------------------------ | -------- | | el | Element | | 容器元素,必须为DOM元素 | 是 | -| data | Object | {} | 思维导图数据,可参考:[exampleData.js](https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js) | | +| data | Object | {} | 思维导图数据,可参考下方【数据结构】介绍 | | | layout | String | logicalStructure | 布局类型,可选列表:logicalStructure(逻辑结构图)、mindMap(思维导图)、catalogOrganization(目录组织图)、organizationStructure(组织结构图)、timeline(v0.5.4+,时间轴)、timeline2(v0.5.4+,上下交替型时间轴)、fishbone(v0.5.4+,鱼骨图) | | | fishboneDeg(v0.5.4+) | Number | 45 | 设置鱼骨结构图的斜线角度 | | | theme | String | default | 主题,可选列表:default(默认)、classic(脑图经典)、minions(小黄人)、pinkGrape(粉红葡萄)、mint(薄荷)、gold(金色vip)、vitalityOrange(活力橙)、greenLeaf(绿叶)、dark2(暗色2)、skyGreen(天清绿)、classic2(脑图经典2)、classic3(脑图经典3)、classic4(脑图经典4,v0.2.0+)、classicGreen(经典绿)、classicBlue(经典蓝)、blueSky(天空蓝)、brainImpairedPink(脑残粉)、dark(暗色)、earthYellow(泥土黄)、freshGreen(清新绿)、freshRed(清新红)、romanticPurple(浪漫紫)、simpleBlack(v0.5.4+简约黑)、courseGreen(v0.5.4+课程绿)、coffee(v0.5.4+咖啡)、redSpirit(v0.5.4+红色精神)、blackHumour(v0.5.4+黑色幽默)、lateNightOffice(v0.5.4+深夜办公室)、blackGold(v0.5.4+黑金)、avocado(v.5.10-fix.2+牛油果)、autumn(v.5.10-fix.2+秋天)、orangeJuice(v.5.10-fix.2+橙汁) | | @@ -88,6 +88,47 @@ const mindMap = new MindMap({ | hoverRectPadding(v0.7.0+) | Number | 2 | 节点鼠标hover和激活时显示的矩形边框距节点内容的距离 | | | selectTextOnEnterEditText(v0.7.0+) | Boolean | true | 双击节点进入节点文本编辑时是否默认选中文本,默认只在创建新节点时会选中 | | +### 数据结构 + +基本的数据结构如下: + +```js +{ + data: { + text: '', // 节点的文本,可以是富文本,也就是html格式的,此时richText要设为true + richText: false, // 节点的文本是否是富文本模式 + expand: true, // 节点是否展开 + uid: '',// 节点唯一的id,可不传,内部会生成 + icon: [], // 图标,格式可参考教程里的【插入和扩展节点图标】章节 + image: '', // 图片的url + imageTitle: '', // 图片的标题,可为空 + imageSize: { // 图片的尺寸 + width: 100, // 图片的宽度,必传 + height: 100, // 图片的高度,必传 + custom: false // 如果设为true,图片的显示大小不受主题控制,以imageSize.width和imageSize.height为准 + }, + hyperlink: '', // 超链接地址 + hyperlinkTitle: '', // 超链接的标题 + note: '', // 备注的内容 + tag: [], // 标签列表 + generalization: {// 节点的概要,如果没有概要generalization设为null即可 + text: ''// 概要的文本 + }, + associativeLineTargets: [''],// 如果存在关联线,那么为目标节点的uid列表 + associativeLineText: '',// 关联线文本 + // ...其他样式字段,可以参考主题 + }, + children [// 子节点,结构和根节点一致 + { + data: {}, + children: [] + } + ] +} +``` + +如果你要添加自定义的字段,可以添加到`data`、`children`同级,如果你要添加到`data`对象里,那么请使用`_`开头来命名你的自定义字段,内部会通过这个来判断是否是自定义字段。 + ### 水印配置 | 字段名称 | 类型 | 默认值 | 描述 | diff --git a/web/src/pages/Doc/zh/constructor/index.vue b/web/src/pages/Doc/zh/constructor/index.vue index 6e34e391..d64c1c0f 100644 --- a/web/src/pages/Doc/zh/constructor/index.vue +++ b/web/src/pages/Doc/zh/constructor/index.vue @@ -39,7 +39,7 @@ - + @@ -471,6 +471,42 @@
data Object {}思维导图数据,可参考:exampleData.js思维导图数据,可参考下方【数据结构】介绍
+

数据结构

+

基本的数据结构如下:

+
{
+  data: {
+    text: '', // 节点的文本,可以是富文本,也就是html格式的,此时richText要设为true
+    richText: false, // 节点的文本是否是富文本模式
+    expand: true, // 节点是否展开
+    uid: '',// 节点唯一的id,可不传,内部会生成
+    icon: [], // 图标,格式可参考教程里的【插入和扩展节点图标】章节
+    image: '', // 图片的url
+    imageTitle: '', // 图片的标题,可为空
+    imageSize: { // 图片的尺寸
+      width: 100, // 图片的宽度,必传
+      height: 100, // 图片的高度,必传
+      custom: false // 如果设为true,图片的显示大小不受主题控制,以imageSize.width和imageSize.height为准
+    },
+    hyperlink: '', // 超链接地址
+    hyperlinkTitle: '', // 超链接的标题
+    note: '', // 备注的内容
+    tag: [], // 标签列表
+    generalization: {// 节点的概要,如果没有概要generalization设为null即可
+      text: ''// 概要的文本
+    },
+    associativeLineTargets: [''],// 如果存在关联线,那么为目标节点的uid列表
+    associativeLineText: '',// 关联线文本
+    // ...其他样式字段,可以参考主题
+  },
+  children [// 子节点,结构和根节点一致
+    {
+      data: {},
+      children: []
+    }
+  ]
+}
+
+

如果你要添加自定义的字段,可以添加到datachildren同级,如果你要添加到data对象里,那么请使用_开头来命名你的自定义字段,内部会通过这个来判断是否是自定义字段。

水印配置

From 58ca173234a0c4b9b098cf03d9f0ae9de3c44bcf Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 21:25:39 +0800 Subject: [PATCH 09/68] =?UTF-8?q?Fix:=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=BA=E6=A0=87=E9=A2=98=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E8=8A=82=E7=82=B9=E7=9A=84xmind=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=8A=A5=E9=94=99=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/parse/xmind.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/simple-mind-map/src/parse/xmind.js b/simple-mind-map/src/parse/xmind.js index cb8b72df..639c2d79 100644 --- a/simple-mind-map/src/parse/xmind.js +++ b/simple-mind-map/src/parse/xmind.js @@ -4,7 +4,8 @@ import { getTextFromHtml, imgToDataUrl, parseDataUrl, - getImageSize + getImageSize, + isUndef } from '../utils/index' // 解析.xmind文件 @@ -49,7 +50,7 @@ const transformXmind = async (content, files) => { let walk = async (node, newNode) => { newNode.data = { // 节点内容 - text: node.title + text: isUndef(node.title) ? '' : node.title } // 节点备注 if (node.notes) { @@ -146,9 +147,10 @@ const transformOldXmind = content => { let walk = (node, newNode) => { let nodeElements = node.elements let nodeTitle = getItemByName(nodeElements, 'title') + nodeTitle = nodeTitle && nodeTitle.elements && nodeTitle.elements[0].text newNode.data = { // 节点内容 - text: nodeTitle && nodeTitle.elements && nodeTitle.elements[0].text + text: isUndef(nodeTitle) ? '' : nodeTitle } try { // 节点备注 From fee38cbe8a86ab0e33e4b69d64ad16e0caf8a1c6 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 21:47:01 +0800 Subject: [PATCH 10/68] Doc: update --- web/src/pages/Doc/en/deploy/index.md | 4 ++-- web/src/pages/Doc/en/deploy/index.vue | 2 +- web/src/pages/Doc/zh/deploy/index.md | 2 ++ web/src/pages/Doc/zh/deploy/index.vue | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/web/src/pages/Doc/en/deploy/index.md b/web/src/pages/Doc/en/deploy/index.md index 7d331fdc..dbad2642 100644 --- a/web/src/pages/Doc/en/deploy/index.md +++ b/web/src/pages/Doc/en/deploy/index.md @@ -63,8 +63,6 @@ However, this requires backend support, as our application is a single page clie ## Docker -## Docker - > Thank you very much [水车](https://github.com/shuiche-it), This section is written by him, and the corresponding Docker package is also maintained by him. Install directly from Docker Hub: @@ -79,6 +77,8 @@ After the installation is completed, check the container's running status throug Open 127.0.0.1:8081 in the browser to use the Web mind map function. +[在群晖上以 Docker 方式安装](https://laosu.gq/2023/09/02/%E5%BC%BA%E5%A4%A7%E7%9A%84%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE%E5%BA%93SimpleMindMap/) + ## Docking with one's own storage services The application data is stored locally in the browser by default, and the local storage capacity of the browser is relatively small, so it is easy to trigger restrictions when inserting more images in the mind map. Therefore, a better choice is to dock with your own storage service, which usually has two ways: diff --git a/web/src/pages/Doc/en/deploy/index.vue b/web/src/pages/Doc/en/deploy/index.vue index 80ed0551..824c6537 100644 --- a/web/src/pages/Doc/en/deploy/index.vue +++ b/web/src/pages/Doc/en/deploy/index.vue @@ -39,7 +39,6 @@ npm link simple-mind-map

However, this requires backend support, as our application is a single page client application. If the backend is not properly configured, users will return 404 when accessing sub routes directly in the browser. Therefore, you need to add a candidate resource on the server that covers all situations: if the 'URL' cannot match any static resources, the same 'index. html' page should be returned.

Docker

-

Docker

Thank you very much 水车, This section is written by him, and the corresponding Docker package is also maintained by him.

@@ -49,6 +48,7 @@ npm link simple-mind-map

Mindmap has activated port 8080 as the web service entry point in the container. When running the container through Docker, it is necessary to specify a local mapping port. In the above case, we mapped the local port 8081 to the container port 8080.

After the installation is completed, check the container's running status through 'Docker PS'.

Open 127.0.0.1:8081 in the browser to use the Web mind map function.

+

在群晖上以 Docker 方式安装

Docking with one's own storage services

The application data is stored locally in the browser by default, and the local storage capacity of the browser is relatively small, so it is easy to trigger restrictions when inserting more images in the mind map. Therefore, a better choice is to dock with your own storage service, which usually has two ways:

The first

diff --git a/web/src/pages/Doc/zh/deploy/index.md b/web/src/pages/Doc/zh/deploy/index.md index f727705d..3d5a212a 100644 --- a/web/src/pages/Doc/zh/deploy/index.md +++ b/web/src/pages/Doc/zh/deploy/index.md @@ -77,6 +77,8 @@ mind-map在容器中启动了8080端口作为web服务入口,通过docker运 浏览器打开 127.0.0.1:8081 即可使用Web 思维导图功能。 +[在群晖上以 Docker 方式安装](https://laosu.gq/2023/09/02/%E5%BC%BA%E5%A4%A7%E7%9A%84%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE%E5%BA%93SimpleMindMap/) + ## 对接自己的存储服务 应用数据默认存储在浏览器本地,浏览器本地存储容量是比较小的,所以当在思维导图中插入更多图片后很容易触发限制,所以更好的选择是对接你自己的存储服务,这通常有两种方式: diff --git a/web/src/pages/Doc/zh/deploy/index.vue b/web/src/pages/Doc/zh/deploy/index.vue index 04ae656c..f163a7d6 100644 --- a/web/src/pages/Doc/zh/deploy/index.vue +++ b/web/src/pages/Doc/zh/deploy/index.vue @@ -48,6 +48,7 @@ npm link simple-mind-map

mind-map在容器中启动了8080端口作为web服务入口,通过docker运行容器时,需要指定本地映射端口,上面案例中,我们通过本地的8081端口映射到容器端口8080。

安装完成后,通过 docker ps 查看容器运行状态。

浏览器打开 127.0.0.1:8081 即可使用Web 思维导图功能。

+

在群晖上以 Docker 方式安装

对接自己的存储服务

应用数据默认存储在浏览器本地,浏览器本地存储容量是比较小的,所以当在思维导图中插入更多图片后很容易触发限制,所以更好的选择是对接你自己的存储服务,这通常有两种方式:

第一种

From e29e1c26e5e503dd7c222d5e240e7d3cfc73d80d Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 22:58:18 +0800 Subject: [PATCH 11/68] =?UTF-8?q?Fix:=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E7=9A=84xmind=E6=96=87=E4=BB=B6=E5=9C=A8=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=89=88xmind=E8=BD=AF=E4=BB=B6=E4=B8=8A=E6=89=93=E5=BC=80?= =?UTF-8?q?=E6=97=B6=E6=8F=90=E7=A4=BA=E5=B7=B2=E6=8D=9F=E5=9D=8F=E7=9A=84?= =?UTF-8?q?=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/parse/xmind.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/simple-mind-map/src/parse/xmind.js b/simple-mind-map/src/parse/xmind.js index 639c2d79..80729020 100644 --- a/simple-mind-map/src/parse/xmind.js +++ b/simple-mind-map/src/parse/xmind.js @@ -217,6 +217,7 @@ const transformToXmind = async (data, name) => { let waitLoadImageList = [] let walk = async (node, newNode, isRoot) => { let newData = { + id: node.data.uid, structureClass: 'org.xmind.ui.logic.right', title: getTextFromHtml(node.data.text), // 节点文本 children: { @@ -244,13 +245,13 @@ const transformToXmind = async (data, name) => { } // 图片 if (node.data.image) { + // 处理异步逻辑 + let resolve = null + let promise = new Promise(_resolve => { + resolve = _resolve + }) + waitLoadImageList.push(promise) try { - // 处理异步逻辑 - let resolve = null - let promise = new Promise(_resolve => { - resolve = _resolve - }) - waitLoadImageList.push(promise) let imgName = '' let imgData = node.data.image // 网络图片要先转换成data:url From a96c16aa45a63b16f54579b9e09ba46ca0a55b90 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 23:04:30 +0800 Subject: [PATCH 12/68] =?UTF-8?q?Fix:=E4=BF=AE=E5=A4=8D=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=B8=A6=E6=9C=89=E8=B4=B4=E7=BA=B8=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=BAxmind=E6=A0=BC=E5=BC=8F=E6=97=B6=E8=B4=B4=E7=BA=B8?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA=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/parse/xmind.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/simple-mind-map/src/parse/xmind.js b/simple-mind-map/src/parse/xmind.js index 80729020..1c5c48bd 100644 --- a/simple-mind-map/src/parse/xmind.js +++ b/simple-mind-map/src/parse/xmind.js @@ -254,11 +254,11 @@ const transformToXmind = async (data, name) => { try { let imgName = '' let imgData = node.data.image - // 网络图片要先转换成data:url - if (/^https?:\/\//.test(node.data.image)) { + // base64之外的其他图片要先转换成data:url + if (!/^data:/.test(node.data.image)) { imgData = await imgToDataUrl(node.data.image) } - // 从data:url中解析出图片类型和base64 + // 从data:url中解析出图片类型和ase64 let dataUrlRes = parseDataUrl(imgData) imgName = 'image_' + imageList.length + '.' + dataUrlRes.type imageList.push({ From af87f84ce8ef5a6146b5e6a1fb14716f9ae5f165 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 8 Sep 2023 23:18:07 +0800 Subject: [PATCH 13/68] Doc: update --- README.md | 4 ++++ web/src/assets/avatar/乙.jpg | Bin 0 -> 184427 bytes web/src/pages/Doc/catalogList.js | 2 +- web/src/pages/Doc/en/introduction/index.md | 4 ++++ web/src/pages/Doc/en/introduction/index.vue | 4 ++++ web/src/pages/Doc/routerList.js | 3 ++- web/src/pages/Doc/zh/help5/index.md | 5 +++++ web/src/pages/Doc/zh/help5/index.vue | 18 ++++++++++++++++++ web/src/pages/Doc/zh/introduction/index.md | 4 ++++ web/src/pages/Doc/zh/introduction/index.vue | 4 ++++ 10 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 web/src/assets/avatar/乙.jpg create mode 100644 web/src/pages/Doc/zh/help5/index.md create mode 100644 web/src/pages/Doc/zh/help5/index.vue diff --git a/README.md b/README.md index e1723c94..b37b324b 100644 --- a/README.md +++ b/README.md @@ -175,4 +175,8 @@ const mindMap = new MindMap({ 蜉蝣撼大叔 + + + +

\ No newline at end of file diff --git a/web/src/assets/avatar/乙.jpg b/web/src/assets/avatar/乙.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d68995ba994a9a166124bbbc6a32bb97be076fad GIT binary patch literal 184427 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 LT%Zf6c85M%fVCS7 literal 0 HcmV?d00001 diff --git a/web/src/pages/Doc/catalogList.js b/web/src/pages/Doc/catalogList.js index 00f3a2b0..5b8b58b5 100644 --- a/web/src/pages/Doc/catalogList.js +++ b/web/src/pages/Doc/catalogList.js @@ -39,7 +39,7 @@ let APIList = [ 'markdown', 'utils' ] -let helpList = new Array(4).fill(0).map((_, index) => { +let helpList = new Array(5).fill(0).map((_, index) => { return 'help' + (index + 1) }) diff --git a/web/src/pages/Doc/en/introduction/index.md b/web/src/pages/Doc/en/introduction/index.md index 862cf6db..3c77a827 100644 --- a/web/src/pages/Doc/en/introduction/index.md +++ b/web/src/pages/Doc/en/introduction/index.md @@ -196,4 +196,8 @@ Open source is not easy. If this project is helpful to you, you can invite the a

蜉蝣撼大叔

+
+ +

+
\ No newline at end of file diff --git a/web/src/pages/Doc/en/introduction/index.vue b/web/src/pages/Doc/en/introduction/index.vue index adc0c630..68f1edbd 100644 --- a/web/src/pages/Doc/en/introduction/index.vue +++ b/web/src/pages/Doc/en/introduction/index.vue @@ -155,6 +155,10 @@ full screen, support mini map

蜉蝣撼大叔

+
+ +

+
diff --git a/web/src/pages/Doc/routerList.js b/web/src/pages/Doc/routerList.js index f8615889..84f24488 100644 --- a/web/src/pages/Doc/routerList.js +++ b/web/src/pages/Doc/routerList.js @@ -59,7 +59,8 @@ export default [ { path: 'help1', title: '概要/关联线' }, { path: 'help2', title: '客户端' }, { path: 'help3', title: '打开预览在线文件' }, - { path: 'help4', title: '复制粘贴' } + { path: 'help4', title: '复制粘贴' }, + { path: 'help5', title: '导出' } ] }, { diff --git a/web/src/pages/Doc/zh/help5/index.md b/web/src/pages/Doc/zh/help5/index.md new file mode 100644 index 00000000..ee7d338e --- /dev/null +++ b/web/src/pages/Doc/zh/help5/index.md @@ -0,0 +1,5 @@ +# 导出 + +## 导出为xmind + +导出的xmind文件无法在xmind8及以下版本打开,请使用最新版xmind软件。 \ No newline at end of file diff --git a/web/src/pages/Doc/zh/help5/index.vue b/web/src/pages/Doc/zh/help5/index.vue new file mode 100644 index 00000000..adcec127 --- /dev/null +++ b/web/src/pages/Doc/zh/help5/index.vue @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/web/src/pages/Doc/zh/introduction/index.md b/web/src/pages/Doc/zh/introduction/index.md index 07f8d62b..ff42a8a9 100644 --- a/web/src/pages/Doc/zh/introduction/index.md +++ b/web/src/pages/Doc/zh/introduction/index.md @@ -189,4 +189,8 @@

蜉蝣撼大叔

+
+ +

+
\ No newline at end of file diff --git a/web/src/pages/Doc/zh/introduction/index.vue b/web/src/pages/Doc/zh/introduction/index.vue index 3e3a2043..40e0bc1e 100644 --- a/web/src/pages/Doc/zh/introduction/index.vue +++ b/web/src/pages/Doc/zh/introduction/index.vue @@ -149,6 +149,10 @@

蜉蝣撼大叔

+
+ +

+
From 0d5602b8323dc318d05c4d5675af2c12fc42d532 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Sat, 9 Sep 2023 11:35:13 +0800 Subject: [PATCH 14/68] =?UTF-8?q?Fix:=E4=B8=8D=E5=AE=8C=E7=BE=8E=E7=9A=84?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=80=BB=E8=BE=91=E7=BB=93=E6=9E=84=E5=9B=BE?= =?UTF-8?q?=E6=A6=82=E8=A6=81=E5=92=8C=E8=8A=82=E7=82=B9=E7=9A=84=E5=86=B2?= =?UTF-8?q?=E7=AA=81=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/layouts/LogicalStructure.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/simple-mind-map/src/layouts/LogicalStructure.js b/simple-mind-map/src/layouts/LogicalStructure.js index 01ac0325..d66955cd 100644 --- a/simple-mind-map/src/layouts/LogicalStructure.js +++ b/simple-mind-map/src/layouts/LogicalStructure.js @@ -56,6 +56,9 @@ class LogicalStructure extends Base { }, 0) + (len + 1) * this.getMarginY(layerIndex + 1) : 0 + // 如果存在概要,则和概要的高度取最大值 + let generalizationNodeHeight = cur._node.checkHasGeneralization() ? cur._node._generalizationNodeHeight + this.getMarginY(layerIndex + 1) : 0 + cur._node.childrenAreaHeight2 = Math.max(cur._node.childrenAreaHeight, generalizationNodeHeight) }, true, 0 @@ -99,9 +102,8 @@ class LogicalStructure extends Base { } // 判断子节点所占的高度之和是否大于该节点自身,大于则需要调整位置 let difference = - node.childrenAreaHeight - - this.getMarginY(layerIndex + 1) * 2 - - node.height + node.childrenAreaHeight2 - + this.getMarginY(layerIndex + 1) * 2 - node.height if (difference > 0) { this.updateBrothers(node, difference / 2) } From 4c9c34a0ea3ba3d5cd596774a3ad3dcfbc04a058 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Sat, 9 Sep 2023 14:43:02 +0800 Subject: [PATCH 15/68] =?UTF-8?q?Fix:=E4=B8=8D=E5=AE=8C=E7=BE=8E=E7=9A=84?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=80=9D=E7=BB=B4=E5=AF=BC=E5=9B=BE=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E6=A6=82=E8=A6=81=E5=92=8C=E8=8A=82=E7=82=B9=E7=9A=84?= =?UTF-8?q?=E5=86=B2=E7=AA=81=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/layouts/MindMap.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/simple-mind-map/src/layouts/MindMap.js b/simple-mind-map/src/layouts/MindMap.js index 6d9f7bf5..35af2c04 100644 --- a/simple-mind-map/src/layouts/MindMap.js +++ b/simple-mind-map/src/layouts/MindMap.js @@ -90,6 +90,11 @@ class MindMap extends Base { cur._node.rightChildrenAreaHeight = rightChildrenAreaHeight + (rightLen + 1) * this.getMarginY(layerIndex + 1) + + // 如果存在概要,则和概要的高度取最大值 + let generalizationNodeHeight = cur._node.checkHasGeneralization() ? cur._node._generalizationNodeHeight + this.getMarginY(layerIndex + 1) : 0 + cur._node.leftChildrenAreaHeight2 = Math.max(cur._node.leftChildrenAreaHeight, generalizationNodeHeight) + cur._node.rightChildrenAreaHeight2 = Math.max(cur._node.rightChildrenAreaHeight, generalizationNodeHeight) }, true, 0 @@ -139,8 +144,8 @@ class MindMap extends Base { } // 判断子节点所占的高度之和是否大于该节点自身,大于则需要调整位置 let base = this.getMarginY(layerIndex + 1) * 2 + node.height - let leftDifference = node.leftChildrenAreaHeight - base - let rightDifference = node.rightChildrenAreaHeight - base + let leftDifference = node.leftChildrenAreaHeight2 - base + let rightDifference = node.rightChildrenAreaHeight2 - base if (leftDifference > 0 || rightDifference > 0) { this.updateBrothers(node, leftDifference / 2, rightDifference / 2) } From fb41653d799389d6b01776f30350f28f76d3432a Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Sat, 9 Sep 2023 15:42:21 +0800 Subject: [PATCH 16/68] =?UTF-8?q?Fix:=E4=B8=8D=E5=AE=8C=E7=BE=8E=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=9B=AE=E5=BD=95=E7=BB=84=E7=BB=87=E5=9B=BE=E6=A6=82?= =?UTF-8?q?=E8=A6=81=E5=92=8C=E8=8A=82=E7=82=B9=E5=86=B2=E7=AA=81=E7=9A=84?= =?UTF-8?q?=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/layouts/Base.js | 8 ++++++-- simple-mind-map/src/layouts/CatalogOrganization.js | 8 ++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/simple-mind-map/src/layouts/Base.js b/simple-mind-map/src/layouts/Base.js index 92c4e0e4..6199059f 100644 --- a/simple-mind-map/src/layouts/Base.js +++ b/simple-mind-map/src/layouts/Base.js @@ -202,9 +202,13 @@ class Base { } // 递归计算节点的宽度 - getNodeAreaWidth(node) { + getNodeAreaWidth(node, withGeneralization = false) { let widthArr = [] + let totalGeneralizationNodeWidth = 0 let loop = (node, width) => { + if (withGeneralization && node.checkHasGeneralization()) { + totalGeneralizationNodeWidth += node._generalizationNodeWidth + } if (node.children.length) { width += node.width / 2 node.children.forEach(item => { @@ -216,7 +220,7 @@ class Base { } } loop(node, 0) - return Math.max(...widthArr) + return Math.max(...widthArr) + totalGeneralizationNodeWidth } // 二次贝塞尔曲线 diff --git a/simple-mind-map/src/layouts/CatalogOrganization.js b/simple-mind-map/src/layouts/CatalogOrganization.js index 3e780c0d..615c3dab 100644 --- a/simple-mind-map/src/layouts/CatalogOrganization.js +++ b/simple-mind-map/src/layouts/CatalogOrganization.js @@ -87,11 +87,11 @@ class CatalogOrganization extends Base { totalLeft += cur.width + marginX }) } else { - let totalTop = node.top + node.height + marginY + (this.getNodeActChildrenLength(node) > 0 ? node.expandBtnSize : 0) + let totalTop = node.top + this.getNodeHeightWithGeneralization(node) + marginY + (this.getNodeActChildrenLength(node) > 0 ? node.expandBtnSize : 0) node.children.forEach(cur => { cur.left = node.left + node.width * 0.5 cur.top = totalTop - totalTop += cur.height + marginY + (this.getNodeActChildrenLength(cur) > 0 ? cur.expandBtnSize : 0) + totalTop += this.getNodeHeightWithGeneralization(cur) + marginY + (this.getNodeActChildrenLength(cur) > 0 ? cur.expandBtnSize : 0) }) } } @@ -112,7 +112,7 @@ class CatalogOrganization extends Base { } // 调整left if (parent && parent.isRoot) { - let areaWidth = this.getNodeAreaWidth(node) + let areaWidth = this.getNodeAreaWidth(node, true) let difference = areaWidth - node.width if (difference > 0) { this.updateBrothersLeft(node, difference) @@ -124,7 +124,7 @@ class CatalogOrganization extends Base { let marginY = this.getMarginY(layerIndex + 1) let totalHeight = node.children.reduce((h, item) => { - return h + item.height + (this.getNodeActChildrenLength(item) > 0 ? item.expandBtnSize : 0) + return h + this.getNodeHeightWithGeneralization(item) + (this.getNodeActChildrenLength(item) > 0 ? item.expandBtnSize : 0) }, 0) + len * marginY this.updateBrothersTop(node, totalHeight) From 2590e21807f29962602ac1420dd5900070205f48 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Sun, 10 Sep 2023 09:05:13 +0800 Subject: [PATCH 17/68] =?UTF-8?q?Fix:=E4=B8=8D=E5=AE=8C=E7=BE=8E=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E7=BB=84=E7=BB=87=E7=BB=93=E6=9E=84=E5=9B=BE=E6=A6=82?= =?UTF-8?q?=E8=A6=81=E5=92=8C=E8=8A=82=E7=82=B9=E5=86=B2=E7=AA=81=E7=9A=84?= =?UTF-8?q?=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/layouts/OrganizationStructure.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/simple-mind-map/src/layouts/OrganizationStructure.js b/simple-mind-map/src/layouts/OrganizationStructure.js index 179ef4c2..c3b49092 100644 --- a/simple-mind-map/src/layouts/OrganizationStructure.js +++ b/simple-mind-map/src/layouts/OrganizationStructure.js @@ -57,6 +57,10 @@ class OrganizationStructure extends Base { }, 0) + (len + 1) * this.getMarginY(layerIndex + 1) : 0 + + // 如果存在概要,则和概要的高度取最大值 + let generalizationNodeWidth = cur._node.checkHasGeneralization() ? cur._node._generalizationNodeWidth + this.getMarginY(layerIndex + 1) : 0 + cur._node.childrenAreaWidth2 = Math.max(cur._node.childrenAreaWidth, generalizationNodeWidth) }, true, 0 @@ -100,7 +104,7 @@ class OrganizationStructure extends Base { } // 判断子节点所占的宽度之和是否大于该节点自身,大于则需要调整位置 let difference = - node.childrenAreaWidth - + node.childrenAreaWidth2 - this.getMarginY(layerIndex + 1) * 2 - node.width if (difference > 0) { From ea95ae2b5d457fb25f7f7eac9182be052d103e00 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 11 Sep 2023 19:57:20 +0800 Subject: [PATCH 18/68] =?UTF-8?q?Feat=EF=BC=9A=E9=87=8D=E6=9E=84=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E6=9D=A1=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/constants/constant.js | 4 + simple-mind-map/src/core/view/View.js | 2 - simple-mind-map/src/plugins/Scrollbar.js | 198 ++++++++++++++------ web/src/pages/Edit/components/Scrollbar.vue | 30 ++- 4 files changed, 165 insertions(+), 69 deletions(-) diff --git a/simple-mind-map/src/constants/constant.js b/simple-mind-map/src/constants/constant.js index cc316228..d37e6ade 100644 --- a/simple-mind-map/src/constants/constant.js +++ b/simple-mind-map/src/constants/constant.js @@ -249,6 +249,10 @@ export const CONSTANTS = { PASTE_TYPE: { CLIP_BOARD: 'clipBoard', CANVAS: 'canvas' + }, + SCROLL_BAR_DIR: { + VERTICAL: 'vertical', + HORIZONTAL: 'horizontal' } } diff --git a/simple-mind-map/src/core/view/View.js b/simple-mind-map/src/core/view/View.js index 78e8a549..5682f6ee 100644 --- a/simple-mind-map/src/core/view/View.js +++ b/simple-mind-map/src/core/view/View.js @@ -171,7 +171,6 @@ class View { // 平移x方式到 translateXTo(x) { - if (x === 0) return this.x = x this.transform() } @@ -185,7 +184,6 @@ class View { // 平移y方向到 translateYTo(y) { - if (y === 0) return this.y = y this.transform() } diff --git a/simple-mind-map/src/plugins/Scrollbar.js b/simple-mind-map/src/plugins/Scrollbar.js index c34b9b7a..ab906741 100644 --- a/simple-mind-map/src/plugins/Scrollbar.js +++ b/simple-mind-map/src/plugins/Scrollbar.js @@ -1,4 +1,5 @@ import { throttle } from '../utils/index' +import { CONSTANTS } from '../constants/constant' // 滚动条插件 class Scrollbar { @@ -9,45 +10,13 @@ class Scrollbar { width: 0, // 水平滚动条的容器宽度 height: 0 // 垂直滚动条的容器高度 } + // 思维导图实际高度 + this.chartHeight = 0 + this.chartWidth = 0 this.reset() this.bindEvent() } - // 绑定事件 - bindEvent() { - this.onMousemove = this.onMousemove.bind(this) - this.onMouseup = this.onMouseup.bind(this) - this.onNodeTreeRenderEnd = this.onNodeTreeRenderEnd.bind(this) - this.onViewDataChange = throttle(this.onViewDataChange, 16, this) // 加个节流 - this.mindMap.on('mousemove', this.onMousemove) - this.mindMap.on('mouseup', this.onMouseup) - this.mindMap.on('node_tree_render_end', this.onNodeTreeRenderEnd) - this.mindMap.on('view_data_change', this.onViewDataChange) - } - - // 解绑事件 - unBindEvent() { - this.mindMap.off('mousemove', this.onMousemove) - this.mindMap.off('mouseup', this.onMouseup) - this.mindMap.off('node_tree_render_end', this.onNodeTreeRenderEnd) - this.mindMap.off('view_data_change', this.onViewDataChange) - } - - // 每次渲染后需要更新滚动条 - onNodeTreeRenderEnd() { - this.emitEvent() - } - - // 思维导图视图数据改变需要更新滚动条 - onViewDataChange() { - this.emitEvent() - } - - // 发送滚动条改变事件 - emitEvent() { - this.mindMap.emit('scrollbar_change') - } - // 复位数据 reset() { // 当前拖拽的滚动条类型 @@ -57,13 +26,41 @@ class Scrollbar { x: 0, y: 0 } - this.startViewPos = { - x: 0, - y: 0 - } - // 思维导图实际高度 - this.chartHeight = 0 - this.chartWidth = 0 + // 鼠标按下时,滚动条位置 + this.mousedownScrollbarPos = 0 + } + + // 绑定事件 + bindEvent() { + this.onMousemove = this.onMousemove.bind(this) + this.onMouseup = this.onMouseup.bind(this) + this.updateScrollbar = this.updateScrollbar.bind(this) + this.updateScrollbar = throttle(this.updateScrollbar, 16, this) // 加个节流 + this.mindMap.on('mousemove', this.onMousemove) + this.mindMap.on('mouseup', this.onMouseup) + this.mindMap.on('node_tree_render_end', this.updateScrollbar) + this.mindMap.on('view_data_change', this.updateScrollbar) + } + + // 解绑事件 + unBindEvent() { + this.mindMap.off('mousemove', this.onMousemove) + this.mindMap.off('mouseup', this.onMouseup) + this.mindMap.off('node_tree_render_end', this.updateScrollbar) + this.mindMap.off('view_data_change', this.updateScrollbar) + } + + // 渲染后、数据改变需要更新滚动条 + updateScrollbar() { + // 当前正在拖拽滚动条时不需要更新 + if (this.isMousedown) return + const res = this.calculationScrollbar() + this.emitEvent(res) + } + + // 发送滚动条改变事件 + emitEvent(data) { + this.mindMap.emit('scrollbar_change', data) } // 设置滚动条容器的大小,指滚动条容器的大小,对于水平滚动条,即宽度,对于垂直滚动条,即高度 @@ -78,9 +75,7 @@ class Scrollbar { // 减去画布距离浏览器窗口左上角的距离 const elRect = this.mindMap.elRect rect.x -= elRect.left - rect.x2 -= elRect.left rect.y -= elRect.top - rect.y2 -= elRect.top // 垂直滚动条 const canvasHeight = this.mindMap.height // 画布高度 @@ -129,46 +124,129 @@ class Scrollbar { return res } + // 滚动条鼠标按下事件处理函数 onMousedown(e, type) { e.preventDefault() + e.stopPropagation() this.currentScrollType = type this.isMousedown = true this.mousedownPos = { x: e.clientX, y: e.clientY } - // 保存视图当前的偏移量 - let transformData = this.mindMap.view.getTransformData() - this.startViewPos = { - x: transformData.state.x, - y: transformData.state.y + // 保存滚动条当前的位置 + const styles = window.getComputedStyle(e.target) + if (type === CONSTANTS.SCROLL_BAR_DIR.VERTICAL) { + this.mousedownScrollbarPos = Number.parseFloat(styles.top) + } else { + this.mousedownScrollbarPos = Number.parseFloat(styles.left) } } + // 鼠标移动事件处理函数 onMousemove(e) { if (!this.isMousedown) { return } - if (this.currentScrollType === 'vertical') { - const oy = e.clientY - this.mousedownPos.y - const oyPercentage = -oy / this.scrollbarWrapSize.height - const oyPx = oyPercentage * this.chartHeight - // 在视图最初偏移量上累加更新量 - this.mindMap.view.translateYTo(oyPx + this.startViewPos.y) + e.preventDefault() + e.stopPropagation() + if (this.currentScrollType === CONSTANTS.SCROLL_BAR_DIR.VERTICAL) { + const oy = e.clientY - this.mousedownPos.y + this.mousedownScrollbarPos + this.updateMindMapView(CONSTANTS.SCROLL_BAR_DIR.VERTICAL, oy) } else { - const ox = e.clientX - this.mousedownPos.x - const oxPercentage = -ox / this.scrollbarWrapSize.width - const oxPx = oxPercentage * this.chartWidth - // 在视图最初偏移量上累加更新量 - this.mindMap.view.translateXTo(oxPx + this.startViewPos.x) + const ox = e.clientX - this.mousedownPos.x + this.mousedownScrollbarPos + this.updateMindMapView(CONSTANTS.SCROLL_BAR_DIR.HORIZONTAL, ox) } } + // 鼠标松开事件处理函数 onMouseup() { this.isMousedown = false this.reset() } + // 更新视图 + updateMindMapView(type, offset) { + const scrollbarData = this.calculationScrollbar() + const t = this.mindMap.draw.transform() + const drawRect = this.mindMap.draw.rbox() + const rootRect = this.mindMap.renderer.root.group.rbox() + if (type === CONSTANTS.SCROLL_BAR_DIR.VERTICAL) { + // 滚动条新位置 + let oy = offset + // 判断是否达到首尾 + if (oy <= 0) { + oy = 0 + } + let max = + ((100 - scrollbarData.vertical.height) / 100) * + this.scrollbarWrapSize.height + if (oy >= max) { + oy = max + } + // 转换成百分比 + const oyPercentage = (oy / this.scrollbarWrapSize.height) * 100 + // 转换成相对于图形高度的距离 + const oyPx = (-oyPercentage / 100) * this.chartHeight + // 节点中心点到图形最上方的距离 + const yOffset = rootRect.y - drawRect.y + // 内边距 + const paddingY = this.mindMap.height / 2 + // 图形新位置 + let chartTop = oyPx + yOffset - paddingY * t.scaleY + paddingY + this.mindMap.view.translateYTo(chartTop) + this.emitEvent({ + horizontal: scrollbarData.horizontal, + vertical: { + top: oyPercentage, + height: scrollbarData.vertical.height + } + }) + } else { + // 滚动条新位置 + let ox = offset + // 判断是否达到首尾 + if (ox <= 0) { + ox = 0 + } + let max = + ((100 - scrollbarData.horizontal.width) / 100) * + this.scrollbarWrapSize.width + if (ox >= max) { + ox = max + } + // 转换成百分比 + const oxPercentage = (ox / this.scrollbarWrapSize.width) * 100 + // 转换成相对于图形高度的距离 + const oxPx = (-oxPercentage / 100) * this.chartWidth + // 节点中心点到图形最左边的距离 + const xOffset = rootRect.x - drawRect.x + // 内边距 + const paddingX = this.mindMap.width / 2 + // 图形新位置 + let chartLeft = oxPx + xOffset - paddingX * t.scaleX + paddingX + this.mindMap.view.translateXTo(chartLeft) + this.emitEvent({ + vertical: scrollbarData.vertical, + horizontal: { + left: oxPercentage, + width: scrollbarData.horizontal.width + } + }) + } + } + + // 滚动条的点击事件 + onClick(e, type) { + let offset = 0 + if (type === CONSTANTS.SCROLL_BAR_DIR.VERTICAL) { + offset = e.clientY - e.currentTarget.getBoundingClientRect().top + } else { + offset = e.clientX - e.currentTarget.getBoundingClientRect().left + } + this.updateMindMapView(type, offset) + } + // 插件被卸载前做的事情 beforePluginDestroy() { this.unBindEvent() diff --git a/web/src/pages/Edit/components/Scrollbar.vue b/web/src/pages/Edit/components/Scrollbar.vue index 828ef680..14fe3c43 100644 --- a/web/src/pages/Edit/components/Scrollbar.vue +++ b/web/src/pages/Edit/components/Scrollbar.vue @@ -1,18 +1,28 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/web/src/pages/Doc/zh/constructor/index.vue b/web/src/pages/Doc/zh/constructor/index.vue index a9a4409d..2d0b916b 100644 --- a/web/src/pages/Doc/zh/constructor/index.vue +++ b/web/src/pages/Doc/zh/constructor/index.vue @@ -1,10 +1,10 @@ @@ -1153,6 +1204,4 @@ export default { } - \ No newline at end of file + \ No newline at end of file From e61749c1b3d14dfd02c92b0f99b6aa10b2075ec5 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 18 Sep 2023 09:13:24 +0800 Subject: [PATCH 33/68] =?UTF-8?q?Demo=EF=BC=9A=E6=9B=B4=E6=96=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=EF=BC=8C=E5=8E=BB=E9=99=A4=E9=BB=98=E8=AE=A4=E9=80=82?= =?UTF-8?q?=E5=BA=94=E7=94=BB=E5=B8=83=E5=A4=A7=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/pages/Doc/en/constructor/index.md | 1 + web/src/pages/Doc/en/constructor/index.vue | 2319 ++++++++++---------- web/src/pages/Doc/zh/constructor/index.md | 1 + web/src/pages/Doc/zh/constructor/index.vue | 2212 +++++++++---------- web/src/pages/Edit/components/Edit.vue | 2 +- 5 files changed, 2187 insertions(+), 2348 deletions(-) diff --git a/web/src/pages/Doc/en/constructor/index.md b/web/src/pages/Doc/en/constructor/index.md index 427d4182..a69ec926 100644 --- a/web/src/pages/Doc/en/constructor/index.md +++ b/web/src/pages/Doc/en/constructor/index.md @@ -89,6 +89,7 @@ const mindMap = new MindMap({ | selectTextOnEnterEditText(v0.7.0+) | Boolean | true | Is the text selected by default when double-clicking a node to enter node text editing? By default, it will only be selected when creating a new node | | | deleteNodeActive(v0.7.1+) | Boolean | true | Enable the function of automatically activating adjacent nodes or parent nodes after deleting nodes | | | autoMoveWhenMouseInEdgeOnDrag(v0.7.1+) | Boolean | true | Whether to enable automatic canvas movement when the mouse moves to the edge of the canvas while dragging nodes | | +| fit(v0.7.2+) | Boolean | false | Is the first rendering scaled to fit the canvas size | | ### Data structure diff --git a/web/src/pages/Doc/en/constructor/index.vue b/web/src/pages/Doc/en/constructor/index.vue index 6edf2ef0..01f8248c 100644 --- a/web/src/pages/Doc/en/constructor/index.vue +++ b/web/src/pages/Doc/en/constructor/index.vue @@ -1,10 +1,10 @@ + + - \ No newline at end of file + \ No newline at end of file diff --git a/web/src/pages/Doc/zh/constructor/index.md b/web/src/pages/Doc/zh/constructor/index.md index 70183b57..c5f71539 100644 --- a/web/src/pages/Doc/zh/constructor/index.md +++ b/web/src/pages/Doc/zh/constructor/index.md @@ -89,6 +89,7 @@ const mindMap = new MindMap({ | selectTextOnEnterEditText(v0.7.0+) | Boolean | true | 双击节点进入节点文本编辑时是否默认选中文本,默认只在创建新节点时会选中 | | | deleteNodeActive(v0.7.1+) | Boolean | true | 是否开启删除节点后自动激活节点相邻节点或父节点的功能 | | | autoMoveWhenMouseInEdgeOnDrag(v0.7.1+) | Boolean | true | 拖拽节点时鼠标移动到画布边缘是否开启画布自动移动 | | +| fit(v0.7.2+) | Boolean | false | 首次渲染时是否缩放至适应画布大小 | | ### 数据结构 diff --git a/web/src/pages/Doc/zh/constructor/index.vue b/web/src/pages/Doc/zh/constructor/index.vue index 2d0b916b..7bfc1c83 100644 --- a/web/src/pages/Doc/zh/constructor/index.vue +++ b/web/src/pages/Doc/zh/constructor/index.vue @@ -1,10 +1,10 @@ @@ -1204,4 +1160,6 @@ export default { } - \ No newline at end of file + \ No newline at end of file diff --git a/web/src/pages/Edit/components/Edit.vue b/web/src/pages/Edit/components/Edit.vue index 0693e068..d0044080 100644 --- a/web/src/pages/Edit/components/Edit.vue +++ b/web/src/pages/Edit/components/Edit.vue @@ -276,7 +276,7 @@ export default { this.mindMap = new MindMap({ el: this.$refs.mindMapContainer, data: root, - fit: true, + fit: false, layout: layout, theme: theme.template, themeConfig: theme.config, From b0044bb5faced2e3bdcdc8f34250a1c3aa8adb33 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 18 Sep 2023 09:16:21 +0800 Subject: [PATCH 34/68] update package.json --- simple-mind-map/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 188778a5..8e4dca92 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -24,7 +24,7 @@ "types": "npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly --outDir types --target es2017" }, "module": "index.js", - "__main": "./dist/simpleMindMap.umd.min.js", + "main": "./dist/simpleMindMap.umd.min.js", "dependencies": { "@svgdotjs/svg.js": "^3.0.16", "deepmerge": "^1.5.2", From c77c7403da3b69f9be68afd51b02cad59295985c Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 18 Sep 2023 09:20:03 +0800 Subject: [PATCH 35/68] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8Dlru?= =?UTF-8?q?=E7=B1=BB=E5=90=8D=E9=94=99=E8=AF=AF=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/utils/Lru.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simple-mind-map/src/utils/Lru.js b/simple-mind-map/src/utils/Lru.js index bb20162d..4edc0213 100644 --- a/simple-mind-map/src/utils/Lru.js +++ b/simple-mind-map/src/utils/Lru.js @@ -1,5 +1,5 @@ // LRU缓存类 -export default class CRU { +export default class Lru { constructor(max) { this.max = max || 1000 this.size = 0 From fefbcfbbee7eefc45565f4c28678f954038abeb9 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 18 Sep 2023 16:30:45 +0800 Subject: [PATCH 36/68] =?UTF-8?q?Feat=EF=BC=9A=E6=94=B9=E4=B8=BA=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E8=8A=82=E7=82=B9uid=E6=AF=94=E5=AF=B9=E8=8A=82?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/layouts/CatalogOrganization.js | 4 ++-- simple-mind-map/src/layouts/Fishbone.js | 2 +- simple-mind-map/src/layouts/FishboneBottom.js | 2 +- simple-mind-map/src/layouts/FishboneTop.js | 2 +- simple-mind-map/src/layouts/LogicalStructure.js | 4 ++-- simple-mind-map/src/layouts/MindMap.js | 2 +- simple-mind-map/src/layouts/OrganizationStructure.js | 2 +- simple-mind-map/src/layouts/Timeline.js | 2 +- simple-mind-map/src/layouts/VerticalTimeline.js | 6 +++--- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/simple-mind-map/src/layouts/CatalogOrganization.js b/simple-mind-map/src/layouts/CatalogOrganization.js index 1438c5e2..0162434c 100644 --- a/simple-mind-map/src/layouts/CatalogOrganization.js +++ b/simple-mind-map/src/layouts/CatalogOrganization.js @@ -160,7 +160,7 @@ class CatalogOrganization extends Base { if (node.parent) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition() || _index <= index) { @@ -183,7 +183,7 @@ class CatalogOrganization extends Base { if (node.parent && !node.parent.isRoot) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/Fishbone.js b/simple-mind-map/src/layouts/Fishbone.js index 481d918d..fff92a49 100644 --- a/simple-mind-map/src/layouts/Fishbone.js +++ b/simple-mind-map/src/layouts/Fishbone.js @@ -194,7 +194,7 @@ class Fishbone extends Base { if (node.parent && !node.parent.isRoot) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/FishboneBottom.js b/simple-mind-map/src/layouts/FishboneBottom.js index e0bca450..c267d62e 100644 --- a/simple-mind-map/src/layouts/FishboneBottom.js +++ b/simple-mind-map/src/layouts/FishboneBottom.js @@ -238,7 +238,7 @@ class Fishbone extends Base { if (node.parent && !node.parent.isRoot) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/FishboneTop.js b/simple-mind-map/src/layouts/FishboneTop.js index a27fcbde..fb31e5e6 100644 --- a/simple-mind-map/src/layouts/FishboneTop.js +++ b/simple-mind-map/src/layouts/FishboneTop.js @@ -207,7 +207,7 @@ class Fishbone extends Base { if (node.parent && !node.parent.isRoot) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/LogicalStructure.js b/simple-mind-map/src/layouts/LogicalStructure.js index 038ed5e3..88da77fe 100644 --- a/simple-mind-map/src/layouts/LogicalStructure.js +++ b/simple-mind-map/src/layouts/LogicalStructure.js @@ -125,10 +125,10 @@ class LogicalStructure extends Base { if (node.parent) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { - if (item === node || item.hasCustomPosition()) { + if (item.uid === node.uid || item.hasCustomPosition()) { // 适配自定义位置 return } diff --git a/simple-mind-map/src/layouts/MindMap.js b/simple-mind-map/src/layouts/MindMap.js index 4f9455c3..3e1b1fbd 100644 --- a/simple-mind-map/src/layouts/MindMap.js +++ b/simple-mind-map/src/layouts/MindMap.js @@ -172,7 +172,7 @@ class MindMap extends Base { return item.dir === node.dir }) let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/OrganizationStructure.js b/simple-mind-map/src/layouts/OrganizationStructure.js index 85daf271..ba41a454 100644 --- a/simple-mind-map/src/layouts/OrganizationStructure.js +++ b/simple-mind-map/src/layouts/OrganizationStructure.js @@ -126,7 +126,7 @@ class OrganizationStructure extends Base { if (node.parent) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/Timeline.js b/simple-mind-map/src/layouts/Timeline.js index a3f166fa..ee1c0f9b 100644 --- a/simple-mind-map/src/layouts/Timeline.js +++ b/simple-mind-map/src/layouts/Timeline.js @@ -209,7 +209,7 @@ class Timeline extends Base { if (node.parent && !node.parent.isRoot) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { diff --git a/simple-mind-map/src/layouts/VerticalTimeline.js b/simple-mind-map/src/layouts/VerticalTimeline.js index d7e24829..a8079944 100644 --- a/simple-mind-map/src/layouts/VerticalTimeline.js +++ b/simple-mind-map/src/layouts/VerticalTimeline.js @@ -156,13 +156,13 @@ class VerticalTimeline extends Base { if (node.parent) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { // 自定义节点位置 if (item.hasCustomPosition()) return // 三级或三级以下节点自身位置不需要动 - if (!node.parent.isRoot && item === node) return + if (!node.parent.isRoot && item.uid === node.uid) return let _offset = 0 // 二级节点上面的兄弟节点不需要移动,自身需要往下移动 if (node.parent.isRoot) { @@ -202,7 +202,7 @@ class VerticalTimeline extends Base { if (node.parent && !node.parent.isRoot) { let childrenList = node.parent.children let index = childrenList.findIndex(item => { - return item === node + return item.uid === node.uid }) childrenList.forEach((item, _index) => { if (item.hasCustomPosition()) { From 0ab495a16149fb5608160c720e4ce7511f9882b2 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 18 Sep 2023 16:52:40 +0800 Subject: [PATCH 37/68] =?UTF-8?q?Fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E6=B3=A8=E5=86=8C=E6=96=B9=E6=B3=95=E9=93=BE=E5=BC=8F?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=8A=A5=E9=94=99=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/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/simple-mind-map/index.js b/simple-mind-map/index.js index 7298c598..031571cc 100644 --- a/simple-mind-map/index.js +++ b/simple-mind-map/index.js @@ -453,7 +453,7 @@ class MindMap { // 插件列表 MindMap.pluginList = [] MindMap.usePlugin = (plugin, opt = {}) => { - if (MindMap.hasPlugin(plugin) !== -1) return + if (MindMap.hasPlugin(plugin) !== -1) return MindMap plugin.pluginOpt = opt MindMap.pluginList.push(plugin) return MindMap From 76ddecee50490d44680e56a4b16acfe40c5ed61f Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 18 Sep 2023 16:53:33 +0800 Subject: [PATCH 38/68] Doc: update --- simple-mind-map/package.json | 2 +- web/src/pages/Doc/en/changelog/index.md | 10 ++++++++++ web/src/pages/Doc/en/changelog/index.vue | 7 +++++++ web/src/pages/Doc/en/constructor/index.md | 2 +- web/src/pages/Doc/en/constructor/index.vue | 2 +- web/src/pages/Doc/zh/changelog/index.md | 10 ++++++++++ web/src/pages/Doc/zh/changelog/index.vue | 7 +++++++ web/src/pages/Doc/zh/constructor/index.md | 2 +- web/src/pages/Doc/zh/constructor/index.vue | 2 +- 9 files changed, 39 insertions(+), 5 deletions(-) diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 8e4dca92..898108ba 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -1,6 +1,6 @@ { "name": "simple-mind-map", - "version": "0.7.1-fix.1", + "version": "0.7.1-fix.2", "description": "一个简单的web在线思维导图", "authors": [ { diff --git a/web/src/pages/Doc/en/changelog/index.md b/web/src/pages/Doc/en/changelog/index.md index bcb55761..c03f4c40 100644 --- a/web/src/pages/Doc/en/changelog/index.md +++ b/web/src/pages/Doc/en/changelog/index.md @@ -1,5 +1,15 @@ # Changelog +## 0.7.1-fix.2 + +Fix: 1.Fix the issue of plugin registration method chain call reporting errors. + +New: + +> 1.Add a configuration option to adapt to the canvas size when the mind map is first loaded. +> +> 2.Add a command to automatically generate dts declaration files. + ## 0.7.1-fix.1 Fix: Fixed the issue of dragging nodes without excluding the child nodes of the dragged nodes. diff --git a/web/src/pages/Doc/en/changelog/index.vue b/web/src/pages/Doc/en/changelog/index.vue index fc125801..612d76df 100644 --- a/web/src/pages/Doc/en/changelog/index.vue +++ b/web/src/pages/Doc/en/changelog/index.vue @@ -1,6 +1,13 @@