import store from '@/store' import { useUserStore } from '@/store' // 导入 userStore /** * 角色权限校验 * @param {Array} value 校验值 * @returns {Boolean} */ export function checkRole(value) { if (value && value instanceof Array && value.length > 0) { // 方式1:通过 store.getters 获取,但需要确保 getters 返回的是值 // const roles = store.getters?.roles || [] // 方式2:直接使用 useUserStore const userStore = useUserStore() const roles = userStore.roles || [] // 这里 roles 是 ref,需要 .value const permissionRoles = value const super_admin = "admin" // 确保 roles 是数组,处理 ref const rolesArray = Array.isArray(roles) ? roles : (roles.value || []) const hasRole = rolesArray.some(role => { return super_admin === role || permissionRoles.includes(role) }) return hasRole } else { console.error(`need roles! Like checkRole="['admin','editor']"`) return false } } /** * 权限校验 * @param {Array} value 校验值 * @returns {Boolean} */ export function checkPermi(value) { if (value && value instanceof Array && value.length > 0) { const userStore = useUserStore() const permissions = userStore.permissions || [] const permissionDatas = value const all_permission = "*:*:*" // 确保 permissions 是数组,处理 ref const permissionsArray = Array.isArray(permissions) ? permissions : (permissions.value || []) const hasPermission = permissionsArray.some(permission => { return all_permission === permission || permissionDatas.includes(permission) }) return hasPermission } else { console.error(`need permissions! Like checkPermi="['system:user:add','system:user:edit']"`) return false } }