4.1 KiB
4.1 KiB
同步 tab 团队填报 prefill 修 3 处字段 + 新增按钮组 label 下发
日期: 2026-04-24 PR: #1380 (dev) Issue: #1377 类型: fix + feat (API 扩字段, 前端零改动即可接入 label) 服务: hl-order-service-v2
摘要
订单详情 → 同步 tab (team-report) → 基础信息卡片, 修 3 个 prefill 问题:
- 旅行社编码按钮组显英文 code → 后端 prefill 返回值新增
agencyOptions: [{code, name}], 前端按钮组 label 走name显示中文, value 继续走code - 「团号」填整串订单号 → 修为短号 (
order_info.group_code, 订单头显示的5448), 不再是HL20260423175303-5448 - 「出发市」固定呼和浩特市 → 从
product_snapshot.itinerary[0].gatherPlace.fullPath+ 最后一天dismissalPlace.fullPath拆出省/市
受影响接口
| 接口 | 方法 | 变化 |
|---|---|---|
GET /admin/team-report/prefill/{orderId} |
GET | teamId 改用 order_info.group_code; sourceProvince/sourceCity/destinationProvince/destinationCity 改从 itinerary[i].gatherPlace.fullPath 解析; 新增 agencyOptions: List<{code, name}> + businessTypeOptions: List<{code, name}> 两个只读字段 |
TeamReportFormDTO 新增字段
{
"agencyCode": "hulai",
"teamId": "5448",
"sourceProvince": "内蒙古自治区",
"sourceCity": "呼伦贝尔市",
"destinationProvince": "内蒙古自治区",
"destinationCity": "兴安盟",
"agencyOptions": [
{"code": "hulai", "name": "内蒙古呼籁国际旅行社有限公司"},
{"code": "qianshou", "name": "内蒙古呼籁山河国际旅行社有限公司"},
{"code": "hulai-wenlu", "name": "内蒙古呼籁文旅投资开发集团有限公司"}
],
"businessTypeOptions": [
{"code": 2, "name": "国内游组团"},
{"code": 6, "name": "入境接待"},
{"code": 7, "name": "国内接待"}
]
}
前端改动建议
- 旅行社编码按钮组: 原硬编码
['hulai','qianshou','hulai-wenlu']→ 改用agencyOptions,label=namevalue=code - 业务类型按钮组: 原硬编码
[2,6,7]→ 改用businessTypeOptions - 其他字段 (
teamId/sourceCity/destinationCity等) 接口签名不变, 前端只需要展示后端返回值即可, 无需任何改动
行为不变的地方
agencyCode/businessType字段类型与原先一致 (前者 String code, 后者 Integer)- 保存/提交接口 (
/save、/submit、/cancel、/status) 无改动
🚨 紧急:用户 2026-04-24 截图反馈「旅行社编码按钮组仍显英文 code」,必须接 options
后端已返 (curl https://api.test.1814.love:9443/admin/team-report/prefill/2047252402389598209 实测):
"agencyOptions": [
{"code": "bohua-test", "name": "内蒙古博华牛牛测试旅行社有限公司123"},
{"code": "hulai", "name": "内蒙古呼籁国际旅行社有限公司"},
{"code": "qianshou", "name": "内蒙古呼籁山河国际旅行社有限公司"},
{"code": "hulai-wenlu", "name": "内蒙古呼籁文旅投资开发集团有限公司"}
]
前端同步 tab「基础信息」→「旅行社编码」按钮组当前大概率硬编码了
const AGENCY_CODES = ['hulai', 'qianshou', 'hulai-wenlu']
// 或 <n-radio-button v-for="c in AGENCY_CODES" :value="c">{{ c }}</n-radio-button>
请改为 (Vue3 + naive-ui 示例):
<n-radio-group v-model:value="form.agencyCode">
<n-radio-button
v-for="opt in form.agencyOptions || []"
:key="opt.code"
:value="opt.code"
>
{{ opt.name }}
</n-radio-button>
</n-radio-group>
「业务类型」按钮组同样改走 form.businessTypeOptions:
<n-radio-group v-model:value="form.businessType">
<n-radio-button
v-for="opt in form.businessTypeOptions || []"
:key="opt.code"
:value="opt.code"
>
{{ opt.name }}
</n-radio-button>
</n-radio-group>
注意: value 绑 code (提交给后端还是 qianshou / 2), label 文本用 name 显示中文。这样既保持 12301 上报 contract, 又解决用户反馈的「英文 code 不好看」问题。