1 line
20 KiB
JSON
1 line
20 KiB
JSON
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js??ref--1-0!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","mtime":1743945250914},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/babel.config.js","mtime":1742646402652},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tICJhbnQtZGVzaWduLXZ1ZSI7CmltcG9ydCB7IGxhc3QgfSBmcm9tICJsb2Rhc2gtZXMiOwppbXBvcnQgQ29udGV4dE1lbnUgZnJvbSAiLi4vY29tcG9uZW50cy9jb21tb24vQ29udGV4dE1lbnUiOwppbXBvcnQgUGFnZVRvZ2dsZVRyYW5zaXRpb24gZnJvbSAiLi4vY29tcG9uZW50cy90cmFuc2l0aW9uL1BhZ2VUb2dnbGVUcmFuc2l0aW9uIjsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJUYWJMYXlvdXQiLAogIGNvbXBvbmVudHM6IHsKICAgIFBhZ2VUb2dnbGVUcmFuc2l0aW9uLAogICAgQ29udGV4dE1lbnUKICB9LAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBwYWdlTGlzdDogW10sCiAgICAgIGR1c3RiaW46IFtdLAogICAgICBhY3RpdmVQYWdlOiAiIiwKICAgICAgbWVudVZpc2libGU6IGZhbHNlLAogICAgICBtZW51SXRlbXM6IFt7CiAgICAgICAga2V5OiAiMSIsCiAgICAgICAgaWNvbjogImFycm93LWxlZnQiLAogICAgICAgIHRleHQ6ICLlhbPpl63lt6bkvqciCiAgICAgIH0sIHsKICAgICAgICBrZXk6ICIyIiwKICAgICAgICBpY29uOiAiYXJyb3ctcmlnaHQiLAogICAgICAgIHRleHQ6ICLlhbPpl63lj7PkvqciCiAgICAgIH0sIHsKICAgICAgICBrZXk6ICIzIiwKICAgICAgICBpY29uOiAiY2xvc2UiLAogICAgICAgIHRleHQ6ICLlhbPpl63lhbblroMiCiAgICAgIH1dCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgICRyb3V0ZTogewogICAgICBpbW1lZGlhdGU6IHRydWUsCiAgICAgIGhhbmRsZXIocm91dGUpIHsKICAgICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSByb3V0ZS5mdWxsUGF0aDsKICAgICAgICB0aGlzLnB1dENhY2hlKHJvdXRlKTsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucGFnZUxpc3QuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5mdWxsUGF0aCA9PT0gcm91dGUuZnVsbFBhdGgpOwogICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgIHRoaXMucGFnZUxpc3QucHVzaChyb3V0ZSk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBtZXRob2RzOiB7CiAgICBsb2coZGF0YSkgewogICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgIH0sCiAgICBjaGFuZ2VQYWdlKGtleSkgewogICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBrZXk7CiAgICAgIHRoaXMuJHJvdXRlci5wdXNoKGtleSk7CiAgICB9LAogICAgZWRpdFBhZ2Uoa2V5LCBhY3Rpb24pIHsKICAgICAgaWYgKGFjdGlvbiA9PT0gInJlbW92ZSIpIHsKICAgICAgICB0aGlzLnJlbW92ZShrZXkpOwogICAgICB9CiAgICB9LAogICAgcmVtb3ZlKGtleSkgewogICAgICBpZiAodGhpcy5wYWdlTGlzdC5sZW5ndGggPD0gMSkgewogICAgICAgIHJldHVybiBtZXNzYWdlLmluZm8oIuacgOWQjuS4gOmhteS6huWTpn4iKTsKICAgICAgfQogICAgICBsZXQgY3VySW5kZXggPSB0aGlzLnBhZ2VMaXN0LmZpbmRJbmRleChpdGVtID0+IGl0ZW0uZnVsbFBhdGggPT09IGtleSk7CiAgICAgIGNvbnN0IHsKICAgICAgICBtYXRjaGVkCiAgICAgIH0gPSB0aGlzLnBhZ2VMaXN0W2N1ckluZGV4XTsKICAgICAgY29uc3QgY29tcG9uZW50TmFtZSA9IGxhc3QobWF0Y2hlZCkuY29tcG9uZW50cy5kZWZhdWx0Lm5hbWU7CiAgICAgIHRoaXMuZHVzdGJpbi5wdXNoKGNvbXBvbmVudE5hbWUpOwogICAgICB0aGlzLnBhZ2VMaXN0LnNwbGljZShjdXJJbmRleCwgMSk7CiAgICAgIC8vIOWmguaenOWIoOmZpOeahOaYr+W9k+WJjemhteaJjemcgOimgei3s+i9rAogICAgICBpZiAoa2V5ID09PSB0aGlzLmFjdGl2ZVBhZ2UpIHsKICAgICAgICAvLyDliKTmlq3lkJHlt6bot7Pov5jmmK/lkJHlj7Pot7MKICAgICAgICBjdXJJbmRleCA9IGN1ckluZGV4ID49IHRoaXMucGFnZUxpc3QubGVuZ3RoID8gdGhpcy5wYWdlTGlzdC5sZW5ndGggLSAxIDogY3VySW5kZXg7CiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZUxpc3RbY3VySW5kZXhdOwogICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHBhZ2UuZnVsbFBhdGgpLmZpbmFsbHkoKCkgPT4gewogICAgICAgICAgdGhpcy5kdXN0YmluLnNwbGljZSgwKTsgLy8g6YeN572u77yM5ZCm5YiZ5Lya5b2x5ZON5Yiw5p+Q5Lqb57uE5Lu255qE57yT5a2YCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIOWPs+mUruiPnOWNlQogICAgICovCiAgICBvbkNvbnRleHRtZW51KGUpIHsKICAgICAgY29uc3Qga2V5ID0gZ2V0VGFiS2V5KGUudGFyZ2V0KTsKICAgICAgaWYgKCFrZXkpIHJldHVybjsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICB0aGlzLm1lbnVWaXNpYmxlID0gdHJ1ZTsKICAgIH0sCiAgICBvbk1lbnVTZWxlY3Qoa2V5LCB0YXJnZXQpIHsKICAgICAgY29uc3QgdGFiS2V5ID0gZ2V0VGFiS2V5KHRhcmdldCk7CiAgICAgIHN3aXRjaCAoa2V5KSB7CiAgICAgICAgY2FzZSAiMSI6CiAgICAgICAgICB0aGlzLmNsb3NlTGVmdCh0YWJLZXkpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAiMiI6CiAgICAgICAgICB0aGlzLmNsb3NlUmlnaHQodGFiS2V5KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgIjMiOgogICAgICAgICAgdGhpcy5jbG9zZU90aGVycyh0YWJLZXkpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9LAogICAgY2xvc2VPdGhlcnModGFiS2V5KSB7CiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYWdlTGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmZ1bGxQYXRoID09PSB0YWJLZXkpOwogICAgICBmb3IgKGNvbnN0IHJvdXRlIG9mIHRoaXMucGFnZUxpc3QpIHsKICAgICAgICBpZiAocm91dGUuZnVsbFBhdGggIT09IHRhYktleSkgewogICAgICAgICAgdGhpcy5jbGVhckNhY2hlKHJvdXRlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgcGFnZSA9IHRoaXMucGFnZUxpc3RbaW5kZXhdOwogICAgICB0aGlzLnBhZ2VMaXN0ID0gW3BhZ2VdOwogICAgICB0aGlzLmFjdGl2ZVBhZ2UgPSBwYWdlLmZ1bGxQYXRoOwogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh0aGlzLmFjdGl2ZVBhZ2UpLmNhdGNoKGUgPT4gZSk7CiAgICB9LAogICAgY2xvc2VMZWZ0KHRhYktleSkgewogICAgICBjb25zdCBpbmRleCA9IHRoaXMucGFnZUxpc3QuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS5mdWxsUGF0aCA9PT0gdGFiS2V5KTsKICAgICAgdGhpcy5wYWdlTGlzdC5mb3JFYWNoKChyb3V0ZSwgaSkgPT4gewogICAgICAgIGlmIChpIDwgaW5kZXgpIHsKICAgICAgICAgIHRoaXMuY2xlYXJDYWNoZShyb3V0ZSk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgY29uc3QgcmVzdFBhZ2VzID0gdGhpcy5wYWdlTGlzdC5zbGljZShpbmRleCk7CiAgICAgIHRoaXMucGFnZUxpc3QgPSByZXN0UGFnZXM7CiAgICAgIC8vIOWIpOaWreW9k+WJjWFjdGl2ZVBhZ2XmmK/lkKblnKjlsIbopoHliKDpmaTnmoTpobXpnaLkuK0KICAgICAgY29uc3QgY3VyQWN0aXZlUGFnZSA9IHJlc3RQYWdlcy5maW5kKGl0ZW0gPT4gaXRlbS5mdWxsUGF0aCA9PT0gdGhpcy5hY3RpdmVQYWdlKTsKICAgICAgaWYgKCFjdXJBY3RpdmVQYWdlKSB7CiAgICAgICAgdGhpcy5hY3RpdmVQYWdlID0gcmVzdFBhZ2VzWzBdLmZ1bGxQYXRoOwogICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHRoaXMuYWN0aXZlUGFnZSkuY2F0Y2goZSA9PiBlKTsKICAgICAgfQogICAgfSwKICAgIGNsb3NlUmlnaHQodGFiS2V5KSB7CiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYWdlTGlzdC5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLmZ1bGxQYXRoID09PSB0YWJLZXkpOwogICAgICB0aGlzLnBhZ2VMaXN0LmZvckVhY2goKHJvdXRlLCBpKSA9PiB7CiAgICAgICAgaWYgKGkgPiBpbmRleCkgewogICAgICAgICAgdGhpcy5jbGVhckNhY2hlKHJvdXRlKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBjb25zdCByZXN0UGFnZXMgPSB0aGlzLnBhZ2VMaXN0LnNsaWNlKDAsIGluZGV4ICsgMSk7CiAgICAgIHRoaXMucGFnZUxpc3QgPSByZXN0UGFnZXM7CiAgICAgIC8vIOWIpOaWreW9k+WJjWFjdGl2ZVBhZ2XmmK/lkKblnKjlsIbopoHliKDpmaTnmoTpobXpnaLkuK0KICAgICAgY29uc3QgY3VyQWN0aXZlUGFnZSA9IHJlc3RQYWdlcy5maW5kKGl0ZW0gPT4gaXRlbS5mdWxsUGF0aCA9PT0gdGhpcy5hY3RpdmVQYWdlKTsKICAgICAgaWYgKCFjdXJBY3RpdmVQYWdlKSB7CiAgICAgICAgdGhpcy5hY3RpdmVQYWdlID0gbGFzdChyZXN0UGFnZXMpLmZ1bGxQYXRoOwogICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKHRoaXMuYWN0aXZlUGFnZSkuY2F0Y2goZSA9PiBlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICog57yT5a2Y5o6n5Yi2CiAgICAgKi8KICAgIGNsZWFyQ2FjaGUocm91dGUpIHsKICAgICAgY29uc3QgY29tcG9uZW50TmFtZSA9IGxhc3Qocm91dGUubWF0Y2hlZCkuY29tcG9uZW50cy5kZWZhdWx0Lm5hbWU7CiAgICAgIHRoaXMuZHVzdGJpbi5wdXNoKGNvbXBvbmVudE5hbWUpOyAvLyDmuIXpmaQKICAgIH0sCiAgICBwdXRDYWNoZShyb3V0ZSkgewogICAgICBjb25zdCBjb21wb25lbnROYW1lID0gbGFzdChyb3V0ZS5tYXRjaGVkKS5jb21wb25lbnRzLmRlZmF1bHQubmFtZTsKICAgICAgaWYgKHRoaXMuZHVzdGJpbi5pbmNsdWRlcyhjb21wb25lbnROYW1lKSkgewogICAgICAgIHRoaXMuZHVzdGJpbiA9IHRoaXMuZHVzdGJpbi5maWx0ZXIoaXRlbSA9PiBpdGVtICE9PSBjb21wb25lbnROYW1lKTsKICAgICAgfQogICAgfQogIH0KfTsKCi8qKgogKiDojrflj5ZUYWLmoIfnrb7kuItkb23oioLngrnkuK3oh6rlrprkuYnnmoTmlbDmja7vvIzpgJLlvZLlkJHkuIvmn6Xmib7mnIDlpJoz5bGC77yI6KeC5a+fVGFi57uE5Lu25riy5p+T5ZCO55qERE9N5b6X5Ye677yJCiAqIOivpeaWueW8j+WxnuS6jmhhY2vmiYvmrrXvvIzkuI3lvpflt7LkuLrkuYsKICogQHBhcmFte0hUTUxFbGVtZW50fSB0YXJnZXQgZXZlbnQudGFyZ2V0CiAqIEBwYXJhbSBkZXB0aCDmt7HluqYKICovCmZ1bmN0aW9uIGdldFRhYktleSh0YXJnZXQsIGRlcHRoID0gMCkgewogIGlmIChkZXB0aCA+IDIgfHwgIXRhcmdldCkgewogICAgcmV0dXJuIG51bGw7CiAgfQogIHJldHVybiB0YXJnZXQuZGF0YXNldC5rZXkgfHwgZ2V0VGFiS2V5KHRhcmdldC5maXJzdEVsZW1lbnRDaGlsZCwgKytkZXB0aCk7Cn0="},{"version":3,"names":["message","last","ContextMenu","PageToggleTransition","name","components","data","pageList","dustbin","activePage","menuVisible","menuItems","key","icon","text","watch","$route","immediate","handler","route","fullPath","putCache","index","findIndex","item","push","methods","log","console","changePage","$router","editPage","action","remove","length","info","curIndex","matched","componentName","default","splice","page","finally","onContextmenu","e","getTabKey","target","preventDefault","onMenuSelect","tabKey","closeLeft","closeRight","closeOthers","clearCache","catch","forEach","i","restPages","slice","curActivePage","find","includes","filter","depth","dataset","firstElementChild"],"sources":["src/layouts/TabLayout.vue"],"sourcesContent":["<template>\n <div class=\"tab-layout\">\n <a-tabs\n type=\"editable-card\"\n class=\"tab-bar\"\n :hide-add=\"true\"\n :active-key=\"activePage\"\n @change=\"changePage\"\n @edit=\"editPage\"\n @contextmenu=\"onContextmenu\"\n >\n <a-tab-pane v-for=\"page in pageList\" :key=\"page.fullPath\">\n <template #tab>\n <span :data-key=\"page.fullPath\">\n {{ page.meta.title }}\n </span>\n </template>\n </a-tab-pane>\n </a-tabs>\n <PageToggleTransition name=\"fadeIn\">\n <keep-alive :exclude=\"dustbin\">\n <router-view />\n </keep-alive>\n </PageToggleTransition>\n <ContextMenu\n :list=\"menuItems\"\n :visible.sync=\"menuVisible\"\n @select=\"onMenuSelect\"\n />\n </div>\n</template>\n\n<script>\nimport { message } from \"ant-design-vue\";\nimport { last } from \"lodash-es\";\nimport ContextMenu from \"../components/common/ContextMenu\";\nimport PageToggleTransition from \"../components/transition/PageToggleTransition\";\n\nexport default {\n name: \"TabLayout\",\n components: { PageToggleTransition, ContextMenu },\n data() {\n return {\n pageList: [],\n dustbin: [],\n activePage: \"\",\n menuVisible: false,\n menuItems: [\n { key: \"1\", icon: \"arrow-left\", text: \"关闭左侧\" },\n { key: \"2\", icon: \"arrow-right\", text: \"关闭右侧\" },\n { key: \"3\", icon: \"close\", text: \"关闭其它\" },\n ],\n };\n },\n watch: {\n $route: {\n immediate: true,\n handler(route) {\n this.activePage = route.fullPath;\n this.putCache(route);\n const index = this.pageList.findIndex(\n (item) => item.fullPath === route.fullPath\n );\n if (index === -1) {\n this.pageList.push(route);\n }\n },\n },\n },\n methods: {\n log(data) {\n console.log(data);\n },\n changePage(key) {\n this.activePage = key;\n this.$router.push(key);\n },\n editPage(key, action) {\n if (action === \"remove\") {\n this.remove(key);\n }\n },\n remove(key) {\n if (this.pageList.length <= 1) {\n return message.info(\"最后一页了哦~\");\n }\n let curIndex = this.pageList.findIndex((item) => item.fullPath === key);\n const { matched } = this.pageList[curIndex];\n const componentName = last(matched).components.default.name;\n this.dustbin.push(componentName);\n this.pageList.splice(curIndex, 1);\n // 如果删除的是当前页才需要跳转\n if (key === this.activePage) {\n // 判断向左跳还是向右跳\n curIndex =\n curIndex >= this.pageList.length\n ? this.pageList.length - 1\n : curIndex;\n const page = this.pageList[curIndex];\n this.$router.push(page.fullPath).finally(() => {\n this.dustbin.splice(0); // 重置,否则会影响到某些组件的缓存\n });\n }\n },\n /**\n * 右键菜单\n */\n onContextmenu(e) {\n const key = getTabKey(e.target);\n if (!key) return;\n\n e.preventDefault();\n this.menuVisible = true;\n },\n onMenuSelect(key, target) {\n const tabKey = getTabKey(target);\n switch (key) {\n case \"1\":\n this.closeLeft(tabKey);\n break;\n case \"2\":\n this.closeRight(tabKey);\n break;\n case \"3\":\n this.closeOthers(tabKey);\n break;\n default:\n break;\n }\n },\n closeOthers(tabKey) {\n const index = this.pageList.findIndex((item) => item.fullPath === tabKey);\n for (const route of this.pageList) {\n if (route.fullPath !== tabKey) {\n this.clearCache(route);\n }\n }\n const page = this.pageList[index];\n this.pageList = [page];\n this.activePage = page.fullPath;\n this.$router.push(this.activePage).catch((e) => e);\n },\n closeLeft(tabKey) {\n const index = this.pageList.findIndex((item) => item.fullPath === tabKey);\n this.pageList.forEach((route, i) => {\n if (i < index) {\n this.clearCache(route);\n }\n });\n const restPages = this.pageList.slice(index);\n this.pageList = restPages;\n // 判断当前activePage是否在将要删除的页面中\n const curActivePage = restPages.find(\n (item) => item.fullPath === this.activePage\n );\n if (!curActivePage) {\n this.activePage = restPages[0].fullPath;\n this.$router.push(this.activePage).catch((e) => e);\n }\n },\n closeRight(tabKey) {\n const index = this.pageList.findIndex((item) => item.fullPath === tabKey);\n this.pageList.forEach((route, i) => {\n if (i > index) {\n this.clearCache(route);\n }\n });\n const restPages = this.pageList.slice(0, index + 1);\n this.pageList = restPages;\n // 判断当前activePage是否在将要删除的页面中\n const curActivePage = restPages.find(\n (item) => item.fullPath === this.activePage\n );\n if (!curActivePage) {\n this.activePage = last(restPages).fullPath;\n this.$router.push(this.activePage).catch((e) => e);\n }\n },\n /**\n * 缓存控制\n */\n clearCache(route) {\n const componentName = last(route.matched).components.default.name;\n this.dustbin.push(componentName); // 清除\n },\n putCache(route) {\n const componentName = last(route.matched).components.default.name;\n if (this.dustbin.includes(componentName)) {\n this.dustbin = this.dustbin.filter((item) => item !== componentName);\n }\n },\n },\n};\n\n/**\n * 获取Tab标签下dom节点中自定义的数据,递归向下查找最多3层(观察Tab组件渲染后的DOM得出)\n * 该方式属于hack手段,不得已为之\n * @param{HTMLElement} target event.target\n * @param depth 深度\n */\nfunction getTabKey(target, depth = 0) {\n if (depth > 2 || !target) {\n return null;\n }\n return target.dataset.key || getTabKey(target.firstElementChild, ++depth);\n}\n</script>\n\n<style lang=\"less\" scoped>\n.tab-layout {\n background: #fff;\n padding: 6px 4px 0;\n margin-bottom: 10px;\n height: 32px !important;\n\n .tab-bar {\n background: #fff;\n margin-bottom: 10px;\n :deep(.ant-tabs-bar) {\n margin: 0;\n border: none;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n }\n\n :deep(.ant-tabs-nav-container) {\n height: 32px !important;\n }\n\n :deep(.ant-tabs-tab) {\n margin-right: 6px;\n height: 32px !important;\n line-height: 32px !important;\n background: #fafafa;\n border: 1px solid #f0f0f0;\n border-radius: 4px;\n transition: all 0.3s;\n padding: 0 16px;\n\n &:hover {\n color: #1890ff;\n background: #e6f7ff;\n }\n\n &.ant-tabs-tab-active {\n background: #fff;\n border-color: #1890ff;\n color: #1890ff;\n }\n\n .ant-tabs-close-x {\n width: 16px;\n height: 16px;\n line-height: 16px;\n margin-right: -4px;\n margin-left: 4px;\n opacity: 0.45;\n\n &:hover {\n opacity: 1;\n color: #ff4d4f;\n }\n }\n }\n\n :deep(.ant-tabs-ink-bar) {\n display: none;\n }\n }\n}\n\n.breadcrumb {\n margin-bottom: 12px;\n padding: 8px 24px;\n background: #fff;\n border-radius: 4px;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);\n}\n\n// 右键菜单样式优化\n:deep(.context-menu) {\n background: #fff;\n border-radius: 4px;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n\n .menu-item {\n padding: 8px 16px;\n cursor: pointer;\n transition: all 0.3s;\n\n &:hover {\n background: #e6f7ff;\n color: #1890ff;\n }\n\n .anticon {\n margin-right: 8px;\n }\n }\n}\n</style>\n"],"mappings":"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","ignoreList":[]}]} |