md
This commit is contained in:
parent
57495d050c
commit
927352b7c9
@ -94,9 +94,10 @@
|
||||
</div>
|
||||
</slot>
|
||||
</div>
|
||||
<div @mouseenter="initKeyDownEvent" @mouseleave="removeKeyDownEvent">
|
||||
<!-- @mouseenter="initKeyDownEvent" @mouseleave="removeKeyDownEvent" -->
|
||||
<div >
|
||||
<!-- <div class="flex-auto"> -->
|
||||
<orig-table ref="table" :key="refreshKeyId" tabindex="0" :config="config" v-dragSelect class="xd-tb-wrapper" />
|
||||
<orig-table ref="table" :key="refreshKeyId" tabindex="0" :config="config" v-dragSelect class="xd-tb-wrapper" />
|
||||
<!-- </div> -->
|
||||
<!-- 统计数据 v-dragColumn v-dragSelect-->
|
||||
|
||||
@ -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<tbBodyDivRect.x || _y<tbBodyDivRect.y){
|
||||
console.log("no scope");
|
||||
vnode.context.isTableFocused=false;
|
||||
return;
|
||||
}
|
||||
|
||||
vnode.context.isTableFocused=true;
|
||||
console.log("in scope");
|
||||
|
||||
|
||||
if(Math.abs(_x - startX)<5 && Math.abs(_y - startY)<5){
|
||||
// setMouseCellSelect(evt.target);
|
||||
@ -436,8 +451,8 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
vnode.context.clearEventBubble(evt);
|
||||
}
|
||||
vnode.context.clearEventBubble(evt);
|
||||
};
|
||||
|
||||
function showContextMenu(event){
|
||||
@ -515,8 +530,6 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 获取鼠标位置的单元格
|
||||
function getCellPosition(cell) {
|
||||
try{
|
||||
@ -536,7 +549,7 @@ export default {
|
||||
//在鼠标抬起后做的重置
|
||||
document.onmouseup = function () {
|
||||
//把鼠标移动事初始化
|
||||
document.onmousemove=null;
|
||||
// document.onmousemove=null;
|
||||
var xdTableObj = document.getElementById(vnode.context.tableId);
|
||||
var selDiv=document.getElementById("selectDiv-"+vnode.context.tableId);
|
||||
if (selDiv) {
|
||||
@ -546,10 +559,11 @@ export default {
|
||||
vnode.context.mouseflag = false;
|
||||
vnode.context.handleBatchSelect();
|
||||
// cancelContextMenu();
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
dragColumn: {
|
||||
@ -572,6 +586,8 @@ export default {
|
||||
title: "显示/隐藏",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
|
||||
|
||||
showTable: false,
|
||||
popVisible:false,
|
||||
isMouseDown: true, // 是否需要(允许)处理鼠标的移动事件
|
||||
@ -621,6 +637,7 @@ export default {
|
||||
checkAll: false, //招标阶段 是否全选
|
||||
isIndeterminate: false, //全选复选框标识
|
||||
|
||||
isTableFocused: false,
|
||||
copyHanderEvent:null,
|
||||
|
||||
// 表格个性化记忆配置
|
||||
@ -670,26 +687,19 @@ export default {
|
||||
this.isNeedDbSaveTpl=false;
|
||||
}
|
||||
|
||||
this.initKeyDownEvent();
|
||||
// 初始化默认模版到本地
|
||||
this.initDefaultTplList();
|
||||
this.initStorage()
|
||||
this.updateTable()
|
||||
// this.initKeyDown();
|
||||
this.tableDom=this.getTableDom();
|
||||
|
||||
// 监听 ctrl+c键盘事件
|
||||
let that=this;
|
||||
this.copyHanderEvent = (e) => {
|
||||
// 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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user