基于vue3的权限控制实现

需求:不同角色的用户显示不同的菜单,且对页面的按钮也有是否对角色开发的权限

服务端返回两个数据

一个是菜单的权限列表,另外一个是拥有的按钮列表数据,如下:

 动态加载菜单

/**
    routerInfo: 动态路由
    hasRoutePermission: 用户拥有的路由权限
 */
const filterDeepDynamic = (routerInfo, hasRoutePermission) => {
  return routerInfo.filter((item) => {
    if (hasRoutePermission.includes(item.name)) {
      if (item.children && item.children.length > 0) {
        item.children = filterDeepDynamic(item.children, hasRoutePermission);
      }
      return true;
    }
  });
};

注册路由

 注意:这个动态路由要深拷贝

posted @ 2024-11-21 20:05  洛飞  阅读(3)  评论(0编辑  收藏  举报