f5f6bebdc8297fd429e07357616b4e87.json 14 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\layout\\navBars\\breadcrumb\\breadcrumb.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\layout\\navBars\\breadcrumb\\breadcrumb.vue","mtime":1761614938998},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgeyBMb2NhbCB9IGZyb20gJ0AvdXRpbHMvc3RvcmFnZS5qcyc7DQppbXBvcnQgeyBSIH0gZnJvbSAnQC9saWJzL3V0aWwnOw0KaW1wb3J0IHsgZ2V0TWVudW9wZW4gfSBmcm9tICdAL2xpYnMvdXRpbCc7DQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ2xheW91dEJyZWFkY3J1bWInLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBicmVhZGNydW1iTGlzdDogW10sDQogICAgICByb3V0ZVNwbGl0OiBbXSwNCiAgICAgIHJvdXRlU3BsaXRGaXJzdDogJycsDQogICAgICByb3V0ZVNwbGl0SW5kZXg6IDEsDQogICAgfTsNCiAgfSwNCiAgY29tcHV0ZWQ6IHsNCiAgICBicmVhZENydW1iTGlzdCgpIHsNCiAgICAgIGxldCBtZW51TGlzdCA9IHRoaXMuJHN0b3JlLnN0YXRlLm1lbnVzLm1lbnVzTmFtZTsNCiAgICAgIGxldCBvcGVuTWVudXMgPSBnZXRNZW51b3Blbih0aGlzLiRyb3V0ZSwgbWVudUxpc3QpOw0KICAgICAgbGV0IGFsbE1lbnVMaXN0ID0gUihtZW51TGlzdCwgW10pOw0KICAgICAgbGV0IHNlbGVjdE1lbnUgPSBbXTsNCiAgICAgIGlmIChhbGxNZW51TGlzdC5sZW5ndGggPiAwKSB7DQogICAgICAgIG9wZW5NZW51cy5mb3JFYWNoKChpKSA9PiB7DQogICAgICAgICAgYWxsTWVudUxpc3QuZm9yRWFjaCgoYSkgPT4gew0KICAgICAgICAgICAgaWYgKGkgPT09IGEucGF0aCkgew0KICAgICAgICAgICAgICBzZWxlY3RNZW51LnB1c2goYSk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSk7DQogICAgICAgIH0pOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIHNlbGVjdE1lbnU7DQogICAgfSwNCiAgICBjcnVtYlBhc3QoKSB7DQogICAgICBsZXQgdGhhdCA9IHRoaXM7DQogICAgICBsZXQgbWVudUxpc3QgPSB0aGF0LiRzdG9yZS5zdGF0ZS5tZW51cy5tZW51c05hbWU7DQogICAgICBsZXQgYWxsTWVudUxpc3QgPSBSKG1lbnVMaXN0LCBbXSk7DQogICAgICBsZXQgc2VsZWN0TWVudSA9IFtdOw0KICAgICAgaWYgKGFsbE1lbnVMaXN0Lmxlbmd0aCA+IDApIHsNCiAgICAgICAgYWxsTWVudUxpc3QuZm9yRWFjaCgoYSkgPT4gew0KICAgICAgICAgIGlmICh0aGF0LiRyb3V0ZS5wYXRoID09PSBhLnBhdGgpIHsNCiAgICAgICAgICAgIHNlbGVjdE1lbnUucHVzaChhKTsNCiAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgfQ0KICAgICAgcmV0dXJuIHNlbGVjdE1lbnU7DQogICAgfSwNCiAgICAvLyDojrflj5bluIPlsYDphY3nva7kv6Hmga8NCiAgICBnZXRUaGVtZUNvbmZpZygpIHsNCiAgICAgIHJldHVybiB0aGlzLiRzdG9yZS5zdGF0ZS50aGVtZUNvbmZpZy50aGVtZUNvbmZpZzsNCiAgICB9LA0KICAgIC8vIOWKqOaAgeiuvue9rue7j+WFuOOAgeaoquWQkeW4g+WxgOS4jeaYvuekug0KICAgIGlzU2hvd0JyZWFkY3J1bWIoKSB7DQogICAgICBjb25zdCB7IGxheW91dCwgaXNCcmVhZGNydW1iIH0gPSB0aGlzLiRzdG9yZS5zdGF0ZS50aGVtZUNvbmZpZy50aGVtZUNvbmZpZzsNCiAgICAgIGlmIChsYXlvdXQgPT09ICd0cmFuc3ZlcnNlJyB8fCBsYXlvdXQgPT09ICdjbGFzc2ljJykgew0KICAgICAgICByZXR1cm4gJ25vbmUnOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgcmV0dXJuIGlzQnJlYWRjcnVtYiA/ICcnIDogJ25vbmUnOw0KICAgICAgfQ0KICAgIH0sDQogICAgaXNTaG93Y3J1bWIoKSB7DQogICAgICBjb25zdCB7IGxheW91dCB9ID0gdGhpcy4kc3RvcmUuc3RhdGUudGhlbWVDb25maWcudGhlbWVDb25maWc7DQogICAgICBpZiAobGF5b3V0ID09PSAndHJhbnN2ZXJzZScgfHwgbGF5b3V0ID09PSAnY2xhc3NpYycpIHsNCiAgICAgICAgcmV0dXJuIGZhbHNlOw0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgcmV0dXJuIHRydWU7DQogICAgICB9DQogICAgfSwNCiAgICBjb2xsYXBzZVNob3coKSB7DQogICAgICByZXR1cm4gWydkZWZhdWx0cycsICdjb2x1bW5zJ10uaW5jbHVkZXModGhpcy4kc3RvcmUuc3RhdGUudGhlbWVDb25maWcudGhlbWVDb25maWcubGF5b3V0KTsNCiAgICB9LA0KICB9LA0KICBtb3VudGVkKCkgew0KICAgIHRoaXMuaW5pdFJvdXRlU3BsaXQodGhpcy4kcm91dGUucGF0aCk7DQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICAvLyBicmVhZGNydW1iIOW9k+WJjemhueeCueWHu+aXtg0KICAgIG9uQnJlYWRjcnVtYkNsaWNrKHYpIHsNCiAgICAgIGNvbnN0IHsgcmVkaXJlY3QsIHBhdGggfSA9IHY7DQogICAgICBpZiAocmVkaXJlY3QpIHRoaXMuJHJvdXRlci5wdXNoKHJlZGlyZWN0KTsNCiAgICAgIGVsc2UgdGhpcy4kcm91dGVyLnB1c2gocGF0aCk7DQogICAgfSwNCiAgICAvLyBicmVhZGNydW1iIGljb24g54K55Ye76I+c5Y2V5bGV5byA5LiO5pS26LW3DQogICAgb25UaGVtZUNvbmZpZ0NoYW5nZSgpIHsNCiAgICAgIGlmICgNCiAgICAgICAgdGhpcy4kc3RvcmUuc3RhdGUudGhlbWVDb25maWcudGhlbWVDb25maWcubGF5b3V0ID09ICdjb2x1bW5zJyAmJg0KICAgICAgICAhdGhpcy4kc3RvcmUuc3RhdGUubWVudXMuY2hpbGRNZW51TGlzdC5sZW5ndGggJiYNCiAgICAgICAgdGhpcy4kc3RvcmUuc3RhdGUudGhlbWVDb25maWcudGhlbWVDb25maWcuaXNDb2xsYXBzZQ0KICAgICAgKSB7DQogICAgICAgIHJldHVybjsNCiAgICAgIH0NCiAgICAgIHRoaXMuJHN0b3JlLnN0YXRlLnRoZW1lQ29uZmlnLnRoZW1lQ29uZmlnLmlzQ29sbGFwc2UgPSAhdGhpcy4kc3RvcmUuc3RhdGUudGhlbWVDb25maWcudGhlbWVDb25maWcuaXNDb2xsYXBzZTsNCiAgICAgIHRoaXMuc2V0TG9jYWxUaGVtZUNvbmZpZygpOw0KICAgIH0sDQogICAgLy8g5a2Y5YKo5biD5bGA6YWN572uDQogICAgc2V0TG9jYWxUaGVtZUNvbmZpZygpIHsNCiAgICAgIExvY2FsLnJlbW92ZSgndGhlbWVDb25maWdQcmV2Jyk7DQogICAgICBMb2NhbC5zZXQoJ3RoZW1lQ29uZmlnUHJldicsIHRoaXMuJHN0b3JlLnN0YXRlLnRoZW1lQ29uZmlnLnRoZW1lQ29uZmlnKTsNCiAgICB9LA0KICAgIC8vIOmAkuW9kuiuvue9riBicmVhZGNydW1iDQogICAgZ2V0QnJlYWRjcnVtYkxpc3QoYXJyKSB7DQogICAgICBhcnIubWFwKChpdGVtKSA9PiB7DQogICAgICAgIHRoaXMucm91dGVTcGxpdC5tYXAoKHYsIGssIGFycnMpID0+IHsNCiAgICAgICAgICBpZiAodGhpcy5yb3V0ZVNwbGl0Rmlyc3QgPT09IGl0ZW0ucGF0aCkgew0KICAgICAgICAgICAgdGhpcy5yb3V0ZVNwbGl0Rmlyc3QgKz0gYC8ke2FycnNbdGhpcy5yb3V0ZVNwbGl0SW5kZXhdfWA7DQogICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJMaXN0LnB1c2goaXRlbSk7DQogICAgICAgICAgICB0aGlzLnJvdXRlU3BsaXRJbmRleCsrOw0KICAgICAgICAgICAgaWYgKGl0ZW0uY2hpbGRyZW4pIHRoaXMuZ2V0QnJlYWRjcnVtYkxpc3QoaXRlbS5jaGlsZHJlbik7DQogICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5b2T5YmN6Lev55Sx5YiG5Ymy5aSE55CGDQogICAgaW5pdFJvdXRlU3BsaXQocGF0aCkgew0KICAgICAgdGhpcy5icmVhZGNydW1iTGlzdCA9IFsNCiAgICAgICAgew0KICAgICAgICAgIHBhdGg6ICcvJywNCiAgICAgICAgICBtZXRhOiB7DQogICAgICAgICAgICB0aXRsZTogdGhpcy4kc3RvcmUuc3RhdGUucm91dGVzTGlzdC5yb3V0ZXNMaXN0WzBdLnRpdGxlLA0KICAgICAgICAgICAgaWNvbjogdGhpcy4kc3RvcmUuc3RhdGUucm91dGVzTGlzdC5yb3V0ZXNMaXN0WzBdLmljb24sDQogICAgICAgICAgfSwNCiAgICAgICAgfSwNCiAgICAgIF07DQogICAgICAvLyAgIHRoaXMucm91dGVTcGxpdCA9IHBhdGguc3BsaXQoJy8nKTsNCiAgICAgIC8vICAgdGhpcy5yb3V0ZVNwbGl0LnNoaWZ0KCk7DQogICAgICB0aGlzLnJvdXRlU3BsaXRGaXJzdCA9IHBhdGg7DQogICAgICB0aGlzLnJvdXRlU3BsaXRJbmRleCA9IDE7DQogICAgICB0aGlzLmdldEJyZWFkY3J1bWJMaXN0KHRoaXMuJHN0b3JlLnN0YXRlLnJvdXRlc0xpc3Qucm91dGVzTGlzdCk7DQogICAgfSwNCiAgfSwNCiAgLy8g55uR5ZCs6Lev55Sx55qE5Y+Y5YyWDQogIHdhdGNoOiB7DQogICAgJHJvdXRlOiB7DQogICAgICBoYW5kbGVyKG5ld1ZhbCkgew0KICAgICAgICAvLyB0aGlzLmluaXRSb3V0ZVNwbGl0KG5ld1ZhbC5wYXRoKTsNCiAgICAgICAgbGV0IG1lbnVMaXN0ID0gdGhpcy4kc3RvcmUuc3RhdGUubWVudXMubWVudXNOYW1lOw0KICAgICAgICBsZXQgb3Blbk1lbnVzID0gZ2V0TWVudW9wZW4obmV3VmFsLCBtZW51TGlzdCk7DQogICAgICAgIGxldCBhbGxNZW51TGlzdCA9IFIobWVudUxpc3QsIFtdKTsNCiAgICAgICAgbGV0IHNlbGVjdE1lbnUgPSBbXTsNCiAgICAgICAgaWYgKGFsbE1lbnVMaXN0Lmxlbmd0aCA+IDApIHsNCiAgICAgICAgICBvcGVuTWVudXMuZm9yRWFjaCgoaSkgPT4gew0KICAgICAgICAgICAgYWxsTWVudUxpc3QuZm9yRWFjaCgoYSkgPT4gew0KICAgICAgICAgICAgICBpZiAoaSA9PT0gYS5wYXRoKSB7DQogICAgICAgICAgICAgICAgc2VsZWN0TWVudS5wdXNoKGEpOw0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgfSwNCiAgICAgIGRlZXA6IHRydWUsDQogICAgfSwNCiAgfSwNCn07DQo="},{"version":3,"sources":["breadcrumb.vue"],"names":[],"mappings":";AAkCA;AACA;AACA;;AAEA;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"breadcrumb.vue","sourceRoot":"src/layout/navBars/breadcrumb","sourcesContent":["<template>\r\n <div class=\"layout-navbars-breadcrumb\">\r\n <!-- {{[...breadCrumbList,...crumbPast]}} -->\r\n <i\r\n v-if=\"collapseShow\"\r\n class=\"layout-navbars-breadcrumb-icon\"\r\n :class=\"getThemeConfig.isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'\"\r\n v-db-click\r\n @click=\"onThemeConfigChange\"\r\n ></i>\r\n <el-breadcrumb class=\"layout-navbars-breadcrumb-hide\" v-if=\"isShowcrumb\" :style=\"{ display: isShowBreadcrumb }\">\r\n <transition-group name=\"breadcrumb\" mode=\"out-in\">\r\n <el-breadcrumb-item v-for=\"(v, k) in [...breadCrumbList, ...crumbPast]\" :key=\"v.path\">\r\n <span v-if=\"k == 1\" class=\"layout-navbars-breadcrumb-span\">\r\n <Icon\r\n :type=\"v.icon\"\r\n class=\"ivu-icon layout-navbars-breadcrumb-iconfont\"\r\n v-if=\"getThemeConfig.isBreadcrumbIcon\"\r\n />{{ $t(v.title) }}\r\n </span>\r\n <a v-else v-db-click @click.prevent=\"onBreadcrumbClick(v)\">\r\n <Icon\r\n :type=\"v.icon\"\r\n class=\"ivu-icon layout-navbars-breadcrumb-iconfont\"\r\n v-if=\"getThemeConfig.isBreadcrumbIcon\"\r\n />{{ $t(v.title) }}\r\n </a>\r\n </el-breadcrumb-item>\r\n </transition-group>\r\n </el-breadcrumb>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { Local } from '@/utils/storage.js';\r\nimport { R } from '@/libs/util';\r\nimport { getMenuopen } from '@/libs/util';\r\n\r\nexport default {\r\n name: 'layoutBreadcrumb',\r\n data() {\r\n return {\r\n breadcrumbList: [],\r\n routeSplit: [],\r\n routeSplitFirst: '',\r\n routeSplitIndex: 1,\r\n };\r\n },\r\n computed: {\r\n breadCrumbList() {\r\n let menuList = this.$store.state.menus.menusName;\r\n let openMenus = getMenuopen(this.$route, menuList);\r\n let allMenuList = R(menuList, []);\r\n let selectMenu = [];\r\n if (allMenuList.length > 0) {\r\n openMenus.forEach((i) => {\r\n allMenuList.forEach((a) => {\r\n if (i === a.path) {\r\n selectMenu.push(a);\r\n }\r\n });\r\n });\r\n }\r\n return selectMenu;\r\n },\r\n crumbPast() {\r\n let that = this;\r\n let menuList = that.$store.state.menus.menusName;\r\n let allMenuList = R(menuList, []);\r\n let selectMenu = [];\r\n if (allMenuList.length > 0) {\r\n allMenuList.forEach((a) => {\r\n if (that.$route.path === a.path) {\r\n selectMenu.push(a);\r\n }\r\n });\r\n }\r\n return selectMenu;\r\n },\r\n // 获取布局配置信息\r\n getThemeConfig() {\r\n return this.$store.state.themeConfig.themeConfig;\r\n },\r\n // 动态设置经典、横向布局不显示\r\n isShowBreadcrumb() {\r\n const { layout, isBreadcrumb } = this.$store.state.themeConfig.themeConfig;\r\n if (layout === 'transverse' || layout === 'classic') {\r\n return 'none';\r\n } else {\r\n return isBreadcrumb ? '' : 'none';\r\n }\r\n },\r\n isShowcrumb() {\r\n const { layout } = this.$store.state.themeConfig.themeConfig;\r\n if (layout === 'transverse' || layout === 'classic') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n },\r\n collapseShow() {\r\n return ['defaults', 'columns'].includes(this.$store.state.themeConfig.themeConfig.layout);\r\n },\r\n },\r\n mounted() {\r\n this.initRouteSplit(this.$route.path);\r\n },\r\n methods: {\r\n // breadcrumb 当前项点击时\r\n onBreadcrumbClick(v) {\r\n const { redirect, path } = v;\r\n if (redirect) this.$router.push(redirect);\r\n else this.$router.push(path);\r\n },\r\n // breadcrumb icon 点击菜单展开与收起\r\n onThemeConfigChange() {\r\n if (\r\n this.$store.state.themeConfig.themeConfig.layout == 'columns' &&\r\n !this.$store.state.menus.childMenuList.length &&\r\n this.$store.state.themeConfig.themeConfig.isCollapse\r\n ) {\r\n return;\r\n }\r\n this.$store.state.themeConfig.themeConfig.isCollapse = !this.$store.state.themeConfig.themeConfig.isCollapse;\r\n this.setLocalThemeConfig();\r\n },\r\n // 存储布局配置\r\n setLocalThemeConfig() {\r\n Local.remove('themeConfigPrev');\r\n Local.set('themeConfigPrev', this.$store.state.themeConfig.themeConfig);\r\n },\r\n // 递归设置 breadcrumb\r\n getBreadcrumbList(arr) {\r\n arr.map((item) => {\r\n this.routeSplit.map((v, k, arrs) => {\r\n if (this.routeSplitFirst === item.path) {\r\n this.routeSplitFirst += `/${arrs[this.routeSplitIndex]}`;\r\n this.breadcrumbList.push(item);\r\n this.routeSplitIndex++;\r\n if (item.children) this.getBreadcrumbList(item.children);\r\n }\r\n });\r\n });\r\n },\r\n // 当前路由分割处理\r\n initRouteSplit(path) {\r\n this.breadcrumbList = [\r\n {\r\n path: '/',\r\n meta: {\r\n title: this.$store.state.routesList.routesList[0].title,\r\n icon: this.$store.state.routesList.routesList[0].icon,\r\n },\r\n },\r\n ];\r\n // this.routeSplit = path.split('/');\r\n // this.routeSplit.shift();\r\n this.routeSplitFirst = path;\r\n this.routeSplitIndex = 1;\r\n this.getBreadcrumbList(this.$store.state.routesList.routesList);\r\n },\r\n },\r\n // 监听路由的变化\r\n watch: {\r\n $route: {\r\n handler(newVal) {\r\n // this.initRouteSplit(newVal.path);\r\n let menuList = this.$store.state.menus.menusName;\r\n let openMenus = getMenuopen(newVal, menuList);\r\n let allMenuList = R(menuList, []);\r\n let selectMenu = [];\r\n if (allMenuList.length > 0) {\r\n openMenus.forEach((i) => {\r\n allMenuList.forEach((a) => {\r\n if (i === a.path) {\r\n selectMenu.push(a);\r\n }\r\n });\r\n });\r\n }\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.layout-navbars-breadcrumb {\r\n // flex: 1;\r\n height: inherit;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 15px;\r\n .layout-navbars-breadcrumb-icon {\r\n cursor: pointer;\r\n font-size: 18px;\r\n margin-right: 15px;\r\n color: var(--prev-bg-topBarColor);\r\n opacity: 0.8;\r\n &:hover {\r\n opacity: 1;\r\n }\r\n }\r\n .layout-navbars-breadcrumb-span {\r\n opacity: 0.7;\r\n color: var(--prev-bg-topBarColor);\r\n }\r\n .layout-navbars-breadcrumb-iconfont {\r\n font-size: 14px;\r\n margin-right: 5px;\r\n }\r\n}\r\n</style>\r\n"]}]}