- 角色路由权限实现
注解:groupCode:对应功能模块,jurisdiction:对应的权限
returnRoutersArr(str,bool){
var routers = this.$router.options.routes[0].children;
var routersArr=[];
routers.forEach(item=>{
if(item.meta.groupCode==str){//获取对应模块的路由
routersArr.push(item);
}
})
if(bool){
return routersArr;
}
return this.routerAstrict(routersArr);
},
routerAstrict(data){//限制路由
let obj = []
let supAuthority = this.$supremeAuthority() //$supremeAuthority获取当前登录者的最高权限
data.forEach(item=>{
if(!item.hidden){
if(!item.meta.jurisdiction){
obj.push(item)
}else{
if(item.meta.jurisdiction.indexOf(supAuthority)==-1){
obj.push(item)
}
}
}
})
return obj
},
实现思路:1. 过滤路由找出对应模块下的路由。2.过滤出来的权限再判断是当前登陆者是否具有改
- 免登
注解:corpId:企业id (企业ID为配置钉钉后台配置PC跳转URL的参数 https://pc.dd.g107.com?corpId=$CORPID$)
login(corpId) {
var that = this;
this.loading = true;
localStorage.setItem('corpId',corpId)
this.$dd.runtime.permission.requestAuthCode({
corpId: corpId, // 企业id
onSuccess: function(info) {
that.$axios('post', '/api/ding/login', { authCode: info.code, corpId: corpId }).then(res => {
var is = false;
if (res.data.code == 1) {
var { token, user } = res.data.data;
if (user.is_official==1) {
that.$setUserData(user);
that.$router.replace({ path: '/index' });
}else{
that.$router.replace({ path: '/noAccess' });
}
}else if(res.data.code==2001){
that.dialogFormVisible=true;
}
}).finally(() => {
that.loading = false;
});
}
});
},
实现思路:获取钉钉客户端打开PC首页所带的企业ID实现免登
文档更新时间: 2021-05-05 17:37 作者:郭家裕