动态路由控制权限

参考 https://blog.csdn.net/qq_34160246/article/details/80322036

动态路由控制权限

login.vue

let dR = new Array();
for (let i = 0; i < dynamicRouter.length; i++) { //第一层循环遍历动态路由表的每一个路由
  let aside_list = this.aside_list
  for (let j = 0; j < aside_list.length; j++) {
    if (dynamicRouter[i].path === aside_list[j].path && aside_list[j].isShow) {
      // console.log(dynamicRouter[i])
      dR.push(dynamicRouter[i]); // 符合条件的路由信息就放进数组里
      if (!this.xjw) {
        // this.firstShowPath = dynamicRouter[i]
        dR.push(dynamicRouter[2]);
        this.xjw = true
      }
    } else if (aside_list[j].path.indexOf('x') && aside_list[j].isShow) {
      if (!this.first) { // 符合条件的路由的福袋必须访问的路由就放进数组里
        dR.push(dynamicRouter[0]);
        dR.push(dynamicRouter[1]);
        this.first = true
      }
    } else if (
      (aside_list[j].path.indexOf('xx')
        || aside_list[j].path.indexOf('xxx') || aside_list[j].path.indexOf('xxxx'))
      && aside_list[j].isShow) {
      if (!this.second) {
        dR.push(dynamicRouter[1]);
        this.second = true
      }
    }
  }
}
this.xjw = null
this.first = null
this.second = null
// console.log(dR)
this.$router.addRoutes(dR.concat([{ //这里调用addRoutes方法,动态添加符合条件的路由
  path: '*',
  redirect: '/404' //所有不匹配路径(*)都重定向到404,为什么写在这里而不放到静态路由表里可以查看“前端路上”的文章
}]));

this.$router.push(this.firstShowPath);

app.vue

if (!isLogin) {
  return this.$router.push('/login');
} else {
  let dR = new Array();
  for (let i = 0; i < dynamicRouter.length; i++) {
    let aside_list = this.get_aside_list.aside_list
    // console.log(dynamicRouter[i])
    for (let j = 0; j < aside_list.length; j++) {
      if (dynamicRouter[i].path === aside_list[j].path && aside_list[j].isShow) {
        // console.log(dynamicRouter[i])
        dR.push(dynamicRouter[i]); //符合条件的路由信息就放进数组里
        if (!this.xjw) {
          dR.push(dynamicRouter[2]);
          this.xjw = true
        }
      } else if (aside_list[j].path.indexOf('x') && aside_list[j].isShow) {
        if (!this.first) {
          dR.push(dynamicRouter[0]);
          dR.push(dynamicRouter[1]);
          this.first = true
        }
      } else if (
        (aside_list[j].path.indexOf('xx')
          || aside_list[j].path.indexOf('xxx') || aside_list[j].path.indexOf('xxxx'))
        && aside_list[j].isShow) {
        if (!this.second) {
          dR.push(dynamicRouter[1]);
          this.second = true
        }
      }
    }
  }
  this.xjw = null
  this.first = null
  this.second = null
  // console.log(dR)
  this.$router.addRoutes(dR);

猜你喜欢

转载自blog.csdn.net/qq_32430229/article/details/82107229