const USER_INFO_KEY = "user_info" const ALL_PERMISSION = "*:*:*" export const checkPermission = (permission: string): boolean => { try { const info = uni.getStorageSync(USER_INFO_KEY) if (info == null) return false const infoStr = info as string if (infoStr.length === 0) return false const userObj = JSON.parse(infoStr) as UTSJSONObject const permissions = userObj['permissions'] if (permissions == null || !(permissions instanceof Array)) return false const permissionArray = permissions as UTSArray if (permissionArray.includes(ALL_PERMISSION)) { return true } return permissionArray.includes(permission) } catch (e) { console.error('权限检查异常:', e) return false } } export const checkPermissions = (permissions: string[]): boolean => { if (permissions == null || permissions.length === 0) return false try { const info = uni.getStorageSync(USER_INFO_KEY) if (info == null) return false const infoStr = info as string if (infoStr.length === 0) return false const userObj = JSON.parse(infoStr) as UTSJSONObject const userPermissions = userObj['permissions'] if (userPermissions == null || !(userPermissions instanceof Array)) return false const permissionArray = userPermissions as UTSArray if (permissionArray.includes(ALL_PERMISSION)) { return true } return permissions.some((perm: string) => permissionArray.includes(perm)) } catch (e) { console.error('权限检查异常:', e) return false } } export const hasAnyPermission = (permissions: string[]): boolean => { return checkPermissions(permissions) } export const hasAllPermissions = (permissions: string[]): boolean => { if (permissions == null || permissions.length === 0) return false try { const info = uni.getStorageSync(USER_INFO_KEY) if (info == null) return false const infoStr = info as string if (infoStr.length === 0) return false const userObj = JSON.parse(infoStr) as UTSJSONObject const userPermissions = userObj['permissions'] if (userPermissions == null || !(userPermissions instanceof Array)) return false const permissionArray = userPermissions as UTSArray if (permissionArray.includes(ALL_PERMISSION)) { return true } return permissions.every((perm: string) => permissionArray.includes(perm)) } catch (e) { console.error('权限检查异常:', e) return false } }