diff --git a/data-room-ui/packages/js/mixins/multipleSelectMixin.js b/data-room-ui/packages/js/mixins/multipleSelectMixin.js index 1892e894..26b13662 100644 --- a/data-room-ui/packages/js/mixins/multipleSelectMixin.js +++ b/data-room-ui/packages/js/mixins/multipleSelectMixin.js @@ -32,27 +32,35 @@ export default { pasteCharts: 'pasteCharts' }), keydown (event) { - if (event.keyCode === 37) { - // 关闭默认事件 - event.preventDefault() - // 左箭头键被按下 - this.changeActivePos({ diffX: -1, diffY: 0 }) - } else if (event.keyCode === 38) { - // 关闭默认事件 - event.preventDefault() - // 上箭头键被按下 - this.changeActivePos({ diffX: 0, diffY: -1 }) - } else if (event.keyCode === 39) { - // 关闭默认事件 - event.preventDefault() - // 右箭头键被按下 - this.changeActivePos({ diffX: 1, diffY: 0 }) - } else if (event.keyCode === 40) { - // 关闭默认事件 - event.preventDefault() - // 下箭头键被按下 - this.changeActivePos({ diffX: 0, diffY: 1 }) + // 获取当前获得焦点的元素 + const activeElement = document.activeElement + // 判断当前获得焦点的元素是否是一个输入元素 + const isInputFocused = activeElement instanceof HTMLInputElement || activeElement instanceof HTMLTextAreaElement + if (!isInputFocused) { + // 当前页面没有输入聚焦 + if (event.keyCode === 37) { + // 关闭默认事件 + event.preventDefault() + // 左箭头键被按下 + this.changeActivePos({ diffX: -1, diffY: 0 }) + } else if (event.keyCode === 38) { + // 关闭默认事件 + event.preventDefault() + // 上箭头键被按下 + this.changeActivePos({ diffX: 0, diffY: -1 }) + } else if (event.keyCode === 39) { + // 关闭默认事件 + event.preventDefault() + // 右箭头键被按下 + this.changeActivePos({ diffX: 1, diffY: 0 }) + } else if (event.keyCode === 40) { + // 关闭默认事件 + event.preventDefault() + // 下箭头键被按下 + this.changeActivePos({ diffX: 0, diffY: 1 }) + } } + // ctrl/command + s保存 if ((event.ctrlKey || event.metaKey) && event.keyCode === 83) { // 关闭默认事件