{"remainingRequest":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\ljzc-fvue\\src\\components\\layout\\SideMenu.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\src\\components\\layout\\SideMenu.vue","mtime":1701311301084},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\ljzc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\ljzc-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\r\nimport {mapState} from 'vuex'\r\nimport menu from '@/api/menu.js'\r\n\r\nexport default {\r\n props: {\r\n menuShow: {\r\n type: Boolean,\r\n default: true\r\n }\r\n },\r\n data() {\r\n return {\r\n currentSubMenu: [],\r\n activeIndex: '',\r\n isCollapse: false,\r\n hasAuthTobigScreen: false,\r\n roleList: [],\r\n roleCode: '',\r\n admin: false,\r\n menuAll: [],\r\n platReady: undefined,\r\n defaultOpened: []\r\n }\r\n },\r\n watch: {\r\n // 监听路由,如果为首页等非菜单页面,取消菜单选中项\r\n $route(to, from) {\r\n if (to.meta.isHome) {\r\n this.activeIndex = ''\r\n } else {\r\n this.filterSubMenu()\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapState({\r\n frontMenus: state => {\r\n return state.menu.frontMenus\r\n },\r\n roleMenus: state => {\r\n return state.menu.roleMenus\r\n }\r\n })\r\n },\r\n mounted() {\r\n this.platReady = sessionStorage.getItem('platReady')\r\n this.getRoleList()\r\n this.$bus.$on('roterPush', path => {\r\n this.activeIndex = path\r\n })\r\n },\r\n beforeDestroy() {\r\n sessionStorage.removeItem('platReady')\r\n },\r\n methods: {\r\n checkoutMenu() {\r\n this.isCollapse = !this.isCollapse\r\n },\r\n changeRole(role) {\r\n this.roleCode = role\r\n sessionStorage.setItem('currentRoleCode', role)\r\n this.$store.dispatch('menu/actionsRoleMenu', this.roleCode).then(data => {\r\n this.menuAll = data\r\n this.filterSubMenu()\r\n this.toFirstMenu(data)\r\n })\r\n },\r\n toFirstMenu(data) {\r\n let dataMenus = data && data.filter(item => item.alias === 'normal')\r\n if (dataMenus && dataMenus.length !== 0) {\r\n if (\r\n dataMenus[0].children.length !== 0 &&\r\n dataMenus[0].children[0].children.length\r\n ) {\r\n this.$router.push({\r\n path: `/platLayout/${dataMenus[0].children[0].children[0].alias}`\r\n })\r\n this.activeIndex = `/platLayout/${dataMenus[0].children[0].children[0].alias}`\r\n } else {\r\n this.$router.push({\r\n path: `/platLayout/${dataMenus[0].children[0].alias}`\r\n })\r\n this.activeIndex = `/platLayout/${dataMenus[0].children[0].alias}`\r\n }\r\n } else {\r\n this.$router.push({\r\n path: `/platLayout/empty`\r\n })\r\n }\r\n },\r\n getRoleList() {\r\n let UserDetail = JSON.parse(sessionStorage.getItem('currentUserDetail'))\r\n if (!UserDetail) {\r\n this.$store.dispatch('user/loadCurrentUserDetail').then(res => {\r\n UserDetail = res\r\n this.roleList = UserDetail.roleList\r\n sessionStorage.getItem('currentRoleCode', this.roleList[0].roleCode)\r\n this.currentRoleCode(UserDetail)\r\n this.getMenus()\r\n })\r\n } else {\r\n this.roleList = UserDetail.roleList\r\n this.currentRoleCode(UserDetail)\r\n this.getMenus()\r\n }\r\n },\r\n currentRoleCode(UserDetail) {\r\n let defaultRole = sessionStorage.getItem('currentRoleCode')\r\n if (!defaultRole) {\r\n defaultRole = this.roleList[0].roleCode\r\n sessionStorage.setItem('currentRoleCode', defaultRole)\r\n }\r\n this.roleCode = defaultRole\r\n let account = UserDetail.user.account\r\n // 系统管理员使用frontMenus\r\n if (this.roleCode == 'sysRole' && account == 'admin') {\r\n this.admin = true\r\n } else {\r\n this.admin = false\r\n }\r\n },\r\n getMenus() {\r\n this.menuAll = []\r\n if (!this.admin) {\r\n this.$store\r\n .dispatch('menu/actionsRoleMenu', this.roleCode)\r\n .then(data => {\r\n this.menuAll = data\r\n this.filterSubMenu()\r\n if (!this.platReady) {\r\n this.toFirstMenu(data)\r\n this.platReady = 'ready'\r\n sessionStorage.setItem('platReady', 'ready')\r\n }\r\n })\r\n } else {\r\n this.$store.dispatch('menu/actionFrontMenus').then(data => {\r\n this.menuAll = data\r\n this.filterSubMenu()\r\n if (!this.platReady) {\r\n this.toFirstMenu(data)\r\n this.platReady = 'ready'\r\n sessionStorage.setItem('platReady', 'ready')\r\n }\r\n })\r\n }\r\n },\r\n goIndex() {\r\n // if (!this.hasAuthTobigScreen) return\r\n let bigScreen = this.frontMenus.filter(item => item.alias === 'bigScreen')\r\n let alise = bigScreen[0].children[0].alias\r\n this.$router.push({\r\n path: `/${alise}`\r\n })\r\n },\r\n // 菜单的收折\r\n handleMenuCollapse() {\r\n this.$emit('update:menuShow', !this.menuShow)\r\n },\r\n handleSelect(path, isJump) {\r\n this.$router.push(path) //梁\r\n return\r\n let alias\r\n let _this = this\r\n if (path && path.indexOf('/frontPlat/href') == -1) {\r\n // url 菜单\r\n let i = path.lastIndexOf('/')\r\n alias = path.slice(i + 1)\r\n } else {\r\n alias = path.replace('/frontPlat/', '')\r\n }\r\n menu.getMenuByAlias(alias, m => {\r\n // debugger\r\n m && _this.$emit('menuChange', m)\r\n if (m && m.openType == '2' && isJump) {\r\n if (m.alias.indexOf('href/') == -1) {\r\n let openPath = '/frontPlat/' + m.alias\r\n let routeUrl = this.$router.resolve({\r\n path: openPath\r\n })\r\n window.open(routeUrl.href, '_blank')\r\n } else {\r\n let tempwindow = window.open()\r\n tempwindow.location = m.href\r\n }\r\n } else if (m && m.parent) {\r\n this.$router.push(path)\r\n this.activeIndex = path\r\n }\r\n })\r\n },\r\n // 筛选出选中菜单\r\n filterSubMenu() {\r\n this.alias = this.$route.path.split('/')[2].replace('/', '')\r\n let frontMenus = this.frontMenus[1].children\r\n if (frontMenus) {\r\n let currentMenu = frontMenus.filter(item => item.alias === this.alias)[0]\r\n if (currentMenu) {\r\n this.currentSubMenu = currentMenu.children\r\n }\r\n this.activeIndex = this.$route.path\r\n setTimeout(\r\n _ =>\r\n (this.defaultOpened = [\r\n this.$route.path\r\n .split('/')\r\n .slice(0, -1)\r\n .join('/')\r\n ]),\r\n 200\r\n )\r\n }\r\n }\r\n }\r\n}\r\n",null]}