import store from '@/store' /** * 字符权限校验 * @param {Array} value 校验值 * @returns {Boolean} */ export function checkPermi(value) { if (value && value instanceof Array && value.length > 0) { const permissions = store.getters && store.getters.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 {Number} deptId 部门id * @param {Array} value 校验值 * @returns {Boolean} */ export function checkDeptPermi(deptId, value) { const all_permission = "*:*:*"; const deptPermissions = store.getters && store.getters.deptPermissions; const userPermissions = store.getters && store.getters.permissions; const permissions = deptPermissions[deptId]?.permissions || [] if (value && value instanceof Array && value.length > 0) { const permissionFlag = value return permissions.some(permission => { return all_permission === permission || permissionFlag.includes(permission) }) || userPermissions.some(permission => all_permission === permission) } else { return false } } /** * 角色权限校验 * @param {Array} value 校验值 * @returns {Boolean} */ export function checkRole(value) { if (value && value instanceof Array && value.length > 0) { const roles = store.getters && store.getters.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 } }