hl-api-changelog/changelogs/2026-03/2026-03-23_contract_scheme_bug.md
API Changelog Bot c09286edca bug: 合同方案选择弹窗值绑定 + 小程序补全信息不应阻塞
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:13:47 +08:00

2.1 KiB

【BUG】合同方案选择弹窗 + 小程序补全信息

1. 合同方案选择弹窗 — 值绑定问题

现象:订单详情 → 手动签署 → 选择合同方案弹窗,下拉框显示了"全国旅游监管平台",但仍然报红"请选择合同方案",无法提交。

原因:下拉框 v-model 绑定的 value 可能是空值或类型不匹配。

排查重点

  • GET /admin/contract/scheme/list 返回的 schemeId 是 字符串(如 "3"),不是数字
  • 下拉选项的 value 必须用 item.schemeId(字符串),不要用 Number(item.schemeId)
  • 表单校验 rules 如果用了 type: 'number',改为 type: 'string'

接口返回示例

{
  "code": 200,
  "data": [
    {
      "schemeId": "1",
      "name": "标准电子签约方案(博华测试)冬季小团",
      "contractPlatform": "12301",
      "contractMode": "STANDARD",
      "status": "ACTIVE"
    },
    {
      "schemeId": "3",
      "name": "全国旅游监管平台",
      "contractPlatform": "12301",
      "contractMode": "STANDARD",
      "agencyCode": "hulai",
      "status": "ACTIVE"
    }
  ]
}

注意schemeId 是字符串类型Long序列化为String,El-Select 的 value 绑定要对应字符串。


2. 小程序补全信息 — 不应阻塞

现象:小程序用户补全出行人信息时偶现"服务不可用"。

说明

  • 补全出行人调用 PUT /mp/order/{orderId}/edit,这个接口只做数据保存
  • 保险投保和合同签约是后端异步执行的(@Async),不会阻塞补全请求
  • 如果前端在补全后同步调用了保险或合同相关接口,可能导致超时
  • 正确做法:补全信息后只等 editOrder 返回,保险/合同状态通过订单详情的 processStatus 轮询即可

processStatus 流转

PENDING_INFO待补全→ PENDING_INSURANCE投保中→ PENDING_CONTRACT签约中→ PENDING_VEHICLE待派车

补全成功后 processStatus 会从 PENDING_INFO 变为 PENDING_INSURANCE,之后自动推进。前端只需轮询订单详情看 processStatus 变化。