import useUserStore from '@/store/modules/user' function getUserState() { try { const userStore = useUserStore() return { permissions: userStore.permissions || [], roles: userStore.roles || [] } } catch (e) { return { permissions: [], roles: [] } } } /** * 字符权限校验 * @param {Array} value 校验值 * @returns {Boolean} */ export function checkPermi(value:Array) { if (value && value instanceof Array && value.length > 0) { const permissions:Array = getUserState().permissions const permissionDatas = value const all_permission = "*:*:*" const hasPermission = permissions.some(permission => { return all_permission === permission || permissionDatas.includes(permission) }) if (!hasPermission) { return false } return true } else { console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`) return false } } /** * 角色权限校验 * @param {Array} value 校验值 * @returns {Boolean} */ export function checkRole(value:Array) { if (value && value instanceof Array && value.length > 0) { const roles:Array = getUserState().roles const permissionRoles = value const super_admin = "admin" const hasRole = roles.some(role => { return super_admin === role || permissionRoles.includes(role) }) if (!hasRole) { return false } return true } else { console.error(`need roles! Like checkRole="['admin','editor']"`) return false } }