1. 程式人生 > >結算系統時候用到的左側遞迴 導航條功能

結算系統時候用到的左側遞迴 導航條功能

<template>
  <el-scrollbar wrapClass="scrollbar-wrapper">
    <el-menu
      mode="vertical"
      :show-timeout="200"
      :default-active="$route.path"
      :collapse="isCollapse"
      background-color="#304156"
      text-color="#bfcbd9"
      active-text-color="#409EFF"
    >
      <sidebar-item v-for
="route in permission_routers" :key="route.name" :item="route" :base-path="route.path"></sidebar-item> </el-menu> </el-scrollbar> </template> <script> import { mapGetters } from 'vuex' import SidebarItem from './SidebarItem' import routers from '@/router/index' /* Layout
*/ // import Layout from '@/pages/layout/Layout' export default { data() { return { permission_routers: undefined, tmpArr: [], apiArr: JSON.parse(localStorage.getItem('SET_ROUTERS')) } }, mounted() { // console.log(this.apiArr) this.loop(this.apiArr) // console.log(this.tmpArr)
this.loopRoutes(routers.options.routes) this.permission_routers = routers.options.routes }, methods: { checkIsHidden: function(opt) { if (this.apiArr) { if (this.tmpArr.indexOf(opt) >= 0) { return false } else { return true } } }, loop: function(arr) { for (var i = 0; i < arr.length; i++) { this.tmpArr.push(arr[i].resName) if (arr[i].hasSubResource === true) { this.loop(arr[i].subResources) } } }, loopRoutes: function(arrRoutes) { var _this = this for (var i = 0; i < arrRoutes.length; i++) { // console.log(arrRoutes[i]) if (arrRoutes[i].name) { // 開啟關閉許可權 arrRoutes[i].hidden = _this.checkIsHidden(arrRoutes[i].meta.title) // arrRoutes[i].hidden = false if (arrRoutes[i].children) { _this.loopRoutes(arrRoutes[i].children) } } } } }, components: { SidebarItem }, computed: { ...mapGetters([ // 'permission_routers', 'sidebar' ]), isCollapse() { return !this.sidebar.opened } } } </script>