ant design pro vue 动态路由 流程详解

前言

官方提供了两种实现权限的方法 官网地址
1:前端路由表写死(设置权限标识) 根据后端返回的权限标识生成路由表
2:动态路由 路由表由后端返回 前端根据返回的 进行路由表的拼接

两种方法 在 src/store/index.js 里切换

// import permission from './modules/permission'
// 第一种 根据路由表里permissions 权限标识筛选/
//import permission from './modules/async-router'
// 第二种  路由表由后端返回

第一种 官方说的比较详细,直接看官方的就行

下面详细说下第二种 后端返回的路由表流程

流程图

权限流程图

流程1 src/permission.js

  1. 进入 src/permission.js 的 路由守卫里
    从 if (store.getters.roles.length === 0) 开始 调取vuex里 获取个人信息接口
    图1

流程2 src/store/modules/user.js

  1. 来到 src/store/modules/user.js 去掉不需要的内容(第一种权限实现的代码) 设置role 角色信息 根据角色信息 请求权限信息 在这里 后端根据token来查询权限 所以 下方请求权限时 不需要传角色信息 根据后端来设置是否传参
    图2

流程3 src/permission.js

  1. 获取到 role 返回 src/permission.js

流程4 src/permission.js

  1. 调用 src/router/generator-routers.js里的 GenerateRoutes 函数 获取权限

流程5 src/router/generator-routers.js

调取接口获得权限列表
图3

流程6 src/router/generator-routers.js

传入同页面的 listToTree 函数和 generator 函数 进行路由拼装
图4

流程7 src/router/generator-routers.js

重点在 根据后端返回具体字段 拼接前端路由表(需要在同页面上方定义好路由路径)
图5
图6
拼装完毕返回结果

流程8 src/store/modules/async-router.js

拿到结果存到vuex
图7

流程9 src/permission.js

见图1 返回并增加路由 执行下面重定向 等逻辑

后端部分

数据库设置 权限表

完整需要 用户表 绑定角色表 角色表绑定权限表 下面是权限表的字段
图8

接口返回格式

  • 获取用户详情的接口 需要有role字段 或者 改为其他判断条件都可以 留着以后换实现方法1 也可以兼容

  • 获取nav 权限列表时 需要注意
    图9

  • 权限管理页面 就可以根据官方给的页面做就行了 需要注意的是
    component 字段再父路由根据需要可设置 BlankLayout(页面啥样就啥样),
    RouteView(适用于分路由的页面,有坑,需要跟redirect 重定向配合使用) ,PageView(加了页头导航的样式)

  • redirect 重定向 不能重定向到当前路由 会报错

  • src/router/generator-routers.js的 rootRouter 根级目录
    图10
    以上就是动态路由的流程了 如有错误,麻烦指正,有什么问题,也可评论询问!

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值