From fbcc4a98bcbe9d6121abdaea852990070a1a0d9f Mon Sep 17 00:00:00 2001 From: ZhangMingZhao1 <1104272319@qq.com> Date: Thu, 26 Sep 2024 16:35:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0checkCustomEnterTextE?= =?UTF-8?q?dit=E6=98=AF=E5=90=A6=E8=BF=9B=E5=85=A5=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=A8=A1=E5=BC=8F=E7=9A=84=E6=8B=A6=E6=88=AA?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- simple-mind-map/src/constants/defaultOptions.js | 2 ++ simple-mind-map/src/core/render/TextEdit.js | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/simple-mind-map/src/constants/defaultOptions.js b/simple-mind-map/src/constants/defaultOptions.js index a830cdfb..9c71e40b 100644 --- a/simple-mind-map/src/constants/defaultOptions.js +++ b/simple-mind-map/src/constants/defaultOptions.js @@ -128,6 +128,8 @@ export const defaultOpt = { // 是否在存在一个激活节点时,当按下中文、英文、数字按键时自动进入文本编辑模式 // 开启该特性后,需要给你的输入框绑定keydown事件,并禁止冒泡 enableAutoEnterTextEditWhenKeydown: false, + // 启用enableAutoEnterTextEditWhenKeydown后,自己判断是否拦截输入框展示 + checkCustomEnterTextEdit: null, // 自定义对剪贴板文本的处理。当按ctrl+v粘贴时会读取用户剪贴板中的文本和图片,默认只会判断文本是否是普通文本和simple-mind-map格式的节点数据,如果你想处理其他思维导图的数据,比如processon、zhixi等,那么可以传递一个函数,接受当前剪贴板中的文本为参数,返回处理后的数据,可以返回两种类型: /* 1.返回一个纯文本,那么会直接以该文本创建一个子节点 diff --git a/simple-mind-map/src/core/render/TextEdit.js b/simple-mind-map/src/core/render/TextEdit.js index 6aa334bd..7b3f6b7e 100644 --- a/simple-mind-map/src/core/render/TextEdit.js +++ b/simple-mind-map/src/core/render/TextEdit.js @@ -101,6 +101,10 @@ export default class TextEdit { // 按键事件 onKeydown(e) { + // 检测外部传入的自定义是否进入编辑态拦截方法,有些情况阻止冒泡不管用 + if (this.mindMap.opt.checkCustomEnterTextEdit && !this.mindMap.opt.checkCustomEnterTextEdit()) { + return + }; const activeNodeList = this.mindMap.renderer.activeNodeList if (activeNodeList.length <= 0 || activeNodeList.length > 1) return const node = activeNodeList[0]