28fd0fba9144220a717d654fe642111f.json 5.4 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\layout\\navBars\\tagsView\\contextmenu.vue?vue&type=style&index=0&id=2a4dc6e5&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\layout\\navBars\\tagsView\\contextmenu.vue","mtime":1761185180056},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\css-loader\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\postcss-loader\\src\\index.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\sass-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQouY3VzdG9tLWNvbnRleHRtZW51IHsNCiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIHRvcDsNCiAgei1pbmRleDogMjE5MDsNCiAgcG9zaXRpb246IGZpeGVkOw0KICAuZWwtZHJvcGRvd24tbWVudV9faXRlbSB7DQogICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7DQogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsNCiAgICBpIHsNCiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50Ow0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["contextmenu.vue"],"names":[],"mappings":";AAwGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"contextmenu.vue","sourceRoot":"src/layout/navBars/tagsView","sourcesContent":["<template>\r\n <div>\r\n <transition name=\"el-zoom-in-center\">\r\n <ul\r\n class=\"el-dropdown-menu el-popper el-dropdown-menu--medium custom-contextmenu\"\r\n :style=\"`top: ${dropdowns.y}px;left: ${dropdowns.x}px;`\"\r\n x-placement=\"bottom-end\"\r\n id=\"contextmenu\"\r\n v-show=\"isShow\"\r\n >\r\n <li\r\n class=\"el-dropdown-menu__item\"\r\n v-for=\"(v, k) in dropdownList\"\r\n :key=\"k\"\r\n v-db-click\r\n @click=\"onCurrentContextmenuClick(v.id)\"\r\n >\r\n <template v-if=\"!v.affix\">\r\n <i :class=\"v.icon\"></i>\r\n <span>{{ $t(v.txt) }}</span>\r\n </template>\r\n </li>\r\n <div x-arrow class=\"popper__arrow\" :style=\"{ left: `${arrowLeft}px` }\"></div>\r\n </ul>\r\n </transition>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'layoutTagsViewContextmenu',\r\n props: {\r\n dropdown: {\r\n type: Object,\r\n },\r\n },\r\n data() {\r\n return {\r\n isShow: false,\r\n dropdownList: [\r\n { id: 0, txt: 'message.tagsView.refresh', affix: false, icon: 'el-icon-refresh-right' },\r\n { id: 1, txt: 'message.tagsView.close', affix: false, icon: 'el-icon-close' },\r\n { id: 2, txt: 'message.tagsView.closeOther', affix: false, icon: 'el-icon-circle-close' },\r\n { id: 3, txt: 'message.tagsView.closeAll', affix: false, icon: 'el-icon-folder-delete' },\r\n ],\r\n path: {},\r\n arrowLeft: 5,\r\n };\r\n },\r\n computed: {\r\n dropdowns() {\r\n // 99 为 `Dropdown 下拉菜单` 的宽度\r\n if (this.dropdown.x + 99 > document.documentElement.clientWidth) {\r\n return {\r\n x: document.documentElement.clientWidth - 99 - 5,\r\n y: this.dropdown.y,\r\n };\r\n } else {\r\n return this.dropdown;\r\n }\r\n },\r\n },\r\n mounted() {\r\n // 监听页面监听进行右键菜单的关闭\r\n document.body.addEventListener('click', this.closeContextmenu);\r\n },\r\n methods: {\r\n // 当前项菜单点击\r\n onCurrentContextmenuClick(id) {\r\n this.$emit('currentContextmenuClick', { id, path: this.path });\r\n },\r\n // 打开右键菜单:判断是否固定,固定则不显示关闭按钮\r\n openContextmenu(item) {\r\n this.path = item.path;\r\n item.meta.isAffix ? (this.dropdownList[1].affix = true) : (this.dropdownList[1].affix = false);\r\n this.closeContextmenu();\r\n setTimeout(() => {\r\n this.isShow = true;\r\n }, 80);\r\n },\r\n // 关闭右键菜单\r\n closeContextmenu() {\r\n this.isShow = false;\r\n },\r\n },\r\n destroyed() {\r\n // 页面卸载时,移除右键菜单监听事件\r\n document.body.removeEventListener('click', this.closeContextmenu);\r\n },\r\n // 监听下拉菜单位置\r\n watch: {\r\n dropdown: {\r\n handler({ x }) {\r\n if (x + 99 > document.documentElement.clientWidth)\r\n this.arrowLeft = 99 - (document.documentElement.clientWidth - x);\r\n else this.arrowLeft = 10;\r\n },\r\n deep: true,\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.custom-contextmenu {\r\n transform-origin: center top;\r\n z-index: 2190;\r\n position: fixed;\r\n .el-dropdown-menu__item {\r\n font-size: 12px !important;\r\n white-space: nowrap;\r\n i {\r\n font-size: 12px !important;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}