"use strict"; /** * 角色工具类 - 处理角色枚举的转换和验证 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.RoleMapping = exports.Role = void 0; exports.normalizeRole = normalizeRole; exports.getRoleText = getRoleText; exports.isValidRole = isValidRole; exports.getRoleOptions = getRoleOptions; /** * 角色枚举定义 * 服务器可能返回数字角色值,前端使用字符串枚举 */ var Role; (function (Role) { Role["DELIVERY_PERSON"] = "DELIVERY_PERSON"; Role["ADMIN"] = "ADMIN"; // 管理员 })(Role || (exports.Role = Role = {})); /** * 角色值映射 * 服务器返回的数字角色值到前端字符串枚举的映射 */ exports.RoleMapping = { 0: Role.DELIVERY_PERSON, // 0对应配送员 1: Role.ADMIN // 1对应管理员 }; /** * 将服务器返回的角色值转换为前端枚举 * @param roleValue 服务器返回的角色值(可能是数字或字符串) * @returns 标准化的角色枚举值 */ function normalizeRole(roleValue) { if (typeof roleValue === 'number') { // 如果是数字,使用映射表转换 return exports.RoleMapping[roleValue] || Role.DELIVERY_PERSON; } // 如果是字符串,直接转换为大写进行比较 const normalizedRole = roleValue.toUpperCase(); // 检查是否是有效的角色值 if (normalizedRole === Role.ADMIN) { return Role.ADMIN; } // 默认返回配送员 return Role.DELIVERY_PERSON; } /** * 获取角色显示文本 * @param role 角色枚举值 * @returns 对应的中文显示文本 */ function getRoleText(role) { switch (role) { case Role.ADMIN: return '管理员'; case Role.DELIVERY_PERSON: return '配送员'; default: return '未知角色'; } } /** * 验证角色值是否有效 * @param roleValue 角色值 * @returns 是否有效 */ function isValidRole(roleValue) { try { const normalized = normalizeRole(roleValue); return normalized === Role.ADMIN || normalized === Role.DELIVERY_PERSON; } catch { return false; } } /** * 获取角色选项列表(用于下拉选择器) * @returns 角色选项数组 */ function getRoleOptions() { return [ { value: Role.DELIVERY_PERSON, label: '配送员' }, { value: Role.ADMIN, label: '管理员' } ]; }