diff --git a/src/components/XdTable/index.vue b/src/components/XdTable/index.vue index 95123db3..c5571a00 100644 --- a/src/components/XdTable/index.vue +++ b/src/components/XdTable/index.vue @@ -94,9 +94,10 @@ -
+ +
- + @@ -269,6 +270,7 @@ export default { // 鼠标按下事件 tbBodyDiv.onmousedown = function (ev) { + console.log('===tbBodyDiv.onmousedown===>') var evt = window.event || arguments[0]; var flag = true; // 鼠标右键菜单,并且记录当前位置 @@ -333,10 +335,23 @@ export default { vnode.context.mouseflag = true; // //鼠标拖动时画框 document.onmousemove = function (ev) { + + const tbBodyDivRect = tbBodyDiv.getBoundingClientRect(); + console.log("===document.onmousemove==>",ev,tbBodyDivRect); + evt = window.event || arguments[0]; _x = (evt.x || evt.clientX); _y = (evt.y || evt.clientY); //为了确定是点击事件还是移动事件 + if(_x { - // console.log('键盘监听中') - e = e||window.event; - if(e.ctrlKey&&e.code=="KeyC"){ - that.handleCopySelect(e); - return false; - } - } + }, beforeDestroy () { - document.removeEventListener('keydown', this.copyHanderEvent) + document.removeEventListener('keydown', this.handleGlobalKeydown) }, methods: { getInstance() { @@ -699,6 +709,25 @@ export default { return Math.random().toString(36).substring(3,10); }, + // 全局键盘事件处理 + handleGlobalKeydown(event) { + // console.log("===>handleGlobalKeydown===>",event) + + // 检查是否按下了Ctrl+C组合键 + if ((event.ctrlKey || event.metaKey) && event.key === 'c') { + // 如果焦点在表格内,处理复制操作 + if (this.isTableFocused) { + event.preventDefault(); + this.handleCopySelect(); + // e = e||window.event; + // if(e.ctrlKey&&e.code=="KeyC"){ + // that.handleCopySelect(e); + // return false; + // } + } + } + }, + clearSelection(){ this.$nextTick(()=>{ this.$refs.table.$refs.elTable.clearSelection(); @@ -707,12 +736,13 @@ export default { initKeyDownEvent(){ // console.log('===initKeyDownEvent===>') - document.addEventListener('keydown', this.copyHanderEvent ); + document.addEventListener('keydown', this.handleGlobalKeydown ); }, removeKeyDownEvent(){ // console.log('===removeKeyDownEvent===>') - document.removeEventListener('keydown', this.copyHanderEvent ); + document.removeEventListener('keydown', this.handleGlobalKeydown ); }, + onTplSelectInputBlur(e) { if (e.target.value.trim()!== '') { //e.target.value就是录入的内容 @@ -911,7 +941,10 @@ export default { // 去除两端空格 this.currentSelectStr=selStr; + this.isTableFocused=true; + }else{ + this.isTableFocused=false; } // this.$emit('handleSelect',this.multipleSelection)