# 枚举值中文显示修复指南
## 已完成的修复
✅ **订单列表** (`order/OrderListView.vue`)
✅ **售后订单** (`order/OrderAfterSaleView.vue`)
✅ **所有页面** - 已移除 `stripe` 隔行换色属性
## 枚举映射工具
已创建通用枚举映射工具:`frontend/src/utils/enumMappings.ts`
### 可用的转换函数
```typescript
// 订单相关
getOrderStatus(value) // 订单状态
getShippingStatus(value) // 发货状态
getPaymentStatus(value) // 支付状态
getPriorityLabel(value) // 优先级
getExceptionLabel(value) // 异常标签
// 售后相关
getAuditStatus(value) // 审核状态
getRefundStatus(value) // 退款状态
getAfterSaleType(value) // 售后类型
// 产品相关
getProductStatus(value) // 产品状态
// 供应商相关
getSupplierStatus(value) // 供应商状态
```
## 快速修复步骤
### 步骤 1: 在页面中导入工具
```vue
```
### 步骤 2: 添加辅助函数
```vue
```
### 步骤 3: 更新模板
**修改前(直接显示枚举值):**
```vue
{{ row.status }}
```
**修改后(使用枚举映射):**
```vue
{{ statusConfig(row.status).label }}
```
## 需要修复的页面清单
根据搜索结果,以下页面可能包含枚举值显示问题:
### 高优先级(核心业务)
- [ ] `product/ProductListView.vue` - 产品状态
- [ ] `finance/PaymentView.vue` - 支付状态
- [ ] `finance/RefundView.vue` - 退款状态
- [ ] `warehouse/WarehouseView.vue` - 仓库状态
- [ ] `marketing/PromotionView.vue` - 活动状态
### 中优先级(管理功能)
- [ ] `crm/TicketView.vue` - 工单状态/优先级
- [ ] `crm/ServicePerformanceView.vue` - 服务状态
- [ ] `supplier/SupplierListView.vue` - 供应商状态
- [ ] `logistics/LogisticsProviderView.vue` - 物流商状态
### 低优先级(报表和配置)
- [ ] `report/*` - 各类报表页面
- [ ] `system/*` - 系统配置页面
- [ ] `inventory/*` - 库存页面
## 添加新的枚举映射
如果 `enumMappings.ts` 中没有你需要的枚举,按以下格式添加:
```typescript
// 在 enumMappings.ts 中添加
export const YOUR_ENUM: Record = {
key1: { label: '中文1', type: 'primary' },
key2: { label: '中文2', type: 'success' },
key3: { label: '中文3', type: 'warning' },
key4: { label: '中文4', type: 'danger' },
key5: { label: '中文5', type: 'info' },
};
// 添加快捷函数
export function getYourEnum(value: string) {
return getEnumWithStyle(YOUR_ENUM, value);
}
```
## Tag 类型参考
```typescript
type: 'primary' // 蓝色 - 主要信息
type: 'success' // 绿色 - 成功/正常
type: 'warning' // 橙色 - 警告/处理中
type: 'danger' // 红色 - 危险/错误
type: 'info' // 灰色 - 信息/禁用
```
## 常见问题
### Q: 后端返回的是中文,还需要映射吗?
A: 建议仍然使用枚举映射,这样可以:
1. 统一样式和类型
2. 防止后端返回值变化
3. 便于后期维护
### Q: 如何处理未知枚举值?
A: `getEnumWithStyle` 函数会自动返回原值和 `info` 类型,不会报错
### Q: 条件判断怎么处理?
A: 使用中文值进行判断:
```vue
查看
```
## 验证修复
修复后请检查:
1. ✅ 所有状态显示中文
2. ✅ Tag 颜色符合语义
3. ✅ 筛选器选项使用中文
4. ✅ 没有直接显示英文枚举值
---
**注意**: 如果遇到问题或需要添加新的枚举映射,请参考 `OrderListView.vue` 和 `OrderAfterSaleView.vue` 的实现示例。