From ca9e47183d71abdce32951a58cdf7b999b7a7fb5 Mon Sep 17 00:00:00 2001 From: wanglin2 <1013335014@qq.com> Date: Fri, 13 Oct 2023 16:25:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=9A?= =?UTF-8?q?=E5=B0=86render=E7=B1=BB=E7=9A=84onPaste=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E8=AF=BB=E5=8F=96=E5=89=AA=E8=B4=B4=E6=9D=BF?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9A=84=E9=80=BB=E8=BE=91=E6=8F=90=E5=8F=96?= =?UTF-8?q?=E4=B8=BA=E5=B7=A5=E5=85=B7=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/core/render/Render.js | 26 +++++++---------------- simple-mind-map/src/utils/index.js | 24 +++++++++++++++++++++ 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 1fdedbdd..c0072a3b 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -22,7 +22,8 @@ import { createUid, getNodeDataIndex, getNodeIndexInNodeList, - setDataToClipboard + setDataToClipboard, + getDataFromClipboard } from '../../utils' import { shapeList } from './node/Shape' import { lineStyleProps } from '../../themes/default' @@ -805,23 +806,12 @@ class Render { // 读取剪贴板的文字和图片 let text = null let img = null - if (navigator.clipboard) { - try { - text = await navigator.clipboard.readText() - const items = await navigator.clipboard.read() - if (items && items.length > 0) { - for (const clipboardItem of items) { - for (const type of clipboardItem.types) { - if (/^image\//.test(type)) { - img = await clipboardItem.getType(type) - break - } - } - } - } - } catch (error) { - errorHandler(ERROR_TYPES.READ_CLIPBOARD_ERROR, error) - } + try { + const res = await getDataFromClipboard() + text = res.text + img = res.img + } catch (error) { + errorHandler(ERROR_TYPES.READ_CLIPBOARD_ERROR, error) } // 检查剪切板数据是否有变化 // 通过图片大小来判断图片是否发生变化,可能是不准确的,但是目前没有其他好方法 diff --git a/simple-mind-map/src/utils/index.js b/simple-mind-map/src/utils/index.js index d7cb3854..d3d5b14d 100644 --- a/simple-mind-map/src/utils/index.js +++ b/simple-mind-map/src/utils/index.js @@ -898,3 +898,27 @@ export const setDataToClipboard = data => { navigator.clipboard.writeText(JSON.stringify(data)) } } + +// 从用户剪贴板中读取文字和图片 +export const getDataFromClipboard = async () => { + let text = null + let img = null + if (navigator.clipboard) { + text = await navigator.clipboard.readText() + const items = await navigator.clipboard.read() + if (items && items.length > 0) { + for (const clipboardItem of items) { + for (const type of clipboardItem.types) { + if (/^image\//.test(type)) { + img = await clipboardItem.getType(type) + break + } + } + } + } + } + return { + text, + img + } +}