流浪のwolf

卷帝

导航

69.后台信息要是只返回标识符,怎么筛选路由

单独新建一个 permission.js 文件用来做用户权限操作:

设计动态路由的时候,name属性要和用户的标识符一一对应 ,然后filter筛选 动态路由规则,如果 用户的权限标识包含includes 动态路由的name属性就返回 true ;

actions: {
    // 用来整理出属于当前用户的动态路由映射数组
    filterRoutes(context, data) {
      // data是当前用户的权限点标识
      // asyncRoutes 是完整的动态路由映射数组
      // 思路:遍历每个动态路由映射是否在当前用户的页面权限标识中
      // 如果在就说明拥有改页面访问权限,返回这个路由映射
      let userAsyncRoutes = asyncRoutes.filter((item) => {
        return data.includes(item.name);
      });
      // 当前用户的动态路由
      // console.log(userAsyncRoutes);
      // 赋给state里面的routes,形成完整的静态+动态
      userAsyncRoutes.push({ path: "*", redirect: "/404", hidden: true });
      context.commit("setRoutes", userAsyncRoutes);
      // 返回该用户的动态路由信息
      return userAsyncRoutes;
    },
  },

 

posted on 2022-11-15 09:18  朱龙旭的网络  阅读(40)  评论(0编辑  收藏  举报