8202691a62e25d4587ebcea32a31c7b0.json 20 KB

1
  1. {"remainingRequest":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\babel-loader\\lib\\index.js!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\vab\\components\\TagsBar\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\src\\vab\\components\\TagsBar\\index.vue","mtime":1678954023502},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\babel.config.js","mtime":1681371897685},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1681371913603},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1681371912860},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1681371913603},{"path":"D:\\wnmp\\www\\vue\\seaBlueAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1681371925849}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgbWFwQWN0aW9ucywgbWFwR2V0dGVycyB9IGZyb20gInZ1ZXgiOwppbXBvcnQgeyB0YWJzQmFyU3R5bGUgfSBmcm9tICJAL2NvbmZpZy9zZXR0aW5ncyI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiVGFnc0JhciIsCiAgcHJvcHM6IHsKICAgIGxheW91dDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9CiAgfSwKCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGFmZml4VGFnczogW10sCiAgICAgIHRhYkFjdGl2ZTogIiIsCiAgICAgIGNyZWF0ZWQ6IGZhbHNlLAogICAgICBhY3RpdmU6IGZhbHNlCiAgICB9OwogIH0sCgogIGNvbXB1dGVkOiB7IC4uLm1hcEdldHRlcnMoewogICAgICBzeXN0ZW1UeXBlOiAiTVVzZXIvc3lzdGVtVHlwZSIsCiAgICAgIC8vIHZpc2l0ZWRSb3V0ZXM6ICJ0YWdzQmFyL3Zpc2l0ZWRSb3V0ZXMiLAogICAgICByb3V0ZXM6ICJyb3V0ZXMvcm91dGVzIgogICAgfSksCgogICAgdmlzaXRlZFJvdXRlcygpIHsKICAgICAgaWYgKHRoaXMuc3lzdGVtVHlwZSA9PT0gMSkgewogICAgICAgIHJldHVybiB0aGlzLiRzdG9yZS5nZXR0ZXJzWyJ0YWdzQmFyL3Zpc2l0ZWRSb3V0ZXMiXTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdGhpcy4kc3RvcmUuZ2V0dGVyc1sidGFnc0Jhci92aXNpdGVkUm91dGVzIl0uZmlsdGVyKGl0ZW0gPT4gaXRlbS5tZXRhLnRpdGxlICE9PSAi57uP6JCl5qaC5Ya1Iik7CiAgICAgIH0KICAgIH0sCgogICAgdGFic0JhclN0eWxlKCkgewogICAgICByZXR1cm4gdGFic0JhclN0eWxlOwogICAgfQoKICB9LAogIHdhdGNoOiB7CiAgICAkcm91dGU6IHsKICAgICAgaGFuZGxlcihyb3V0ZSkgewogICAgICAgIHRoaXMuYWRkVGFicyhyb3V0ZSk7CiAgICAgIH0KCiAgICB9CiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuaW5pdEFmZml4VGFncyh0aGlzLnJvdXRlcyk7CiAgICB0aGlzLmFkZFRhYnModGhpcy4kcm91dGUpOwogIH0sCgogIG1ldGhvZHM6IHsgLi4ubWFwQWN0aW9ucyh7CiAgICAgIGFkZFZpc2l0ZWRSb3V0ZTogInRhZ3NCYXIvYWRkVmlzaXRlZFJvdXRlIiwKICAgICAgZGVsVmlzaXRlZFJvdXRlOiAidGFnc0Jhci9kZWxWaXNpdGVkUm91dGUiLAogICAgICBkZWxPdGhlcnNWaXNpdGVkUm91dGVzOiAidGFnc0Jhci9kZWxPdGhlcnNWaXNpdGVkUm91dGVzIiwKICAgICAgZGVsTGVmdFZpc2l0ZWRSb3V0ZXM6ICJ0YWdzQmFyL2RlbExlZnRWaXNpdGVkUm91dGVzIiwKICAgICAgZGVsUmlnaHRWaXNpdGVkUm91dGVzOiAidGFnc0Jhci9kZWxSaWdodFZpc2l0ZWRSb3V0ZXMiLAogICAgICBkZWxBbGxWaXNpdGVkUm91dGVzOiAidGFnc0Jhci9kZWxBbGxWaXNpdGVkUm91dGVzIgogICAgfSksCgogICAgaGFuZGxlVmlzaWJsZUNoYW5nZSh2YWwpIHsKICAgICAgdGhpcy5hY3RpdmUgPSB2YWw7CiAgICB9LAoKICAgIGluaXRBZmZpeFRhZ3Mocm91dGVzKSB7CiAgICAgIHJvdXRlcy5mb3JFYWNoKHJvdXRlID0+IHsKICAgICAgICBpZiAocm91dGUubWV0YSAmJiByb3V0ZS5tZXRhLmFmZml4KSB0aGlzLmFkZFRhYnMocm91dGUpOwogICAgICAgIGlmIChyb3V0ZS5jaGlsZHJlbikgdGhpcy5pbml0QWZmaXhUYWdzKHJvdXRlLmNoaWxkcmVuKTsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKgogICAgICog5re75Yqg5qCH562+6aG1CiAgICAgKiBAcGFyYW0gdGFnIHJvdXRlCiAgICAgKiBAcGFyYW0gaW5pdCDmmK/lkKbmmK/ku45yb3V0ZXLojrflj5bot6/nlLEKICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fQogICAgICovCiAgICBhc3luYyBhZGRUYWJzKHRhZywgaW5pdCA9IGZhbHNlKSB7CiAgICAgIGxldCBwYXJlbnRSZW1peEljb24gPSAiIjsKICAgICAgaWYgKHRhZy5tYXRjaGVkICYmIHRhZy5tYXRjaGVkLmxlbmd0aCA+IDEpIHBhcmVudFJlbWl4SWNvbiA9IHRhZy5tYXRjaGVkWzBdLm1ldGEucmVtaXhJY29uIHx8ICIiOwoKICAgICAgaWYgKHRhZy5uYW1lICYmIHRhZy5tZXRhICYmIHRhZy5tZXRhLnRhZ0hpZGRlbiAhPT0gdHJ1ZSkgewogICAgICAgIGNvbnN0IHBhdGggPSB0aGlzLmhhbmRsZVJvdXRlUmF3UGF0aCh0YWcpOwogICAgICAgIGF3YWl0IHRoaXMuYWRkVmlzaXRlZFJvdXRlKHsKICAgICAgICAgIHBhdGg6IHBhdGgsCiAgICAgICAgICBxdWVyeTogdGFnLnF1ZXJ5LAogICAgICAgICAgcGFyYW1zOiB0YWcucGFyYW1zLAogICAgICAgICAgbmFtZTogdGFnLm5hbWUsCiAgICAgICAgICBtYXRjaGVkOiBpbml0ID8gW3RhZy5uYW1lXSA6ICh0YWcubWF0Y2hlZCB8fCBbXSkubWFwKGl0ZW0gPT4gaXRlbS5jb21wb25lbnRzLmRlZmF1bHQubmFtZSksCiAgICAgICAgICBwYXJlbnRSZW1peEljb24sCiAgICAgICAgICBtZXRhOiB7IC4uLnRhZy5tZXRhCiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy50YWJBY3RpdmUgPSBwYXRoOwogICAgICB9CiAgICB9LAoKICAgIGhhbmRsZVJvdXRlUmF3UGF0aChyb3V0ZSkgewogICAgICByZXR1cm4gcm91dGUucGF0aDsgLy8gcmV0dXJuIHJvdXRlLm1hdGNoZWQKICAgICAgLy8gICA/IHJvdXRlLm1hdGNoZWRbcm91dGUubWF0Y2hlZC5sZW5ndGggLSAxXS5wYXRoCiAgICAgIC8vICAgOiByb3V0ZS5wYXRoOwogICAgfSwKCiAgICBpc0FjdGl2ZShwYXRoKSB7CiAgICAgIHJldHVybiBwYXRoID09PSB0aGlzLmhhbmRsZVJvdXRlUmF3UGF0aCh0aGlzLiRyb3V0ZSk7CiAgICB9LAoKICAgIGlzQWZmaXgodGFnKSB7CiAgICAgIHJldHVybiB0YWcubWV0YSAmJiB0YWcubWV0YS5hZmZpeDsKICAgIH0sCgogICAgaGFuZGxlVGFiQ2xpY2sodGFiKSB7CiAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSh0YWIubmFtZSkpIHRoaXMuJHJvdXRlci5wdXNoKHRoaXMudmlzaXRlZFJvdXRlc1t0YWIuaW5kZXhdKTsKICAgIH0sCgogICAgYXN5bmMgaGFuZGxlVGFiUmVtb3ZlKGZ1bGxQYXRoKSB7CiAgICAgIGF3YWl0IHRoaXMuZGVsVmlzaXRlZFJvdXRlKGZ1bGxQYXRoKTsKICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoZnVsbFBhdGgpKSB0aGlzLnRvTGFzdFRhYigpOwogICAgfSwKCiAgICBoYW5kbGVDb21tYW5kKGNvbW1hbmQpIHsKICAgICAgc3dpdGNoIChjb21tYW5kKSB7CiAgICAgICAgY2FzZSAiY2xvc2VPdGhlcnNUYWdzIjoKICAgICAgICAgIHRoaXMuY2xvc2VPdGhlcnNUYWdzKCk7CiAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAiY2xvc2VMZWZ0VGFncyI6CiAgICAgICAgICB0aGlzLmNsb3NlTGVmdFRhZ3MoKTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlICJjbG9zZVJpZ2h0VGFncyI6CiAgICAgICAgICB0aGlzLmNsb3NlUmlnaHRUYWdzKCk7CiAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAiY2xvc2VBbGxUYWdzIjoKICAgICAgICAgIHRoaXMuY2xvc2VBbGxUYWdzKCk7CiAgICAgICAgICBicmVhazsKICAgICAgfQogICAgfSwKCiAgICBhc3luYyBjbG9zZU90aGVyc1RhZ3MoKSB7CiAgICAgIGF3YWl0IHRoaXMuZGVsT3RoZXJzVmlzaXRlZFJvdXRlcyh0aGlzLmhhbmRsZVJvdXRlUmF3UGF0aCh0aGlzLiRyb3V0ZSkpOwogICAgfSwKCiAgICBhc3luYyBjbG9zZUxlZnRUYWdzKCkgewogICAgICBhd2FpdCB0aGlzLmRlbExlZnRWaXNpdGVkUm91dGVzKHRoaXMuaGFuZGxlUm91dGVSYXdQYXRoKHRoaXMuJHJvdXRlKSk7CiAgICB9LAoKICAgIGFzeW5jIGNsb3NlUmlnaHRUYWdzKCkgewogICAgICBhd2FpdCB0aGlzLmRlbFJpZ2h0VmlzaXRlZFJvdXRlcyh0aGlzLmhhbmRsZVJvdXRlUmF3UGF0aCh0aGlzLiRyb3V0ZSkpOwogICAgfSwKCiAgICBhc3luYyBjbG9zZUFsbFRhZ3MoKSB7CiAgICAgIGF3YWl0IHRoaXMuZGVsQWxsVmlzaXRlZFJvdXRlcygpOwogICAgICBpZiAoIXRoaXMuYWZmaXhUYWdzLnNvbWUodGFnID0+IHRoaXMuaXNBY3RpdmUodGhpcy5oYW5kbGVSb3V0ZVJhd1BhdGgodGFnKSkpKSB0aGlzLnRvTGFzdFRhYigpOwogICAgfSwKCiAgICB0b0xhc3RUYWIoKSB7CiAgICAgIGNvbnN0IGxhdGVzdFZpZXcgPSB0aGlzLnZpc2l0ZWRSb3V0ZXMuc2xpY2UoLTEpWzBdOwogICAgICBpZiAobGF0ZXN0VmlldykgdGhpcy4kcm91dGVyLnB1c2gobGF0ZXN0Vmlldyk7ZWxzZSB0aGlzLiRyb3V0ZXIucHVzaCgiLyIpOwogICAgfQoKICB9Cn07"},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2EA;AACA;AACA;EACAA,eADA;EAEAC;IACAC;MACAC,YADA;MAEAC;IAFA;EADA,CAFA;;EAQAC;IACA;MACAC,aADA;MAEAC,aAFA;MAGAC,cAHA;MAIAC;IAJA;EAMA,CAfA;;EAgBAC,YACA;MACAC,8BADA;MAEA;MACAC;IAHA,EADA;;IAMAC;MACA;QACA;MACA,CAFA,MAEA;QACA,2DACAC,kCADA;MAGA;IACA,CAdA;;IAeAC;MACA;IACA;;EAjBA,CAhBA;EAmCAC;IACAC;MACAC;QACA;MACA;;IAHA;EADA,CAnCA;;EA0CAV;IACA;IACA;EACA,CA7CA;;EA8CAW,WACA;MACAC,0CADA;MAEAC,0CAFA;MAGAC,wDAHA;MAIAC,oDAJA;MAKAC,sDALA;MAMAC;IANA,EADA;;IASAC;MACA;IACA,CAXA;;IAYAC;MACAf;QACA;QACA;MACA,CAHA;IAIA,CAjBA;;IAkBA;AACA;AACA;AACA;AACA;AACA;IACA;MACA;MACA,2CACAgB;;MACA;QACA;QACA;UACAC,UADA;UAEAC,gBAFA;UAGAC,kBAHA;UAIA/B,cAJA;UAKAgC,gBACA,UADA,GAEA,6DAPA;UAQAJ,eARA;UASAK;UAAA;QATA;QAWA;MACA;IACA,CA3CA;;IA4CAC;MACA,kBADA,CAEA;MACA;MACA;IACA,CAjDA;;IAkDAC;MACA;IACA,CApDA;;IAqDAC;MACA;IACA,CAvDA;;IAwDAC;MACA,8BACA;IACA,CA3DA;;IA4DA;MACA;MACA;IACA,CA/DA;;IAgEAC;MACA;QACA;UACA;UACA;;QACA;UACA;UACA;;QACA;UACA;UACA;;QACA;UACA;UACA;MAZA;IAcA,CA/EA;;IAgFA;MACA;IACA,CAlFA;;IAmFA;MACA;IACA,CArFA;;IAsFA;MACA;IACA,CAxFA;;IAyFA;MACA;MACA,IACA,4BACA,2CADA,CADA,EAKA;IACA,CAjGA;;IAkGAC;MACA;MACA,mDACA;IACA;;EAtGA;AA9CA","names":["name","props","layout","type","default","data","affixTags","tabActive","created","active","computed","systemType","routes","visitedRoutes","item","tabsBarStyle","watch","$route","handler","methods","addVisitedRoute","delVisitedRoute","delOthersVisitedRoutes","delLeftVisitedRoutes","delRightVisitedRoutes","delAllVisitedRoutes","handleVisibleChange","initAffixTags","parentRemixIcon","path","query","params","matched","meta","handleRouteRawPath","isActive","isAffix","handleTabClick","handleCommand","toLastTab"],"sourceRoot":"src/vab/components/TagsBar","sources":["index.vue"],"sourcesContent":["<template>\n <div class=\"tabs-bar-container\">\n <fold v-if=\"layout === 'common'\"></fold>\n <el-tabs\n v-model=\"tabActive\"\n type=\"card\"\n class=\"tabs-content\"\n :class=\"{\n ['tabs-content-' + tabsBarStyle]: true,\n }\"\n @tab-click=\"handleTabClick\"\n @tab-remove=\"handleTabRemove\"\n >\n <el-tab-pane\n v-for=\"item in visitedRoutes\"\n :key=\"item.path\"\n :closable=\"!isAffix(item)\"\n :name=\"item.path\"\n >\n <span slot=\"label\">\n <vab-remix-icon\n v-if=\"item.meta && item.meta.remixIcon\"\n :is-custom-svg=\"item.meta.isCustomSvgIcon\"\n :icon-class=\"item.meta.remixIcon\"\n />\n <!-- 如果没有图标那么取第二级的图标 -->\n <vab-remix-icon v-else :icon-class=\"item.parentRemixIcon\" />\n <span v-if=\"item.meta.title === '商户采购单'\">\n {{ systemType === 3 ? \"商户入库单\" : item.meta.title }}\n </span>\n <span v-else>{{ item.meta.title }}</span>\n </span>\n <!-- <span v-else slot=\"label\">-->\n <!-- {{ translateTitle(item.meta.title) }}-->\n <!-- </span>-->\n </el-tab-pane>\n </el-tabs>\n\n <el-dropdown\n @command=\"handleCommand\"\n @visible-chactiveange=\"handleVisibleChange\"\n >\n <span class=\"more\">\n <!-- {{ translateTitle(\"更多\") }}-->\n <!-- <vab-remix-icon\n icon-class=\"vab-tabs-more-icon\"\n class=\"vab-dropdown\"\n :class=\"{ 'vab-dropdown-active': active }\"\n />-->\n\n <i style=\"font-size: 17px\" class=\"el-icon-menu\"></i>\n </span>\n <el-dropdown-menu slot=\"dropdown\" class=\"tags-more\">\n <el-dropdown-item command=\"closeOthersTags\">\n <vab-remix-icon icon-class=\"close-line\" />\n 关闭其他\n </el-dropdown-item>\n <el-dropdown-item command=\"closeLeftTags\">\n <vab-remix-icon icon-class=\"arrow-left-line\" />\n 关闭左侧\n </el-dropdown-item>\n <el-dropdown-item command=\"closeRightTags\">\n <vab-remix-icon icon-class=\"arrow-right-line\" />\n 关闭右侧\n </el-dropdown-item>\n <el-dropdown-item command=\"closeAllTags\">\n <vab-remix-icon icon-class=\"close-line\" />\n 关闭全部\n </el-dropdown-item>\n </el-dropdown-menu>\n </el-dropdown>\n </div>\n</template>\n\n<script>\n import { mapActions, mapGetters } from \"vuex\";\n import { tabsBarStyle } from \"@/config/settings\";\n export default {\n name: \"TagsBar\",\n props: {\n layout: {\n type: String,\n default: \"\",\n },\n },\n data() {\n return {\n affixTags: [],\n tabActive: \"\",\n created: false,\n active: false,\n };\n },\n computed: {\n ...mapGetters({\n systemType: \"MUser/systemType\",\n // visitedRoutes: \"tagsBar/visitedRoutes\",\n routes: \"routes/routes\",\n }),\n visitedRoutes() {\n if (this.systemType === 1) {\n return this.$store.getters[\"tagsBar/visitedRoutes\"];\n } else {\n return this.$store.getters[\"tagsBar/visitedRoutes\"].filter(\n (item) => item.meta.title !== \"经营概况\"\n );\n }\n },\n tabsBarStyle() {\n return tabsBarStyle;\n },\n },\n watch: {\n $route: {\n handler(route) {\n this.addTabs(route);\n },\n },\n },\n created() {\n this.initAffixTags(this.routes);\n this.addTabs(this.$route);\n },\n methods: {\n ...mapActions({\n addVisitedRoute: \"tagsBar/addVisitedRoute\",\n delVisitedRoute: \"tagsBar/delVisitedRoute\",\n delOthersVisitedRoutes: \"tagsBar/delOthersVisitedRoutes\",\n delLeftVisitedRoutes: \"tagsBar/delLeftVisitedRoutes\",\n delRightVisitedRoutes: \"tagsBar/delRightVisitedRoutes\",\n delAllVisitedRoutes: \"tagsBar/delAllVisitedRoutes\",\n }),\n handleVisibleChange(val) {\n this.active = val;\n },\n initAffixTags(routes) {\n routes.forEach((route) => {\n if (route.meta && route.meta.affix) this.addTabs(route);\n if (route.children) this.initAffixTags(route.children);\n });\n },\n /**\n * 添加标签页\n * @param tag route\n * @param init 是否是从router获取路由\n * @returns {Promise<void>}\n */\n async addTabs(tag, init = false) {\n let parentRemixIcon = \"\";\n if (tag.matched && tag.matched.length > 1)\n parentRemixIcon = tag.matched[0].meta.remixIcon || \"\";\n if (tag.name && tag.meta && tag.meta.tagHidden !== true) {\n const path = this.handleRouteRawPath(tag);\n await this.addVisitedRoute({\n path: path,\n query: tag.query,\n params: tag.params,\n name: tag.name,\n matched: init\n ? [tag.name]\n : (tag.matched || []).map((item) => item.components.default.name),\n parentRemixIcon,\n meta: { ...tag.meta },\n });\n this.tabActive = path;\n }\n },\n handleRouteRawPath(route) {\n return route.path;\n // return route.matched\n // ? route.matched[route.matched.length - 1].path\n // : route.path;\n },\n isActive(path) {\n return path === this.handleRouteRawPath(this.$route);\n },\n isAffix(tag) {\n return tag.meta && tag.meta.affix;\n },\n handleTabClick(tab) {\n if (!this.isActive(tab.name))\n this.$router.push(this.visitedRoutes[tab.index]);\n },\n async handleTabRemove(fullPath) {\n await this.delVisitedRoute(fullPath);\n if (this.isActive(fullPath)) this.toLastTab();\n },\n handleCommand(command) {\n switch (command) {\n case \"closeOthersTags\":\n this.closeOthersTags();\n break;\n case \"closeLeftTags\":\n this.closeLeftTags();\n break;\n case \"closeRightTags\":\n this.closeRightTags();\n break;\n case \"closeAllTags\":\n this.closeAllTags();\n break;\n }\n },\n async closeOthersTags() {\n await this.delOthersVisitedRoutes(this.handleRouteRawPath(this.$route));\n },\n async closeLeftTags() {\n await this.delLeftVisitedRoutes(this.handleRouteRawPath(this.$route));\n },\n async closeRightTags() {\n await this.delRightVisitedRoutes(this.handleRouteRawPath(this.$route));\n },\n async closeAllTags() {\n await this.delAllVisitedRoutes();\n if (\n !this.affixTags.some((tag) =>\n this.isActive(this.handleRouteRawPath(tag))\n )\n )\n this.toLastTab();\n },\n toLastTab() {\n const latestView = this.visitedRoutes.slice(-1)[0];\n if (latestView) this.$router.push(latestView);\n else this.$router.push(\"/\");\n },\n },\n };\n</script>\n\n<style lang=\"scss\" scoped>\n .tabs-bar-container {\n width: 100%;\n /*------------*/\n position: relative;\n box-sizing: border-box;\n display: flex;\n align-content: center;\n align-items: center;\n justify-content: space-between;\n height: $base-tags-bar-height;\n /*padding-right: $base-padding;\n padding-left: $base-padding;*/\n user-select: none;\n background: $base-color-white;\n /*border-top: 1px solid #f6f6f6;*/\n\n ::v-deep {\n .fold-unfold {\n margin-right: $base-padding;\n }\n }\n\n .tabs-content {\n width: calc(100% - 60px);\n\n &-card {\n height: $base-tag-item-height;\n\n ::v-deep {\n .el-tabs__nav-next,\n .el-tabs__nav-prev {\n height: $base-tag-item-height;\n line-height: $base-tag-item-height;\n transform: translateY(10px);\n }\n\n .el-tabs__header {\n border-bottom: 0;\n\n .el-tabs__nav {\n border: 0;\n }\n\n .el-tabs__item {\n box-sizing: border-box;\n height: $base-tag-item-height;\n margin-right: 5px;\n line-height: $base-tag-item-height;\n border: 1px solid $base-border-color;\n border-radius: $base-border-radius;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n\n &.is-active {\n color: $base-color-white;\n background: $base-color-blue;\n border: 1px solid $base-color-blue;\n }\n }\n }\n }\n }\n &-smart {\n height: $base-tag-item-height;\n ::v-deep {\n .el-tabs__nav-next,\n .el-tabs__nav-prev {\n height: $base-tag-item-height;\n line-height: $base-tag-item-height;\n }\n\n .el-tabs__header {\n border-bottom: 0;\n\n .el-tabs__nav {\n border: 0;\n }\n\n .el-tabs__item {\n height: $base-tag-item-height;\n margin-right: 5px;\n line-height: $base-tag-item-height;\n border: 0;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n &.is-active {\n background: rgba($base-color-blue, 0.1);\n &:after {\n width: 100%;\n }\n }\n &:after {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 0;\n height: 2px;\n content: \"\";\n background-color: $base-color-blue;\n }\n &:hover {\n background: rgba($base-color-blue, 0.1);\n &:after {\n width: 100%;\n }\n }\n }\n }\n }\n }\n &-smooth {\n height: $base-tag-item-height + 4;\n ::v-deep {\n .el-tabs__nav-next,\n .el-tabs__nav-prev {\n height: $base-tag-item-height + 4;\n line-height: $base-tag-item-height + 4;\n transform: translateY(10px);\n }\n\n .el-tabs__header {\n border-bottom: 0;\n\n .el-tabs__nav {\n border: 0;\n }\n\n .el-tabs__item {\n height: $base-tag-item-height + 4;\n margin-top: ($base-tags-bar-height - $base-tag-item-height - 4)/2;\n margin-right: -18px;\n line-height: $base-tag-item-height + 4;\n border: 0;\n transition: padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1) !important;\n &.is-active {\n color: $base-color-blue;\n background: rgba($base-color-blue, 0.1);\n mask: url(\"~@/assets/tabs_images/vab-tab.png\");\n\n mask-size: 100% 100%;\n &:hover {\n color: $base-color-blue;\n background: rgba($base-color-blue, 0.1);\n mask: url(\"~@/assets/tabs_images/vab-tab.png\");\n\n mask-size: 100% 100%;\n }\n }\n &:hover {\n z-index: $base-z-index;\n color: $base-color-black;\n background: #dee1e6;\n mask: url(\"~@/assets/tabs_images/vab-tab.png\");\n\n mask-size: 100% 100%;\n }\n }\n }\n }\n }\n }\n\n .more {\n display: inline-block;\n width: 50px;\n height: 55px;\n line-height: 55px;\n cursor: pointer;\n text-align: center;\n &:hover {\n color: $base-color-blue;\n }\n }\n }\n</style>\n"]}]}