Files
mversion-ui/src/utils/permission.ts

31 lines
1023 B
TypeScript

// 封装权限公用方法
import { useUserStore } from "@/store";
/**
* 使用: import { usePermission } from "@/utils/permission";
* 示例: const { checkPermission } = usePermission();
* checkPermission('permission1') OR checkPermission(['permission1', 'permission2'])
*
* */
export const usePermission = () => {
const appStore = useUserStore();
const checkPermission = (requiredPermissions: string | string[]):boolean => {
// 通过接口获取到的用户权限数据
const userPermissions = appStore.role;
const permissionArray = Array.isArray(requiredPermissions) ? requiredPermissions : [requiredPermissions];
// 为*跳过权限校验
const isSkipCheck = requiredPermissions === "*" || (permissionArray && permissionArray.includes("*"));
if (isSkipCheck) {return true;}
const hasPermission = permissionArray.some((permission) =>
userPermissions.includes(permission)
);
return hasPermission;
};
return { checkPermission };
};