角色权限的设置

1.先在登录页把角色存起来

2.然后分成普通管理员路由和超级管理员路由的动态路由

3.在导航栏这边接收循环路由以及文字等

4.给路由加属性看是否展示在导航栏ismenu

5.在templat标签上面循环

js 复制代码
<template>
  <div class="asders">
    <el-aside width="200px">
      <div class="boxbody">
        <div>源码外卖</div>
        <el-switch v-model="isCollapse" :active-value="true" :inactive-value="false"></el-switch>
      </div>

      <el-menu
        :collapse="isCollapse"
        router
        unique-opened
        :default-active="$router.path"
        class="el-menu-vertical-demo"
        background-color="rgba(220,38,38,0.2)"
        text-color="#fff"
        active-text-color="#ffd04b"
      >
      这里拿一个隐藏标签在上面循环
        <template v-for="(v,i) in routers">
        这个是一级菜单循环,v-if判断你的子标签只有一个  就用一级路由
          <el-menu-item :index="v.path" :key="i" v-if="v.children.length<=1">
            <i class="el-icon-menu"></i>
            <span slot="title">{{v.meta.title}}</span>
          </el-menu-item>


     这是二级路由他的子标签  超过一个 就可以用  所以用 v-else
          <el-submenu :index="v.path" v-else>
            <template slot="title">
              <i class="el-icon-location"></i>
              <span>{{v.meta.title}}</span>
            </template>
            
            这个返回出来的  就是 v.children里面的路由
            <el-menu-item-group>
              <el-menu-item
              
              v.children要过滤不然全都显示  
                v-for="(v2,i2) in v.children.filter(v=>v.ismenu)"
                :key="i2"
                :index="v2.path"
              >{{v2.meta.title}}</el-menu-item>
            </el-menu-item-group>
          </el-submenu>
        </template>
      </el-menu>
    </el-aside>
  </div>
</template>

<script>
import { showrouters } from "@/router/index";
export default {
  data() {
    return {
      isCollapse: false,
      routers: []
    };
  },
  methods: {
    change() {
      this.isCollapse = !this.isCollapse;
    },
    handleResize() {
      console.log(document.body.offsetWidth);
      if (document.body.offsetWidth <= 700) {
        this.isCollapse = true;
      } else {
        this.isCollapse = false;
      }
    }
  },
  created() {
    this.handleResize;
    window.addEventListener("resize", this.handleResize);
    this.routers = showrouters().filter(v => v.ismenu);
    console.log(this.routers);
  }
};
</script>

<style lang="scss" scoped>
.asders {
  height: 100%;
  background: url("../../assets/OIP-C.jpg") center, center/cover;
}
.el-menu {
  height: 100%;
  transition: all linear 0.3s;
}
.boxbody {
  height: 50px;
  display: flex;
  padding: 30px;
  align-items: center;

  background: url("../../assets/OIP-C.jpg") center center/cover;
  div {
    text-align: center;
    color: rgb(83, 50, 50);
    font-size: 18px;
    font-weight: bold;
  }
}
.el-aside {
  color: #333;
  text-align: center;
  line-height: 200px;
  height: 100%;
}
</style>
相关推荐
王哈哈^_^1 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie1 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic2 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿2 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具3 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS周边产品销售网站(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·java-ee·开源
清灵xmf3 小时前
TypeScript 类型进阶指南
javascript·typescript·泛型·t·infer
小白学大数据3 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
qq_390161773 小时前
防抖函数--应用场景及示例
前端·javascript
334554324 小时前
element动态表头合并表格
开发语言·javascript·ecmascript