|
@@ -0,0 +1,34 @@
|
|
|
+import Vue from 'vue';
|
|
|
+const rolesList = []
|
|
|
+const permission = (el, binding) => {
|
|
|
+ const roles = getRoles();
|
|
|
+ if (!roles) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let userPermissionList = Array.isArray(binding.value) ? binding.value : [binding.value];
|
|
|
+ // 当前用户的权限列表
|
|
|
+ if (!userPermissionList.some(e => roles.includes(e))) {
|
|
|
+ el.parentNode && el.parentNode.removeChild(el);
|
|
|
+ }
|
|
|
+}
|
|
|
+const getRoles = ()=>{
|
|
|
+ let _roles = uni.getStorageSync('jurisdiction');
|
|
|
+ return getUserAllRoles(_roles)
|
|
|
+}
|
|
|
+
|
|
|
+const getUserAllRoles = (item) => {
|
|
|
+ console.log(item)
|
|
|
+ for(let i = 0;i<item.length;i++){
|
|
|
+ rolesList.push(item[i].name)
|
|
|
+ console.log('用户权限',rolesList)
|
|
|
+ if(item[i].children&&item[i].children.length>0){
|
|
|
+ getUserAllRoles(item[i].children)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rolesList;
|
|
|
+}
|
|
|
+Vue.directive('hasPermission', {
|
|
|
+ inserted: permission,
|
|
|
+ componentUpdated: permission
|
|
|
+ })
|
|
|
+
|