From ef526fe30213beaa5b9b02a80fb9ae12f7cec0fc 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: Mon, 9 Sep 2024 18:04:37 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E6=96=B0=E5=A2=9E=E6=8B=A6?= =?UTF-8?q?=E6=88=AA=E5=88=A0=E9=99=A4=E8=8A=82=E7=82=B9=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=9A=84=E5=AE=9E=E4=BE=8B=E5=8C=96=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/constants/defaultOptions.js | 6 +++++- simple-mind-map/src/plugins/NodeImgAdjust.js | 10 ++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/simple-mind-map/src/constants/defaultOptions.js b/simple-mind-map/src/constants/defaultOptions.js index dc89d570..f6ed199b 100644 --- a/simple-mind-map/src/constants/defaultOptions.js +++ b/simple-mind-map/src/constants/defaultOptions.js @@ -410,5 +410,9 @@ export const defaultOpt = { // 【Painter】插件 // 是否只格式刷节点手动设置的样式,不考虑节点通过主题的应用的样式 - onlyPainterNodeCustomStyles: false + onlyPainterNodeCustomStyles: false, + + // 【NodeImgAdjust】插件 + // 拦截节点图片的删除,点击节点图片上的删除按钮删除图片前会调用该函数,如果函数返回true则取消删除 + beforeDeleteNodeImg: null } diff --git a/simple-mind-map/src/plugins/NodeImgAdjust.js b/simple-mind-map/src/plugins/NodeImgAdjust.js index c21987d1..fd7dbb2c 100644 --- a/simple-mind-map/src/plugins/NodeImgAdjust.js +++ b/simple-mind-map/src/plugins/NodeImgAdjust.js @@ -192,8 +192,14 @@ class NodeImgAdjust { if (this.isMousedown) return this.hideHandleEl() }) - btnRemove.addEventListener('click', e => { - this.mindMap.execCommand('SET_NODE_IMAGE', this.node, { url: null }) + btnRemove.addEventListener('click', async e => { + let stop = false + if (typeof this.mindMap.opt.beforeDeleteNodeImg === 'function') { + stop = await this.mindMap.opt.beforeDeleteNodeImg(this.node) + } + if (!stop) { + this.mindMap.execCommand('SET_NODE_IMAGE', this.node, { url: null }) + } }) // 添加元素到页面 const targetNode = this.mindMap.opt.customInnerElsAppendTo || document.body