# feat(agency): supportedPlatforms 加 List<code> + List<中文 label> 字段

**日期**: 2026-05-06 17:02
**通知对象**: @mmg (前端)
**关联 PR**: wx/HL #1720 (已 merge dev + 测试服部署 + round-trip 通过)
**前序**: PR #1717 / #1718 / #1719

---

## 一、用户反馈

UI 截图反馈「支持平台」tag 显示 dictValue 带引号 `"12301"` `"TENCENT_ESIGN"`,前端没翻译成中文 dictLabel。

---

## 二、修复 (P0 铁律: *Label 字段必返中文非 null)

`AgencyRespVO` **新增 2 个字段**(旧字段 `supportedPlatforms: String` 保留向后兼容):

```json
{
  "supportedPlatforms": "[\"12301\",\"TENCENT_ESIGN\"]",
  "supportedPlatformsList": ["12301", "TENCENT_ESIGN"],          // ← 新增, 前端 tag value 绑定
  "supportedPlatformsLabels": ["12301 团队报送", "腾讯电子签"]   // ← 新增, 前端 tag 显示用
}
```

后端 `TravelAgencyServiceImpl.toRespVO` 解析 JSON + 翻译 (与现有 statusLabel/fileTypeLabel/qualificationTypeLabel hardcoded switch 风格对齐)。

---

## 三、前端建议

**form 多选 tag 改用新字段** (`supportedPlatformsList` 绑 v-model, `supportedPlatformsLabels` 渲染 tag 文本):

```vue
<!-- 旧: 直接用 supportedPlatforms JSON 字符串显示 -->
<NTag v-for="p in JSON.parse(rec.supportedPlatforms)">{{ p }}</NTag>

<!-- 新: 用 list + labels (后端已 parse 好) -->
<NTag v-for="(label, idx) in rec.supportedPlatformsLabels">
  {{ label }}  <!-- "12301 团队报送" / "腾讯电子签" -->
</NTag>
```

POST/PUT 时仍传 `supportedPlatforms` JSON 字符串 (SaveReqVO 不变)。

---

## 四、测试服 round-trip 验证 (2026-05-06 17:02)

| 公司 | supportedPlatformsList | supportedPlatformsLabels |
|---|---|---|
| hulai | `["12301","TENCENT_ESIGN"]` | `["12301 团队报送","腾讯电子签"]` |
| qianshou | `["12301"]` | `["12301 团队报送"]` |
| hulai-wenlu | `["12301"]` | `["12301 团队报送"]` |

```bash
TOK=$(curl -sk -X POST "https://api.test.1814.love:9443/admin/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"Admin@123456"}' \
  | python -c "import json,sys; print(json.load(sys.stdin)['data']['token'])")

curl -sk "https://api.test.1814.love:9443/admin/travel-agency/page?pageNum=1&pageSize=10" \
  -H "Authorization: Bearer $TOK"
```

---

## 五、agency 模块 PR 清单

| PR | 内容 |
|---|---|
| #1715 | admin path 纠回 `/admin/travel-agency` |
| #1717 | 资质附件 qualificationType + 字典 (agency_qualification_type / agency_contract_platform) |
| #1718 | nacos 完整字段同步 (teamReportAppId/SignKey/supportedPlatforms + payment 加密字段) |
| #1719 | payment 加 name + appId 字段 |
| **#1720** | **本 PR — supportedPlatforms 中文 label 翻译字段** |

---

cc @mmg
