From 7213348c1259e162d9d9a3c3ecdb2551fb2168b9 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: Wed, 20 Nov 2024 18:27:38 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E8=B0=83=E6=95=B4=E7=B2=98?= =?UTF-8?q?=E8=B4=B4=E9=80=BB=E8=BE=91=EF=BC=8C=E5=A6=82=E6=9E=9C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=93=8D=E4=BD=9C=E5=89=AA=E8=B4=B4=E6=9D=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E9=82=A3=E4=B9=88=E4=BB=A5=E5=89=AA=E8=B4=B4?= =?UTF-8?q?=E6=9D=BF=E6=95=B0=E6=8D=AE=E4=B8=BA=E5=87=86=EF=BC=8C=E5=90=A6?= =?UTF-8?q?=E5=88=99=E4=BB=A5=E7=94=BB=E5=B8=83=E5=86=85=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=BA=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 + simple-mind-map/src/core/render/Render.js | 247 ++++++++++------------ simple-mind-map/src/utils/index.js | 9 +- web/src/assets/avatar/4399行星元帅.jpg | Bin 0 -> 64502 bytes web/src/utils/index.js | 4 +- 5 files changed, 127 insertions(+), 137 deletions(-) create mode 100644 web/src/assets/avatar/4399行星元帅.jpg diff --git a/README.md b/README.md index ea12779e..cd3e2eda 100644 --- a/README.md +++ b/README.md @@ -519,4 +519,8 @@ const mindMap = new MindMap({ xbkkjbs0246658 + + + 4399行星元帅 +

diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 0d74e8ce..8ce4e807 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -33,7 +33,8 @@ import { removeRichTextStyes, formatGetNodeGeneralization, sortNodeList, - throttle + throttle, + checkClipboardReadEnable } from '../../utils' import { shapeList } from './node/Shape' import { lineStyleProps } from '../../theme/default' @@ -92,12 +93,7 @@ class Render { // 文本编辑框,需要再bindEvent之前实例化,否则单击事件只能触发隐藏文本编辑框,而无法保存文本修改 this.textEdit = new TextEdit(this) // 当前复制的数据 - this.lastBeingCopyData = null this.beingCopyData = null - this.beingPasteText = '' - this.beingPasteImgSize = 0 - this.currentBeingPasteType = '' - this.pasteData = { text: null, img: null } // 节点高亮框 this.highlightBoxNode = null this.highlightBoxNodeStyle = null @@ -195,7 +191,7 @@ class Render { }) // 处理非https下的复制黏贴问题 // 暂时不启用,因为给页面的其他输入框(比如节点文本编辑框)粘贴内容也会触发,冲突问题暂时没有想到好的解决方法,不可能要求所有输入框都阻止冒泡 - // if (!navigator.clipboard) { + // if (!checkClipboardReadEnable()) { // this.handlePaste = this.handlePaste.bind(this) // window.addEventListener('paste', this.handlePaste) // this.mindMap.on('beforeDestroy', () => { @@ -434,7 +430,7 @@ class Render { }) // 粘贴节点 this.mindMap.keyCommand.addShortcut('Control+v', () => { - if (navigator.clipboard) this.paste() + this.paste() }) // 根节点居中显示 this.mindMap.keyCommand.addShortcut('Control+Enter', () => { @@ -1154,8 +1150,6 @@ class Render { text = clipboardData.getData('text') } }) - this.pasteData.img = img - this.pasteData.text = text this.paste() } @@ -1168,134 +1162,121 @@ class Render { disabledClipboard, onlyPasteTextWhenHasImgAndText } = this.mindMap.opt - // 读取剪贴板的文字和图片 - let text = '' - let img = null - if (!disabledClipboard) { + // 如果支持剪贴板操作,那么以剪贴板数据为准 + if (!disabledClipboard && checkClipboardReadEnable()) { try { - const res = navigator.clipboard - ? await getDataFromClipboard() - : this.pasteData - text = res.text || '' - img = res.img || null + const res = await getDataFromClipboard() + let text = res.text || '' + let img = res.img || null + // 存在文本,则创建子节点 + if (text) { + // 判断粘贴的是否是simple-mind-map的数据 + let smmData = null + let useDefault = true + // 用户自定义处理 + if (this.mindMap.opt.customHandleClipboardText) { + try { + const res = await this.mindMap.opt.customHandleClipboardText(text) + if (!isUndef(res)) { + useDefault = false + const checkRes = checkSmmFormatData(res) + if (checkRes.isSmm) { + smmData = checkRes.data + } else { + text = checkRes.data + } + } + } catch (error) { + errorHandler( + ERROR_TYPES.CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR, + error + ) + } + } + // 默认处理 + if (useDefault) { + const checkRes = checkSmmFormatData(text) + if (checkRes.isSmm) { + smmData = checkRes.data + } else { + text = checkRes.data + } + } + if (smmData) { + this.mindMap.execCommand( + 'INSERT_MULTI_CHILD_NODE', + [], + Array.isArray(smmData) ? smmData : [smmData] + ) + } else { + text = htmlEscape(text) + const textArr = text + .split(new RegExp('\r?\n|(? { + return !!item + }) + // 判断是否需要根据换行自动分割节点 + if (textArr.length > 1 && handleIsSplitByWrapOnPasteCreateNewNode) { + handleIsSplitByWrapOnPasteCreateNewNode() + .then(() => { + this.mindMap.execCommand( + 'INSERT_MULTI_CHILD_NODE', + [], + textArr.map(item => { + return { + data: { + text: item + }, + children: [] + } + }) + ) + }) + .catch(() => { + this.mindMap.execCommand('INSERT_CHILD_NODE', false, [], { + text + }) + }) + } else { + this.mindMap.execCommand('INSERT_CHILD_NODE', false, [], { + text + }) + } + } + } + // 存在图片,则添加到当前激活节点 + if (img && (!text || !onlyPasteTextWhenHasImgAndText)) { + try { + let imgData = null + // 自定义图片处理函数 + if ( + handleNodePasteImg && + typeof handleNodePasteImg === 'function' + ) { + imgData = await handleNodePasteImg(img) + } else { + imgData = await loadImage(img) + } + if (this.activeNodeList.length > 0) { + this.activeNodeList.forEach(node => { + this.mindMap.execCommand('SET_NODE_IMAGE', node, { + url: imgData.url, + title: '', + width: imgData.size.width, + height: imgData.size.height + }) + }) + } + } catch (error) { + errorHandler(ERROR_TYPES.LOAD_CLIPBOARD_IMAGE_ERROR, error) + } + } } catch (error) { errorHandler(ERROR_TYPES.READ_CLIPBOARD_ERROR, error) } - } - // 检查剪切板数据是否有变化 - // 通过图片大小来判断图片是否发生变化,可能是不准确的,但是目前没有其他好方法 - const imgSize = img ? img.size : 0 - if (this.beingPasteText !== text || this.beingPasteImgSize !== imgSize) { - this.currentBeingPasteType = CONSTANTS.PASTE_TYPE.CLIP_BOARD - this.beingPasteText = text - this.beingPasteImgSize = imgSize - } - // 检查要粘贴的节点数据是否有变化,节点优先级高于剪切板 - if (this.lastBeingCopyData !== this.beingCopyData) { - this.lastBeingCopyData = this.beingCopyData - this.currentBeingPasteType = CONSTANTS.PASTE_TYPE.CANVAS - } - // 粘贴剪切板的数据 - if (this.currentBeingPasteType === CONSTANTS.PASTE_TYPE.CLIP_BOARD) { - // 存在文本,则创建子节点 - if (text) { - // 判断粘贴的是否是simple-mind-map的数据 - let smmData = null - let useDefault = true - // 用户自定义处理 - if (this.mindMap.opt.customHandleClipboardText) { - try { - const res = await this.mindMap.opt.customHandleClipboardText(text) - if (!isUndef(res)) { - useDefault = false - const checkRes = checkSmmFormatData(res) - if (checkRes.isSmm) { - smmData = checkRes.data - } else { - text = checkRes.data - } - } - } catch (error) { - errorHandler(ERROR_TYPES.CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR, error) - } - } - // 默认处理 - if (useDefault) { - const checkRes = checkSmmFormatData(text) - if (checkRes.isSmm) { - smmData = checkRes.data - } else { - text = checkRes.data - } - } - if (smmData) { - this.mindMap.execCommand( - 'INSERT_MULTI_CHILD_NODE', - [], - Array.isArray(smmData) ? smmData : [smmData] - ) - } else { - text = htmlEscape(text) - const textArr = text - .split(new RegExp('\r?\n|(? { - return !!item - }) - // 判断是否需要根据换行自动分割节点 - if (textArr.length > 1 && handleIsSplitByWrapOnPasteCreateNewNode) { - handleIsSplitByWrapOnPasteCreateNewNode() - .then(() => { - this.mindMap.execCommand( - 'INSERT_MULTI_CHILD_NODE', - [], - textArr.map(item => { - return { - data: { - text: item - }, - children: [] - } - }) - ) - }) - .catch(() => { - this.mindMap.execCommand('INSERT_CHILD_NODE', false, [], { - text - }) - }) - } else { - this.mindMap.execCommand('INSERT_CHILD_NODE', false, [], { - text - }) - } - } - } - // 存在图片,则添加到当前激活节点 - if (img && (!text || !onlyPasteTextWhenHasImgAndText)) { - try { - let imgData = null - // 自定义图片处理函数 - if (handleNodePasteImg && typeof handleNodePasteImg === 'function') { - imgData = await handleNodePasteImg(img) - } else { - imgData = await loadImage(img) - } - if (this.activeNodeList.length > 0) { - this.activeNodeList.forEach(node => { - this.mindMap.execCommand('SET_NODE_IMAGE', node, { - url: imgData.url, - title: '', - width: imgData.size.width, - height: imgData.size.height - }) - }) - } - } catch (error) { - errorHandler(ERROR_TYPES.LOAD_CLIPBOARD_IMAGE_ERROR, error) - } - } } else { - // 粘贴节点数据 + // 禁用剪贴板或不支持剪贴板时 + // 粘贴画布内的节点数据 if (this.beingCopyData) { this.mindMap.execCommand('PASTE_NODE', this.beingCopyData) } diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index df42fd23..9431e641 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -1069,9 +1069,14 @@ export const isSameObject = (a, b) => { } } +// 检查navigator.clipboard对象的读取是否可用 +export const checkClipboardReadEnable = () => { + return navigator.clipboard && typeof navigator.clipboard.read === 'function' +} + // 将数据设置到用户剪切板中 export const setDataToClipboard = data => { - if (navigator.clipboard) { + if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(JSON.stringify(data)) } } @@ -1080,7 +1085,7 @@ export const setDataToClipboard = data => { export const getDataFromClipboard = async () => { let text = null let img = null - if (navigator.clipboard) { + if (checkClipboardReadEnable()) { const items = await navigator.clipboard.read() if (items && items.length > 0) { for (const clipboardItem of items) { diff --git a/web/src/assets/avatar/4399行星元帅.jpg b/web/src/assets/avatar/4399行星元帅.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc43e451ebb1fa6b41bfbbce500810aa1bbb8c1c GIT binary patch literal 64502 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 { // 复制文本到剪贴板 export const setDataToClipboard = data => { - if (navigator.clipboard) { + if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(data) } } // 复制图片到剪贴板 export const setImgToClipboard = img => { - if (navigator.clipboard) { + if (navigator.clipboard && navigator.clipboard.write) { const data = [new ClipboardItem({ ['image/png']: img })] navigator.clipboard.write(data) }