1d01d9ccdd9b02adc41c81fbe0117103.json 7.5 KB

1
  1. {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/views/common/layout/Tabs.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/views/common/layout/Tabs.vue","mtime":1616225480000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICJFbGVUYWJzIiwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgYWN0aXZlOiBudWxsICAgICAgLy8g5b2T5YmN6YCJ5Lit6aG1562+DQogICAgfQ0KICB9LA0KICBjb21wdXRlZDogew0KICAgIHRhYnM6IHsNCiAgICAgIGdldCgpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMuJHN0b3JlLnN0YXRlLnRoZW1lLnRhYnM7DQogICAgICB9LA0KICAgICAgc2V0KCkgew0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgbW91bnRlZCgpIHsNCiAgICB0aGlzLnJvdXRlQ2hhbmdlKCk7DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICAvKiDlpITnkIbot6/nlLHliIfmjaIgKi8NCiAgICByb3V0ZUNoYW5nZSgpIHsNCiAgICAgIGxldCBjdXJyZW50ID0gdGhpcy4kcm91dGUsIHBhdGggPSBjdXJyZW50LmZ1bGxQYXRoLCB0aXRsZSA9IChjdXJyZW50Lm1ldGEgJiYgY3VycmVudC5tZXRhLnRpdGxlKSB8fCAnJzsNCiAgICAgIGlmIChwYXRoID09PSAnLycgfHwgdGhpcy5pc0hvbWUoKSkgew0KICAgICAgICB0aGlzLmFjdGl2ZSA9ICcvJzsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCd0aGVtZS90YWJBZGQnLCB7cGF0aDogcGF0aCwgdGl0bGU6IHRpdGxlfSk7DQogICAgICAgIHRoaXMuYWN0aXZlID0gcGF0aDsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qIOWIh+aNonRhYiAqLw0KICAgIHRhYkNoYW5nZSh0YWIpIHsNCiAgICAgIGlmICh0YWIubmFtZSA9PT0gJy8nICYmIHRoaXMuaXNIb21lKCkpIHJldHVybjsNCiAgICAgIGlmICh0aGlzLiRyb3V0ZS5mdWxsUGF0aCAhPT0gdGFiLm5hbWUpIHRoaXMuJHJvdXRlci5wdXNoKHRhYi5uYW1lKTsNCiAgICB9LA0KICAgIC8qIOWIoOmZpHRhYiAqLw0KICAgIHRhYlJlbW92ZShuYW1lKSB7DQogICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGhlbWUvdGFiUmVtb3ZlJywgbmFtZSkudGhlbihsYXN0ID0+IHsNCiAgICAgICAgaWYgKHRoaXMuYWN0aXZlID09PSBuYW1lKSB0aGlzLiRyb3V0ZXIucHVzaChsYXN0ID09PSAtMSA/ICcvJyA6IHRoaXMudGFic1tsYXN0XS5wYXRoKTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLyog5LiL5ouJ6I+c5Y2V54K55Ye75LqL5Lu2ICovDQogICAgb25Ecm9wQ2xpY2soY29tbWFuZCkgew0KICAgICAgaWYgKGNvbW1hbmQgPT09ICdvdGhlcicpIHsgIC8vIOWFs+mXreWFtuS7lg0KICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGhlbWUvdGFiUmVtb3ZlT3RoZXInLCB0aGlzLmFjdGl2ZSk7DQogICAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT09ICdyaWdodCcpIHsgIC8vIOWFs+mXreWPs+S+pw0KICAgICAgICBpZiAodGhpcy5hY3RpdmUgPT09ICcvJykgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3RoZW1lL3RhYlJlbW92ZUFsbCcpOw0KICAgICAgICBlbHNlIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCd0aGVtZS90YWJSZW1vdmVSaWdodCcsIHRoaXMuYWN0aXZlKTsNCiAgICAgIH0gZWxzZSBpZiAoY29tbWFuZCA9PT0gJ2xlZnQnKSB7ICAvLyDlhbPpl63lt6bkvqcNCiAgICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3RoZW1lL3RhYlJlbW92ZUxlZnQnLCB0aGlzLmFjdGl2ZSk7DQogICAgICB9IGVsc2UgaWYgKGNvbW1hbmQgPT09ICdhbGwnKSB7ICAvLyDlhbPpl63lhajpg6gNCiAgICAgICAgdGhpcy4kc3RvcmUuZGlzcGF0Y2goJ3RoZW1lL3RhYlJlbW92ZUFsbCcpOw0KICAgICAgICBpZiAodGhpcy5hY3RpdmUgIT09ICcvJykgdGhpcy4kcm91dGVyLnB1c2goJy8nKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIC8qIOWIpOaWreaYr+WQpuaYr+S4u+mhtSAqLw0KICAgIGlzSG9tZSgpIHsNCiAgICAgIGxldCBjdXJyZW50ID0gdGhpcy4kcm91dGUsIG1hdGNoZWQgPSBjdXJyZW50Lm1hdGNoZWQ7DQogICAgICByZXR1cm4gbWF0Y2hlZCAmJiBtYXRjaGVkLmxlbmd0aCAmJiAhbWF0Y2hlZFswXS5wYXRoICYmIG1hdGNoZWRbMF0ucmVkaXJlY3QgPT09IGN1cnJlbnQucGF0aDsNCiAgICB9DQogIH0sDQogIHdhdGNoOiB7DQogICAgJHJvdXRlKCkgew0KICAgICAgdGhpcy5yb3V0ZUNoYW5nZSgpOw0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["Tabs.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"Tabs.vue","sourceRoot":"src/views/common/layout","sourcesContent":["<!-- 标签页 -->\r\n<template>\r\n <div class=\"ele-admin-tabs\">\r\n <el-tabs v-model=\"active\" @tab-click=\"tabChange\" @tab-remove=\"tabRemove\">\r\n <el-tab-pane name=\"/\" :label=\"($setting&&$setting.homeTitle)||'主页'\"/>\r\n <el-tab-pane v-for=\"(d,i) in tabs\" :key=\"i+d.path\" :name=\"d.path\" :label=\"d.title\" :closable=\"true\"/>\r\n </el-tabs>\r\n <el-dropdown class=\"ele-tabs-drop\" @command=\"onDropClick\">\r\n <i class=\"el-icon-arrow-down\"></i>\r\n <el-dropdown-menu slot=\"dropdown\">\r\n <el-dropdown-item command=\"other\" icon=\"el-icon-close\">关闭其他</el-dropdown-item>\r\n <el-dropdown-item command=\"right\" icon=\"el-icon-right\">关闭右侧</el-dropdown-item>\r\n <el-dropdown-item command=\"left\" icon=\"el-icon-back\">关闭左侧</el-dropdown-item>\r\n <el-dropdown-item command=\"all\" icon=\"el-icon-circle-close\">关闭全部</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"EleTabs\",\r\n data() {\r\n return {\r\n active: null // 当前选中页签\r\n }\r\n },\r\n computed: {\r\n tabs: {\r\n get() {\r\n return this.$store.state.theme.tabs;\r\n },\r\n set() {\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.routeChange();\r\n },\r\n methods: {\r\n /* 处理路由切换 */\r\n routeChange() {\r\n let current = this.$route, path = current.fullPath, title = (current.meta && current.meta.title) || '';\r\n if (path === '/' || this.isHome()) {\r\n this.active = '/';\r\n } else {\r\n this.$store.dispatch('theme/tabAdd', {path: path, title: title});\r\n this.active = path;\r\n }\r\n },\r\n /* 切换tab */\r\n tabChange(tab) {\r\n if (tab.name === '/' && this.isHome()) return;\r\n if (this.$route.fullPath !== tab.name) this.$router.push(tab.name);\r\n },\r\n /* 删除tab */\r\n tabRemove(name) {\r\n this.$store.dispatch('theme/tabRemove', name).then(last => {\r\n if (this.active === name) this.$router.push(last === -1 ? '/' : this.tabs[last].path);\r\n });\r\n },\r\n /* 下拉菜单点击事件 */\r\n onDropClick(command) {\r\n if (command === 'other') { // 关闭其他\r\n this.$store.dispatch('theme/tabRemoveOther', this.active);\r\n } else if (command === 'right') { // 关闭右侧\r\n if (this.active === '/') this.$store.dispatch('theme/tabRemoveAll');\r\n else this.$store.dispatch('theme/tabRemoveRight', this.active);\r\n } else if (command === 'left') { // 关闭左侧\r\n this.$store.dispatch('theme/tabRemoveLeft', this.active);\r\n } else if (command === 'all') { // 关闭全部\r\n this.$store.dispatch('theme/tabRemoveAll');\r\n if (this.active !== '/') this.$router.push('/');\r\n }\r\n },\r\n /* 判断是否是主页 */\r\n isHome() {\r\n let current = this.$route, matched = current.matched;\r\n return matched && matched.length && !matched[0].path && matched[0].redirect === current.path;\r\n }\r\n },\r\n watch: {\r\n $route() {\r\n this.routeChange();\r\n }\r\n }\r\n}\r\n</script>\r\n"]}]}