提交
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
/**
|
||||
* 角色管理工具
|
||||
* 统一H5端和PC端的角色控制逻辑
|
||||
*/
|
||||
|
||||
// 角色常量
|
||||
export const ROLE_TYPES = {
|
||||
SUPPLIER: 'supplier', // 供应商
|
||||
BUSINESS: 'business', // 买家
|
||||
PROCUREMENT: 'procurement' // 卖家
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成角色数组(与PC端保持一致)
|
||||
* @param {number} role - 基础角色 (0=供应商, 1=买家, 2=卖家)
|
||||
* @param {number} role_wp - 附加角色 (1/2/3=供应商身份)
|
||||
* @returns {string[]} 角色数组
|
||||
*/
|
||||
export function getRoles(role, role_wp) {
|
||||
const roleMap = {
|
||||
0: ROLE_TYPES.SUPPLIER,
|
||||
1: ROLE_TYPES.BUSINESS,
|
||||
2: ROLE_TYPES.PROCUREMENT
|
||||
}
|
||||
|
||||
const baseRole = roleMap[role] || ROLE_TYPES.BUSINESS
|
||||
const roles = [baseRole]
|
||||
|
||||
// role_wp 有值表示供应商身份
|
||||
if (role_wp && role_wp > 0) {
|
||||
roles.push(ROLE_TYPES.SUPPLIER)
|
||||
}
|
||||
|
||||
return roles
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户角色列表
|
||||
* @returns {string[]} 角色数组
|
||||
*/
|
||||
export function getUserRoles() {
|
||||
try {
|
||||
const rolesStr = uni.getStorageSync('roles')
|
||||
if (rolesStr) {
|
||||
return JSON.parse(rolesStr)
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('[getUserRoles] 解析角色失败:', e)
|
||||
}
|
||||
return []
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取主角色(基础角色)
|
||||
* @returns {string} 主角色名称
|
||||
*/
|
||||
export function getPrimaryRole() {
|
||||
const roles = getUserRoles()
|
||||
return roles.length > 0 ? roles[0] : ROLE_TYPES.BUSINESS
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否有供应商身份
|
||||
* @returns {boolean} 是否有供应商身份
|
||||
*/
|
||||
export function isSupplier() {
|
||||
const roles = getUserRoles()
|
||||
return roles.includes(ROLE_TYPES.SUPPLIER)
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存角色信息
|
||||
* @param {number} role - 基础角色
|
||||
* @param {number} role_wp - 附加角色
|
||||
* @returns {string[]} 保存后的角色数组
|
||||
*/
|
||||
export function saveRoles(role, role_wp) {
|
||||
const roles = getRoles(role, role_wp)
|
||||
uni.setStorageSync('role', String(role))
|
||||
uni.setStorageSync('roles', JSON.stringify(roles))
|
||||
return roles
|
||||
}
|
||||
Reference in New Issue
Block a user