• 角色路由权限实现

注解: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   作者:郭家裕