From d3e1389f100dfaaf0f9724b90d0369f4c1e9a02e Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 21 Aug 2023 09:14:19 +0800 Subject: [PATCH 1/7] =?UTF-8?q?Fix=EF=BC=9A=E9=99=8D=E7=BA=A7dom-to-image-?= =?UTF-8?q?more=E5=BA=93=E7=89=88=E6=9C=AC=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E5=9C=A8firefox=E6=B5=8F=E8=A7=88=E5=99=A8=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=BA=E7=A9=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/package-lock.json | 19 ++++++++++--------- simple-mind-map/package.json | 2 +- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/simple-mind-map/package-lock.json b/simple-mind-map/package-lock.json index a3858abc..44058036 100644 --- a/simple-mind-map/package-lock.json +++ b/simple-mind-map/package-lock.json @@ -1,16 +1,16 @@ { "name": "simple-mind-map", - "version": "0.6.13", + "version": "0.6.15-fix.2", "lockfileVersion": 2, "requires": true, "packages": { "": { - "version": "0.6.13", + "version": "0.6.15-fix.2", "license": "MIT", "dependencies": { "@svgdotjs/svg.js": "^3.0.16", "deepmerge": "^1.5.2", - "dom-to-image-more": "^3.1.6", + "dom-to-image-more": "^2.16.0", "eventemitter3": "^4.0.7", "jspdf": "^2.5.1", "jszip": "^3.10.1", @@ -519,9 +519,10 @@ } }, "node_modules/dom-to-image-more": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-3.1.6.tgz", - "integrity": "sha512-VMO0jNme32T06mWtkOC9QXfj+1npoJxkaTFW0DCwBLguwBKMjqwndiDANxDnbZ0kvNEecwxkv0Zmgdr96cGtAA==" + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.16.0.tgz", + "integrity": "sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==", + "license": "MIT" }, "node_modules/dompurify": { "version": "2.4.1", @@ -2661,9 +2662,9 @@ } }, "dom-to-image-more": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-3.1.6.tgz", - "integrity": "sha512-VMO0jNme32T06mWtkOC9QXfj+1npoJxkaTFW0DCwBLguwBKMjqwndiDANxDnbZ0kvNEecwxkv0Zmgdr96cGtAA==" + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.16.0.tgz", + "integrity": "sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==" }, "dompurify": { "version": "2.4.1", diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 31728787..96e607ee 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -26,7 +26,7 @@ "dependencies": { "@svgdotjs/svg.js": "^3.0.16", "deepmerge": "^1.5.2", - "dom-to-image-more": "^3.1.6", + "dom-to-image-more": "^2.16.0", "eventemitter3": "^4.0.7", "jspdf": "^2.5.1", "jszip": "^3.10.1", From beb2b550f0eb87c679ec5a9ed1c6e402d1b20389 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 21 Aug 2023 09:58:33 +0800 Subject: [PATCH 2/7] =?UTF-8?q?Fix=EF=BC=9A=E4=BC=98=E5=8C=96=E5=AF=8C?= =?UTF-8?q?=E6=96=87=E6=9C=AC=E6=B5=8B=E9=87=8F=E5=85=83=E7=B4=A0=E7=9A=84?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=88=A0=E9=99=A4=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E5=A4=8D=E8=AE=BE=E7=BD=AE=E5=92=8C=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/core/render/node/nodeCreateContents.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/simple-mind-map/src/core/render/node/nodeCreateContents.js b/simple-mind-map/src/core/render/node/nodeCreateContents.js index c6829df3..d18d8ee0 100644 --- a/simple-mind-map/src/core/render/node/nodeCreateContents.js +++ b/simple-mind-map/src/core/render/node/nodeCreateContents.js @@ -86,6 +86,7 @@ function createIconNode() { // 创建富文本节点 function createRichTextNode() { + const { textAutoWrapWidth } = this.mindMap.opt let g = new G() // 重新设置富文本节点内容 let recoverText = false @@ -119,15 +120,16 @@ function createRichTextNode() { let html = `
${this.nodeData.data.text}
` if (!commonCaches.measureRichtextNodeTextSizeEl) { commonCaches.measureRichtextNodeTextSizeEl = document.createElement('div') + commonCaches.measureRichtextNodeTextSizeEl.style.position = 'fixed' + commonCaches.measureRichtextNodeTextSizeEl.style.left = '-999999px' + this.mindMap.el.appendChild(commonCaches.measureRichtextNodeTextSizeEl) } let div = commonCaches.measureRichtextNodeTextSizeEl div.innerHTML = html - div.style.cssText = `position: fixed; left: -999999px;` let el = div.children[0] el.classList.add('smm-richtext-node-wrap') el.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml') - el.style.maxWidth = this.mindMap.opt.textAutoWrapWidth + 'px' - this.mindMap.el.appendChild(div) + el.style.maxWidth = textAutoWrapWidth + 'px' let { width, height } = el.getBoundingClientRect() // 如果文本为空,那么需要计算一个默认高度 if (height <= 0) { From c718cbc030e6e1c19bb95e5cf39391bdc36df458 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 21 Aug 2023 13:48:45 +0800 Subject: [PATCH 3/7] =?UTF-8?q?Fix=EF=BC=9A=E4=BC=98=E5=8C=96=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=9B=BE=E7=89=87=E9=80=BB=E8=BE=91=EF=BC=8C=E9=81=8D?= =?UTF-8?q?=E5=8E=86=E8=8A=82=E7=82=B9=E8=BD=AC=E6=8D=A2=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=9A=84url=E6=97=B6=EF=BC=8C=E5=A6=82=E6=9E=9C=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E6=98=AFdata:URL=E5=BD=A2=E5=BC=8F=E4=B8=8D=E7=94=A8?= =?UTF-8?q?=E5=86=8D=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/plugins/Export.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/simple-mind-map/src/plugins/Export.js b/simple-mind-map/src/plugins/Export.js index 779a5829..9b616f56 100644 --- a/simple-mind-map/src/plugins/Export.js +++ b/simple-mind-map/src/plugins/Export.js @@ -39,6 +39,10 @@ class Export { let imageList = svg.find('image') let task = imageList.map(async item => { let imgUlr = item.attr('href') || item.attr('xlink:href') + // 已经是data:URL形式不用转换 + if (/^data:/.test(imgUlr)) { + return + } let imgData = await imgToDataUrl(imgUlr) item.attr('href', imgData) }) From 60e503ab1fd884bf39ab9a2b3289fca5deb60b3c Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 21 Aug 2023 15:10:03 +0800 Subject: [PATCH 4/7] =?UTF-8?q?Feat=EF=BC=9A1.=E5=8E=BB=E9=99=A4=E5=AF=BC?= =?UTF-8?q?=E5=87=BAsvg=E6=96=B9=E6=B3=95=E7=9A=84=E7=AC=AC=E4=BA=8C?= =?UTF-8?q?=E4=B8=AA=E5=8F=82=E6=95=B0=EF=BC=8C=E6=94=B9=E4=B8=BA=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E5=AE=9E=E4=BE=8B=E5=8C=96=E9=85=8D=E7=BD=AE=EF=BC=9B?= =?UTF-8?q?2.=E5=AF=BC=E5=87=BA=E5=9B=BE=E7=89=87=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=A4=96=E9=83=A8=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/constants/defaultOptions.js | 11 ++++++- simple-mind-map/src/plugins/Export.js | 31 +++++++++++-------- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/simple-mind-map/src/constants/defaultOptions.js b/simple-mind-map/src/constants/defaultOptions.js index 693a67ef..7b919f96 100644 --- a/simple-mind-map/src/constants/defaultOptions.js +++ b/simple-mind-map/src/constants/defaultOptions.js @@ -155,5 +155,14 @@ export const defaultOpt = { // 错误处理函数 errorHandler: (code, error) => { console.error(code, error) - } + }, + // 设置导出图片和svg时,针对富文本节点内容,也就是嵌入到svg中的html节点的默认样式覆盖 + // 如果不覆盖,会发生偏移问题 + resetCss: ` + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + ` } diff --git a/simple-mind-map/src/plugins/Export.js b/simple-mind-map/src/plugins/Export.js index 9b616f56..08c8ec3c 100644 --- a/simple-mind-map/src/plugins/Export.js +++ b/simple-mind-map/src/plugins/Export.js @@ -184,13 +184,20 @@ class Export { str = removeHTMLEntities(str) // 如果开启了富文本,则使用htmltocanvas转换为图片 if (this.mindMap.richText) { - let res = await this.mindMap.richText.handleExportPng(node.node) - let imgDataUrl = await this.svgToPng( - res, - transparent, - rotateWhenWidthLongerThenHeight - ) - return imgDataUrl + // 覆盖html默认的样式 + let foreignObjectList = node.find('foreignObject') + if (foreignObjectList.length > 0) { + foreignObjectList[0].add(SVG(``)) + } + str = node.svg() + // 使用其他库(html2canvas、dom-to-image-more等)来完成导出 + // let res = await this.mindMap.richText.handleExportPng(node.node) + // let imgDataUrl = await this.svgToPng( + // res, + // transparent, + // rotateWhenWidthLongerThenHeight + // ) + // return imgDataUrl } // 转换成blob数据 let blob = new Blob([str], { @@ -229,15 +236,13 @@ class Export { // 导出为svg // plusCssText:附加的css样式,如果svg中存在dom节点,想要设置一些针对节点的样式可以通过这个参数传入 - async svg(name, plusCssText) { + async svg(name) { let { node } = await this.getSvgData() // 开启了节点富文本编辑 if (this.mindMap.richText) { - if (plusCssText) { - let foreignObjectList = node.find('foreignObject') - if (foreignObjectList.length > 0) { - foreignObjectList[0].add(SVG(``)) - } + let foreignObjectList = node.find('foreignObject') + if (foreignObjectList.length > 0) { + foreignObjectList[0].add(SVG(``)) } } node.first().before(SVG(`${name}`)) From 2548ac4eb49b468e1316c9cfafcea36bb33582e0 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Mon, 21 Aug 2023 15:12:40 +0800 Subject: [PATCH 5/7] =?UTF-8?q?Feat=EF=BC=9A=E5=8E=BB=E9=99=A4dom-to-image?= =?UTF-8?q?-more=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/package-lock.json | 12 ------------ simple-mind-map/package.json | 1 - simple-mind-map/src/plugins/RichText.js | 2 +- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/simple-mind-map/package-lock.json b/simple-mind-map/package-lock.json index 44058036..d05ccda1 100644 --- a/simple-mind-map/package-lock.json +++ b/simple-mind-map/package-lock.json @@ -10,7 +10,6 @@ "dependencies": { "@svgdotjs/svg.js": "^3.0.16", "deepmerge": "^1.5.2", - "dom-to-image-more": "^2.16.0", "eventemitter3": "^4.0.7", "jspdf": "^2.5.1", "jszip": "^3.10.1", @@ -518,12 +517,6 @@ "node": ">=6.0.0" } }, - "node_modules/dom-to-image-more": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.16.0.tgz", - "integrity": "sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==", - "license": "MIT" - }, "node_modules/dompurify": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz", @@ -2661,11 +2654,6 @@ "esutils": "^2.0.2" } }, - "dom-to-image-more": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.16.0.tgz", - "integrity": "sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==" - }, "dompurify": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.1.tgz", diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 96e607ee..8459e64e 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -26,7 +26,6 @@ "dependencies": { "@svgdotjs/svg.js": "^3.0.16", "deepmerge": "^1.5.2", - "dom-to-image-more": "^2.16.0", "eventemitter3": "^4.0.7", "jspdf": "^2.5.1", "jszip": "^3.10.1", diff --git a/simple-mind-map/src/plugins/RichText.js b/simple-mind-map/src/plugins/RichText.js index c5830b44..1666387e 100644 --- a/simple-mind-map/src/plugins/RichText.js +++ b/simple-mind-map/src/plugins/RichText.js @@ -1,6 +1,6 @@ import Quill from 'quill' import 'quill/dist/quill.snow.css' -import domtoimage from 'dom-to-image-more' +// import domtoimage from 'dom-to-image-more' import { walk, getTextFromHtml, From 7f199e6c2f3bb408151025885014d47736478fd2 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Tue, 22 Aug 2023 09:54:41 +0800 Subject: [PATCH 6/7] Doc: update --- README.md | 4 ++++ simple-mind-map/package.json | 2 +- web/src/assets/avatar/小米.jpg | Bin 0 -> 42236 bytes web/src/pages/Doc/en/changelog/index.md | 18 ++++++++++++++++++ web/src/pages/Doc/en/changelog/index.vue | 15 +++++++++++++++ web/src/pages/Doc/en/constructor/index.md | 1 + web/src/pages/Doc/en/constructor/index.vue | 7 +++++++ web/src/pages/Doc/en/doExport/index.md | 2 +- web/src/pages/Doc/en/doExport/index.vue | 2 +- web/src/pages/Doc/en/introduction/index.md | 4 ++++ web/src/pages/Doc/en/introduction/index.vue | 4 ++++ web/src/pages/Doc/zh/changelog/index.md | 18 ++++++++++++++++++ web/src/pages/Doc/zh/changelog/index.vue | 15 +++++++++++++++ web/src/pages/Doc/zh/constructor/index.md | 1 + web/src/pages/Doc/zh/constructor/index.vue | 7 +++++++ web/src/pages/Doc/zh/course17/index.md | 2 ++ web/src/pages/Doc/zh/course17/index.vue | 3 +++ web/src/pages/Doc/zh/doExport/index.md | 2 +- web/src/pages/Doc/zh/doExport/index.vue | 2 +- web/src/pages/Doc/zh/introduction/index.md | 4 ++++ web/src/pages/Doc/zh/introduction/index.vue | 4 ++++ 21 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 web/src/assets/avatar/小米.jpg diff --git a/README.md b/README.md index 0e52b3a1..f2a9e985 100644 --- a/README.md +++ b/README.md @@ -153,4 +153,8 @@ const mindMap = new MindMap({ 才镇 + + + 小米bbᯤ²ᴳ +

\ No newline at end of file diff --git a/simple-mind-map/package.json b/simple-mind-map/package.json index 8459e64e..0956a766 100644 --- a/simple-mind-map/package.json +++ b/simple-mind-map/package.json @@ -1,6 +1,6 @@ { "name": "simple-mind-map", - "version": "0.6.15-fix.2", + "version": "0.6.16", "description": "一个简单的web在线思维导图", "authors": [ { diff --git a/web/src/assets/avatar/小米.jpg b/web/src/assets/avatar/小米.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb4ec40300c3fef59d080db89c8a76d11d5b3675 GIT binary patch literal 42236 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 1.Optimize the logic of rich text measurement elements, remove duplicate settings for styles, and add duplicate nodes +> +> 2.Optimize the export image logic, and when traversing the node to convert the URL of the image, if it is already in the form of data: URL, do not handle it repeatedly. + +New: + +> 1.Remove the second parameter of the exported SVG method and configure it through instantiation instead. +> +> 2.Export images without using external libraries. + +Demo: + +> 1.Fixed a bug where siblings can be added to the root node when editing the outline separately. + ## 0.6.15-fix.2 Fix: Fixed an issue where rich text nodes cannot be displayed in Firefox browser. diff --git a/web/src/pages/Doc/en/changelog/index.vue b/web/src/pages/Doc/en/changelog/index.vue index 3b3c0d6c..32c1ae75 100644 --- a/web/src/pages/Doc/en/changelog/index.vue +++ b/web/src/pages/Doc/en/changelog/index.vue @@ -1,6 +1,21 @@ diff --git a/web/src/pages/Doc/zh/changelog/index.md b/web/src/pages/Doc/zh/changelog/index.md index 1adeb5db..784506cc 100644 --- a/web/src/pages/Doc/zh/changelog/index.md +++ b/web/src/pages/Doc/zh/changelog/index.md @@ -1,5 +1,23 @@ # Changelog +## 0.6.16 + +修复: + +> 1.优化富文本测量元素的逻辑,删除样式的重复设置和节点的重复添加。 +> +> 2.优化导出图片逻辑,遍历节点转换图片的url时,如果已经是data:URL形式不重复处理。 + +新增: + +> 1.去除导出svg方法的第二个参数,改为通过实例化配置。 +> +> 2.导出图片不再使用外部库。 + +Demo: + +> 1.修复单独编辑大纲时能给根节点添加兄弟节点的bug。 + ## 0.6.15-fix.2 修复:修复在Firefox浏览器中富文本节点无法显示的问题。 diff --git a/web/src/pages/Doc/zh/changelog/index.vue b/web/src/pages/Doc/zh/changelog/index.vue index 8248fe74..a53a7bba 100644 --- a/web/src/pages/Doc/zh/changelog/index.vue +++ b/web/src/pages/Doc/zh/changelog/index.vue @@ -1,6 +1,21 @@ From 4dc5754f1dd87b6d9b1ba7d3312bb542fe5bcaae Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Tue, 22 Aug 2023 09:57:47 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=89=93=E5=8C=850.6.16?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 96a77aa9..245c7b68 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ 思绪思维导图
\ No newline at end of file + } \ No newline at end of file