Optimize Tabs contextMenu

This commit is contained in:
梁灏 2020-09-02 11:02:59 +08:00
parent e3d2e05598
commit 0a3ea18b48

View file

@ -332,19 +332,22 @@
this.$emit('on-dblclick', nav.name);
},
handleContextmenu (index, event) {
const nav = this.navList[index];
if (!nav || nav.disabled || !nav.contextMenu) return;
if (this.contextMenuVisible) this.handleClickContextMenuOutside();
this.$nextTick(() => {
const nav = this.navList[index];
if (!nav || nav.disabled || !nav.contextMenu) return;
event.preventDefault();
const $TabsWrap = this.$refs.tabsWrap;
const TabsBounding = $TabsWrap.getBoundingClientRect();
const position = {
left: `${event.clientX - TabsBounding.left}px`,
top: `${event.clientY - TabsBounding.top}px`
};
this.contextMenuStyles = position;
this.contextMenuVisible = true;
this.$emit('on-contextmenu', nav, event, position);
event.preventDefault();
const $TabsWrap = this.$refs.tabsWrap;
const TabsBounding = $TabsWrap.getBoundingClientRect();
const position = {
left: `${event.clientX - TabsBounding.left}px`,
top: `${event.clientY - TabsBounding.top}px`
};
this.contextMenuStyles = position;
this.contextMenuVisible = true;
this.$emit('on-contextmenu', nav, event, position);
});
},
handleClickContextMenuOutside () {
this.contextMenuVisible = false;