diff --git a/packages/core/src/LogicFlow.tsx b/packages/core/src/LogicFlow.tsx index cd2ddf79a..ee2fcae00 100644 --- a/packages/core/src/LogicFlow.tsx +++ b/packages/core/src/LogicFlow.tsx @@ -131,13 +131,11 @@ export default class LogicFlow { this.snaplineModel = new SnaplineModel(this.graphModel); snaplineTool(this.graphModel.eventCenter, this.snaplineModel); } - if (!this.options.isSilentMode) { - // 先初始化默认内置快捷键 - initDefaultShortcut(this, this.graphModel); - // 然后再初始化自定义快捷键,自定义快捷键可以覆盖默认快捷键. - // 插件最后初始化。方便插件强制覆盖内置快捷键 - this.keyboard.initShortcuts(); - } + // 先初始化默认内置快捷键 + initDefaultShortcut(this, this.graphModel); + // 然后再初始化自定义快捷键,自定义快捷键可以覆盖默认快捷键. + // 插件最后初始化。方便插件强制覆盖内置快捷键 + this.keyboard.initShortcuts(); // init 放到最后 this.defaultRegister(); this.installPlugins(options.disabledPlugins); @@ -793,6 +791,9 @@ export default class LogicFlow { if (config?.stopMoveGraph !== undefined) { transformModel.updateTranslateLimits(config.stopMoveGraph); } + + // 静默模式切换时,修改快捷键的启用状态 + config?.isSilentMode ? this.keyboard.disable() : this.keyboard.enable(true); } /** * 获取流程图当前编辑相关设置 diff --git a/packages/core/src/keyboard/index.ts b/packages/core/src/keyboard/index.ts index 07565becf..bedccfba5 100644 --- a/packages/core/src/keyboard/index.ts +++ b/packages/core/src/keyboard/index.ts @@ -30,7 +30,8 @@ class Keyboard { const { lf } = options; this.target = lf.container; this.mousetrap = new Mousetrap(this.target); - if (options.keyboard.enabled) { + // 默认开启快捷键,且不是静默模式时enable + if (options.keyboard.enabled && !lf.options.isSilentMode) { this.enable(true); } } diff --git a/packages/core/src/view/behavior/DnD.ts b/packages/core/src/view/behavior/DnD.ts index 33c0b88c9..916055e6e 100644 --- a/packages/core/src/view/behavior/DnD.ts +++ b/packages/core/src/view/behavior/DnD.ts @@ -32,7 +32,8 @@ export default class Dnd { } startDrag(nodeConfig: NewNodeConfig) { - if (!this.lf.options.isSilentMode) { + const { editConfigModel } = this.lf.graphModel; + if (!editConfigModel?.isSilentMode) { this.nodeConfig = nodeConfig; window.document.addEventListener('mouseup', this.stopDrag); }