mirror of https://gitee.com/xiaonuobase/snowy
【新增】多标签鼠标中键关闭,并优雅地修复右键关闭按钮出现"使用了错误的类型或对象"的问题
parent
d28af316a8
commit
eab0288f0b
|
@ -68,17 +68,11 @@
|
||||||
},
|
},
|
||||||
// 右键事件事件处理
|
// 右键事件事件处理
|
||||||
contextMenuHandler(e) {
|
contextMenuHandler(e) {
|
||||||
//兼容ie写法
|
this.x = e.clientX
|
||||||
let obj = e.srcElement ? e.srcElement : e.target
|
this.y = e.clientY
|
||||||
let cs = obj.attributes['class']
|
this.layout()
|
||||||
cs = cs ? cs.nodeValue : cs
|
this.$emit('update:show', true)
|
||||||
if(cs&&cs!=='ant-tabs-tab-remove'){
|
this.$emit('get-context-menu', e)
|
||||||
this.x = e.clientX
|
|
||||||
this.y = e.clientY
|
|
||||||
this.layout()
|
|
||||||
this.$emit('update:show', true)
|
|
||||||
this.$emit('get-context-menu', e)
|
|
||||||
}
|
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
},
|
},
|
||||||
// 布局
|
// 布局
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
ref="tabs"
|
ref="tabs"
|
||||||
@edit="onTabRemove"
|
@edit="onTabRemove"
|
||||||
@tabClick="onTabClick"
|
@tabClick="onTabClick"
|
||||||
|
@mouseup="onTabUp"
|
||||||
>
|
>
|
||||||
<template #leftExtra>
|
<template #leftExtra>
|
||||||
<div class="snowy-admin-tabs-arrow" @click="scrollLeft">
|
<div class="snowy-admin-tabs-arrow" @click="scrollLeft">
|
||||||
|
@ -116,7 +117,11 @@
|
||||||
handleTabContextMenu(evt) {
|
handleTabContextMenu(evt) {
|
||||||
evt.preventDefault()
|
evt.preventDefault()
|
||||||
let target = evt.target
|
let target = evt.target
|
||||||
if (target.classList.contains('ant-tabs-tab-btn')) {
|
// 修复关闭时出现"使用了错误的类型或对象"的问题
|
||||||
|
while (!target.classList.contains('ant-tabs-tab')) {
|
||||||
|
if (target.classList.contains('ant-tabs')) {
|
||||||
|
return
|
||||||
|
}
|
||||||
target = target.parentNode
|
target = target.parentNode
|
||||||
}
|
}
|
||||||
const tabList = document.querySelectorAll('.ant-tabs-nav-list .ant-tabs-tab')
|
const tabList = document.querySelectorAll('.ant-tabs-nav-list .ant-tabs-tab')
|
||||||
|
@ -134,6 +139,14 @@
|
||||||
this.closeSelectedTag(tag)
|
this.closeSelectedTag(tag)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// 处理鼠标放开事件
|
||||||
|
onTabUp(e) {
|
||||||
|
// 鼠标中键
|
||||||
|
if (e.which === 2) {
|
||||||
|
this.handleTabContextMenu(e)
|
||||||
|
this.closeTabs()
|
||||||
|
}
|
||||||
|
},
|
||||||
getTabWrapEl() {
|
getTabWrapEl() {
|
||||||
return document.querySelector('.ant-tabs-nav-wrap')
|
return document.querySelector('.ant-tabs-nav-wrap')
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue