refactor ts
This commit is contained in:
		| @ -1,28 +0,0 @@ | ||||
|  /** | ||||
|  * v-hasPermi 操作权限处理 | ||||
|  * Copyright (c) 2019 ruoyi | ||||
|  */ | ||||
|   | ||||
| import useUserStore from '@/store/modules/user' | ||||
|  | ||||
| export default { | ||||
|   mounted(el, binding, vnode) { | ||||
|     const { value } = binding | ||||
|     const all_permission = "*:*:*"; | ||||
|     const permissions = useUserStore().permissions | ||||
|  | ||||
|     if (value && value instanceof Array && value.length > 0) { | ||||
|       const permissionFlag = value | ||||
|  | ||||
|       const hasPermissions = permissions.some(permission => { | ||||
|         return all_permission === permission || permissionFlag.includes(permission) | ||||
|       }) | ||||
|  | ||||
|       if (!hasPermissions) { | ||||
|         el.parentNode && el.parentNode.removeChild(el) | ||||
|       } | ||||
|     } else { | ||||
|       throw new Error(`请设置操作权限标签值`) | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,28 +0,0 @@ | ||||
|  /** | ||||
|  * v-hasRole 角色权限处理 | ||||
|  * Copyright (c) 2019 ruoyi | ||||
|  */ | ||||
|   | ||||
| import useUserStore from '@/store/modules/user' | ||||
|  | ||||
| export default { | ||||
|   mounted(el, binding, vnode) { | ||||
|     const { value } = binding | ||||
|     const super_admin = "admin"; | ||||
|     const roles = useUserStore().roles | ||||
|  | ||||
|     if (value && value instanceof Array && value.length > 0) { | ||||
|       const roleFlag = value | ||||
|  | ||||
|       const hasRole = roles.some(role => { | ||||
|         return super_admin === role || roleFlag.includes(role) | ||||
|       }) | ||||
|  | ||||
|       if (!hasRole) { | ||||
|         el.parentNode && el.parentNode.removeChild(el) | ||||
|       } | ||||
|     } else { | ||||
|       throw new Error(`请设置角色权限标签值`) | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										44
									
								
								src/directive/permission/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								src/directive/permission/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,44 @@ | ||||
| import { Directive, DirectiveBinding } from 'vue'; | ||||
| import useUserStore from '@/store/modules/user'; | ||||
| /** | ||||
|  * 操作权限处理 | ||||
|  */ | ||||
| export const hasPermi: Directive = { | ||||
| 	mounted(el: HTMLElement, binding: DirectiveBinding) { | ||||
| 		const { permissions } = useUserStore(); | ||||
| 		// 「其他角色」按钮权限校验 | ||||
| 		const { value } = binding; | ||||
| 		if (value && value instanceof Array && value.length > 0) { | ||||
| 			const hasPermission = permissions.some((permi) => { | ||||
| 				return permi === '*:*:*' || value.includes(permi); | ||||
| 			}); | ||||
| 			if (!hasPermission) { | ||||
| 				el.parentNode && el.parentNode.removeChild(el); | ||||
| 				return false; | ||||
| 			} | ||||
| 		} else { | ||||
| 			throw new Error("check perms! Like v-has-permi=\"['sys:user:add','sys:user:edit']\""); | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * 角色权限处理 | ||||
|  */ | ||||
| export const hasRoles: Directive = { | ||||
| 	mounted(el: HTMLElement, binding: DirectiveBinding) { | ||||
| 		const { value } = binding; | ||||
| 		const { roles } = useUserStore(); | ||||
| 		if (value && value instanceof Array && value.length > 0) { | ||||
| 			const hasRole = roles.some((role) => { | ||||
| 				return role === 'admin' || value.includes(role); | ||||
| 			}); | ||||
| 			if (!hasRole) { | ||||
| 				el.parentNode && el.parentNode.removeChild(el); | ||||
| 				return false; | ||||
| 			} | ||||
| 		} else { | ||||
| 			throw new Error("check roles! Like v-has-roles=\"['admin','test']\""); | ||||
| 		} | ||||
| 	} | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user
	 LiuHao
					LiuHao