import { useUserStore } from '@/store/modules/user'; export function usePermission() { const userStore = useUserStore(); /** * 检查权限 * @param accesses */ function _somePermissions(accesses: string[]) { const permissionsList = userStore.getPermissions; if(permissionsList[0]=='*:*:*') { return true } return accesses.some((item) => { return permissionsList.includes(item); }); } /** * 判断是否存在权限 * 可用于 v-if 显示逻辑 * */ function hasPermission(accesses: string[]): boolean { if (!accesses || !accesses.length) return true; return _somePermissions(accesses); } /** * 是否包含指定的所有权限 * @param accesses */ function hasEveryPermission(accesses: string[]): boolean { const permissionsList = userStore.getPermissions; if(permissionsList[0]=='*:*:*') { return true } if (Array.isArray(accesses)) { return accesses.every((access: any) => permissionsList.includes(access)); } throw new Error(`[hasEveryPermission]: ${accesses} should be a array !`); } /** * 是否包含其中某个权限 * @param accesses * @param accessMap */ function hasSomePermission(accesses: string[]): boolean { const permissionsList = userStore.getPermissions; if(permissionsList[0]=='*:*:*') { return true } if (Array.isArray(accesses)) { return accesses.some((access: any) => permissionsList.includes(access)); } throw new Error(`[hasSomePermission]: ${accesses} should be a array !`); } return { hasPermission, hasEveryPermission, hasSomePermission }; }