结算系统时候用到的左侧递归 导航条功能

Posted suanmei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结算系统时候用到的左侧递归 导航条功能相关的知识,希望对你有一定的参考价值。

<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>

 

以上是关于结算系统时候用到的左侧递归 导航条功能的主要内容,如果未能解决你的问题,请参考以下文章

web实现点击左侧导航,右侧加载不同的网页(这种布局多用于后台管理系统)

Vue ElementUi导航组件结合后台管理实现左侧菜单滚动不显示滚动条

Vue ElementUi导航组件结合后台管理实现左侧菜单滚动不显示滚动条

Android如何隐藏底部虚拟按键

delphi左侧导航栏收缩

CSS课程网站 Banner 制作 ② ( Banner 栏版心盒子测量 | Banner 版心盒子模型左侧导航栏代码示例 )