---
date: 2026-05-04
type: frontend-bug
module: contract-list
priority: medium
notify: ["@mmg"]
status: pending
---

# 合同列表"签约模式"列显示 ONLINE 应显示"线上签署"

## 现象

`/admin/contract/list` 页面"签约模式"列显示原始 enum value:
```
ONLINE / OFFLINE / SMS
```
应显示中文 label:
```
线上签署 / 线下签署 / 短信签署
```

## 根因

后端 `/admin/contract/list` 已返回 `modeLabel` 字段（中文）：

```json
{
  "code": 200,
  "data": {
    "list": [{
      "contractId": "...",
      "mode": "ONLINE",            // ← enum value
      "modeLabel": "线上签署",       // ← 中文 label, 前端直接用这个
      "platform": "12301",
      "...": "..."
    }]
  }
}
```

前端模板里写的应该是 `{{ row.mode }}`，改成 `{{ row.modeLabel }}` 即可。

## 同模式字段（一并检查）

后端返回的 `*Label` 字段都该用：

| 列 | enum 字段 | 中文 label 字段 |
|----|-----------|-----------------|
| 签约模式 | `mode` | `modeLabel` |
| 合同类型 | `contractType` | `contractTypeLabel` |
| 状态 | `status` | `statusLabel` |

打开合同列表页若发现其他列也是英文 enum，按同样规则改。

## 后端零改动

后端 VO 早已含三个 `*Label` 字段，看 `ContractListRespVO` 即可。无需后端 PR。

@mmg 修一下渲染字段即可，应该是 1 行 template 改动。
