hl-api-changelog/changelogs/2026-04/24_fix_order-v2_team-report-prefill-fields.md

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 问题:

  1. 旅行社编码按钮组显英文 code → 后端 prefill 返回值新增 agencyOptions: [{code, name}], 前端按钮组 label 走 name 显示中文, value 继续走 code
  2. 「团号」填整串订单号 → 修为短号 (order_info.group_code, 订单头显示的 5448), 不再是 HL20260423175303-5448
  3. 「出发市」固定呼和浩特市 → 从 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=name value=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>

注意: valuecode (提交给后端还是 qianshou / 2), label 文本用 name 显示中文。这样既保持 12301 上报 contract, 又解决用户反馈的「英文 code 不好看」问题。