{"remainingRequest":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\sfz-lh-fvue\\src\\components\\layout\\Layout.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\src\\components\\layout\\Layout.vue","mtime":1700507297999},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport Navigator from './Navigator.vue'\r\nimport SideMenu from './SideMenu.vue'\r\nimport Main from './Main.vue'\r\nexport default {\r\n components: {\r\n Navigator,\r\n SideMenu,\r\n Main,\r\n },\r\n data() {\r\n return {\r\n menuShow: true, // 侧边菜单收折flag\r\n transitionName: 'fold-right', // 页面切换动画名称\r\n navMode: 'sideMenu', // sideMenu 侧边菜单 | topMenu 顶部菜单 | topSideMenu-UD 顶部侧边联动菜单上下布局 | topSideMenu-LR 顶部侧边联动菜单左右布局\r\n aliasPath: [], // 当前路由菜单别名全路径\r\n bizMenuIndex: 3, //业务菜单一级属于前台菜单层级中的第几级\r\n bizMenuAlias: 'normal', // 业务菜单根别名\r\n }\r\n },\r\n created() {\r\n // 在外框架中获取所有前台菜单,组件中不再请求,直接读取vuex中数据\r\n this.getMenus()\r\n },\r\n mounted() {\r\n window.onresize = () => {\r\n this.$root.$emit('resize')\r\n }\r\n },\r\n watch: {\r\n $route: 'activeAlias',\r\n },\r\n methods: {\r\n getMenus() {\r\n this.menuAll = []\r\n this.$store.dispatch('menu/actionFrontMenus').then((data) => {\r\n this.menuAll = data\r\n this.menuReady = true\r\n this.activeAlias()\r\n })\r\n },\r\n activeAlias() {\r\n // 如果是顶部侧边联动部菜单则页面刷新时需要根据当前路由别名找到对应的父级节点\r\n if (\r\n this.navMode == 'topSideMenu-LR' ||\r\n this.navMode == 'topSideMenu-UD'\r\n ) {\r\n // 根据路由别名刷新找到对应的父级菜单全路径\r\n let fullPath = this.$route.path\r\n let path = fullPath.split('/')\r\n let urlAnchor = path[path.indexOf('platLayout') + 1]\r\n let aliasPath = []\r\n this.filterRootParant(this.menuAll, urlAnchor, aliasPath)\r\n this.aliasPath = aliasPath\r\n }\r\n this.$bus.$emit('menuPathReady', this.aliasPath)\r\n },\r\n // 找到对应的根父级菜单\r\n filterRootParant(data, urlAnchor, result) {\r\n for (let item of data) {\r\n if (item.alias === urlAnchor) {\r\n // 如何找到了则说明这里是最后一级可以返回了,将查找到的目标数据加入结果数组中\r\n // 可根据需求unshift(item.id)或unshift(item)\r\n result.unshift(item.alias)\r\n return true\r\n } else if (item.children && item.children.length > 0) {\r\n // 否则继续在子节点中查找\r\n let isFind = this.filterRootParant(\r\n item.children,\r\n urlAnchor,\r\n result\r\n )\r\n // 如果在当前节点的子字节点中找到了则将当前节点加入到结果数组中\r\n if (isFind) {\r\n result.unshift(item.alias)\r\n return true\r\n }\r\n }\r\n }\r\n // 没找到目标\r\n return false\r\n },\r\n },\r\n}\r\n",null]}