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