58 行
2.1 KiB
Markdown
58 行
2.1 KiB
Markdown
# 【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 变化。
|