由于按钮权限和用户登录角色相关,因此在用户登录后,我们首先要根据用户角色查询到当前用户权限下所拥有的全部数据。由于按钮分布于不同的页面,所以我们要把查询到的数据存储在 localstorage 或 sessionstorage 中,用于后面进行验证。
具体操作过程如下:
1.存储角色权限查到的数据
/**存储数据**/ let data = sessionStorage.setItem(‘buttenpremissions‘’,JSON.stringify(res.data));
2.自定义全局指令
/**权限指令**/ Vue.directive('has', { bind: function(el, binding) { if (!Vue.prototype.$_has(binding.value)) { el.parentNode.removeChild(el); } } }); //权限检查方法 Vue.prototype.$_has = function(value) { debugger let isExist=false; let buttonpermsStr=sessionStorage.getItem("buttenpremissions"); if(buttonpermsStr==undefined || buttonpermsStr==null){ return false; } let buttonperms=JSON.parse(buttonpermsStr); for(let i=0;i<buttonperms.length;i++){ if(buttonperms[i].url == value){ isExist=true; break; } } return isExist; };
3.页面上按钮权限验证方式
<Button v-has='red:add'>增加</Button>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于