校验函数

This commit is contained in:
Zy
2026-07-20 14:16:46 +08:00
parent b681a08e22
commit d7c201d357
2 changed files with 78 additions and 17 deletions

View File

@@ -0,0 +1,36 @@
/**
* 获取本地存储的用户权限标识数组
*/
export function getPermList() {
const perms = uni.getStorageSync('userPermission')
return Array.isArray(perms) ? perms : []
}
/**
* 权限校验函数
* @param perm 单个权限字符串 / 多个权限数组
* @param mode or满足任一 / and全部满足,默认or
* @returns 是否拥有权限
*/
export function hasPermi(perm, mode = 'or') {
const permList = getPermList()
// 超级管理员通配符
if (permList.includes('*')) return true
const checkArr = Array.isArray(perm) ? perm : [perm]
if (mode === 'and') {
// 所有权限都要有
return checkArr.every(item => permList.includes(item))
} else {
// 有一个即可
return checkArr.some(item => permList.includes(item))
}
}
/**
* 退出登录清空权限
*/
export function clearPermList() {
uni.removeStorageSync('userPermission')
}