今天看同事写的权限管理功能时候发现这样的一个代码
router.beforeEach(async (to: Route, from: Route, next) => {
if (to.path === "/") {
authCode && authCode.includes("yhgl-r") ? next("/userManagement") : next("/home");
}
})
看到这个yhgl-r我想了很久都没想出来是什么意思,还以为是什么用户身份码。
问了同事才知道 yhgl-r 指的是 用户管理只读。
借此想请教两个问题:
1. 后台在定义模块时候大家都是怎么定义的?
比如上述代码中就是用模块名字的首字母缩写来作为模块的 code,觉得挺不灵活优雅的,目前能想到的方案是不用缩写,有咩有其他模块定义方法?
2. 前端拿到一大堆要限制的模块 code 后,有没有什么好的处理方案?
目前见到的都是 v-if/v-show 和控制路由结合来判断是不是显示某个模块,有些模块权限复杂的话就需要一大串的判断语句,代码可读性不怎么好,有没有其他更高明的方法呢?
3. 或者有没有别的更好的权限管理方案
yhgl-r、/userManagement和/home只是为了举例编造的数据