# 【BUG】合同方案选择弹窗 + 小程序补全信息 ## 1. 合同方案选择弹窗 — 值绑定问题 **现象**:订单详情 → 手动签署 → 选择合同方案弹窗,下拉框显示了"全国旅游监管平台",但仍然报红"请选择合同方案",无法提交。 **原因**:下拉框 `v-model` 绑定的 value 可能是空值或类型不匹配。 **排查重点**: - `GET /admin/contract/scheme/list` 返回的 schemeId 是 **字符串**(如 `"3"`),不是数字 - 下拉选项的 value 必须用 `item.schemeId`(字符串),不要用 `Number(item.schemeId)` - 表单校验 rules 如果用了 `type: 'number'`,改为 `type: 'string'` **接口返回示例**: ```json { "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 变化。