From b7722987b1749be5c2967e0ab4c6051bd67030ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E8=A7=92=E5=B0=8F=E6=9E=97?= <1013335014@qq.com> Date: Tue, 2 Jul 2024 10:30:54 +0800 Subject: [PATCH] =?UTF-8?q?Demo=EF=BC=9A=E5=8F=B3=E9=94=AE=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=96=B0=E5=A2=9E=E5=A4=8D=E5=88=B6=E5=88=B0=E5=89=AA?= =?UTF-8?q?=E8=B4=B4=E6=9D=BF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/utils/index.js | 10 +- web/src/lang/en_us.js | 10 +- web/src/lang/zh_cn.js | 10 +- web/src/pages/Edit/components/Contextmenu.vue | 95 ++++++++++++++++++- web/src/utils/index.js | 23 ++++- 5 files changed, 138 insertions(+), 10 deletions(-) diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index c952b8e5..a4b275fd 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -207,7 +207,7 @@ export const copyNodeTree = ( } // 图片转成dataURL -export const imgToDataUrl = src => { +export const imgToDataUrl = (src, returnBlob = false) => { return new Promise((resolve, reject) => { const img = new Image() // 跨域图片需要添加这个属性,否则画布被污染了无法导出图片 @@ -220,7 +220,13 @@ export const imgToDataUrl = src => { let ctx = canvas.getContext('2d') // 图片绘制到canvas里 ctx.drawImage(img, 0, 0, img.width, img.height) - resolve(canvas.toDataURL()) + if (returnBlob) { + canvas.toBlob(blob => { + resolve(blob) + }) + } else { + resolve(canvas.toDataURL()) + } } catch (e) { reject(e) } diff --git a/web/src/lang/en_us.js b/web/src/lang/en_us.js index 3453d60b..6451a898 100644 --- a/web/src/lang/en_us.js +++ b/web/src/lang/en_us.js @@ -100,7 +100,15 @@ export default { removeNote: 'Remove note', removeCustomStyles: 'Remove custom styles', removeAllNodeCustomStyles: 'Remove all node custom styles', - exportNodeToPng: 'Export node to png' + exportNodeToPng: 'Export node to png', + copyToClipboard: 'Copy to clipboard', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: 'Png', + copySuccess: 'Copy success', + copyFail: 'Copy fail' }, count: { words: 'Words', diff --git a/web/src/lang/zh_cn.js b/web/src/lang/zh_cn.js index 81a91ff5..91165c2e 100644 --- a/web/src/lang/zh_cn.js +++ b/web/src/lang/zh_cn.js @@ -100,7 +100,15 @@ export default { removeNote: '移除备注', removeCustomStyles: '一键去除自定义样式', removeAllNodeCustomStyles: '一键去除所有节点自定义样式', - exportNodeToPng: '导出该节点为图片' + exportNodeToPng: '导出该节点为图片', + copyToClipboard: '复制到剪贴板', + copyToSmm: 'SMM', + copyToJson: 'JSON', + copyToMarkdown: 'Markdown', + copyToTxt: 'Txt', + copyToPng: '图片', + copySuccess: '复制成功', + copyFail: '复制失败' }, count: { words: '字数', diff --git a/web/src/pages/Edit/components/Contextmenu.vue b/web/src/pages/Edit/components/Contextmenu.vue index c0643792..8f6ed78c 100644 --- a/web/src/pages/Edit/components/Contextmenu.vue +++ b/web/src/pages/Edit/components/Contextmenu.vue @@ -109,6 +109,7 @@