feat(agency): supportedPlatforms 中文 label 翻译字段 (PR #1720)

通知 mmg 前端:
- AgencyRespVO 加 supportedPlatformsList (List<String> code 数组) + supportedPlatformsLabels (List<String> 中文)
- 旧 supportedPlatforms JSON String 保留向后兼容
- 前端 tag 改用 supportedPlatformsLabels 显示「12301 团队报送」「腾讯电子签」

测试服 round-trip 通过 (2026-05-06 17:02).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
这个提交包含在:
API Changelog Bot 2026-05-06 17:01:14 +08:00
父节点 fbb5fd97f4
当前提交 98033738cc

查看文件

@ -0,0 +1,82 @@
# 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