import store from '@/store' function authPermission(permission: string): boolean { const all_permission = "*:*:*" const permissions: Array = store.getters && store.getters.permissions if (permission && permission.length > 0) { return permissions.some(v => { return all_permission === v || v === permission }) } else { return false } } function authRole(role: string): boolean { const super_admin = "admin" const roles: Array = store.getters && store.getters.roles if (role && role.length > 0) { return roles.some(v => { return super_admin === v || v === role }) } else { return false } } export default { /** * 验证用户是否具备某权限 * @param permission 权限符 * @returns */ hasPermi(permission: string): boolean { return authPermission(permission) }, /** * 验证用户是否含有指定权限,只需包含其中一个 * @param permissions 权限符数组 * @returns */ hasPermiOr(permissions: Array): boolean { return permissions.some(item => { return authPermission(item) }) }, /** * 验证用户是否含有指定权限,必须全部拥有 * @param permissions 权限符数组 * @returns */ hasPermiAnd(permissions: Array): boolean { return permissions.every(item => { return authPermission(item) }) }, /** * 验证用户是否具备某角色 * @param role 角色 * @returns */ hasRole(role: string): boolean { return authRole(role) }, /** * 验证用户是否含有指定角色,只需包含其中一个 * @param roles 角色数组 * @returns */ hasRoleOr(roles: Array): boolean { return roles.some(item => { return authRole(item) }) }, /** * 验证用户是否含有指定角色,必须全部拥有 * @param roles 角色数组 * @returns */ hasRoleAnd(roles: Array): boolean { return roles.every(item => { return authRole(item) }) } }