hl-api-changelog/changelogs/2026-04/2026-04-23_mp-pre-trip-checklist-split-arrival-departure.md

114 行
4.2 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 微信小程序 · 出发准备清单「接送机」拆成「到达」+「离开」两项 + 按出行人覆盖三态
- **变更日期**: 2026-04-23
- **PR**: #1289
- **端**: 微信小程序(管理端不涉及)
- **影响面**: 行前准备清单(出发倒计时聚合接口)
- **兼容性**: **需要前端同步调整**(清单项数量从 6 变 7,单项 key 新增,状态值新增 `WARNING`
---
## 变化一:清单项数量 6 → 7
| 之前 | 现在 |
|---|---|
| 6 项:`DEPOSIT_PAID` / `TRAVELER_INFO` / **`ARRIVAL_INFO`**(接送机合一)/ `CONTRACT_SIGN` / `INSURANCE` / `CHECKLIST_CONFIRMED` | 7 项:`DEPOSIT_PAID` / `TRAVELER_INFO` / **`ARRIVAL_INFO`**(到达)/ **`DEPARTURE_INFO`**(离开)/ `CONTRACT_SIGN` / `INSURANCE` / `CHECKLIST_CONFIRMED` |
### `ChecklistItemKey` 取值对照
| 新 key | 之前文案 | 现在文案 |
|---|---|---|
| `ARRIVAL_INFO` | `接送机信息` | **`到达信息`** |
| `DEPARTURE_INFO`(新增) | — | **`离开信息`** |
前端如果用 `ARRIVAL_INFO` 这个枚举值做判断:逻辑保留即可,但文案"接送机"需要改为"到达";新增 `DEPARTURE_INFO` 需要渲染一项。
---
## 变化二:状态新增 `WARNING`(黄色提示态)
之前单项状态只有两个:`DONE / PENDING`;现在在到达/离开两项上新增 **`WARNING`**。
### 到达 / 离开项的三态判断
| 状态 | 触发条件 | 文案示例title + subtitle |
|---|---|---|
| `DONE` | 订单有至少 1 批到达/离开,且**所有出行人都已被某个批次覆盖** | 「到达信息已填」 · 「N 批 · 全员已覆盖」 |
| `WARNING`(新)| 有批次但**漏填了部分出行人** | 「到达信息未填全」 · 「还有 X 人未安排」 |
| `PENDING` | **0 批次** | 「填写到达信息」 · 「司机将根据此信息接机」 |
离开项同理,文案里"到达 / 接机" → "离开 / 送机"。
> 前端如果沿用「DONE=绿色 / PENDING=灰色」两色方案,新增一个"黄色"`WARNING`)即可。
---
## 变化三:`actionPayload` 新增 `section` 字段
点击「到达 / 离开」项跳转表单时,`actionPayload` 新增 `section` 区分是到达还是离开:
```json
{
"title": "填写到达信息",
"status": "PENDING",
"actionType": "NAVIGATE",
"actionPayload": {
"target": "arrival_form",
"orderId": 1900001,
"section": "arrival" // ← 新增,取值 arrival | departure
}
}
```
前端跳到达/离开表单页时,可用 `section` 定位默认展开的 tab。
---
## 接口
路径不变(以 Swagger 为准)。返回体结构:
```json
{
"code": 200,
"data": {
"items": [
{ "key": "DEPOSIT_PAID", "status": "DONE", "title": "...", "subtitle": "..." },
{ "key": "TRAVELER_INFO", "status": "PENDING", "title": "...", "subtitle": "..." },
{ "key": "ARRIVAL_INFO", "status": "WARNING", "title": "到达信息未填全", "subtitle": "还有 1 人未安排",
"actionType": "NAVIGATE", "actionPayload": { "target": "arrival_form", "orderId": 1900001, "section": "arrival" } },
{ "key": "DEPARTURE_INFO", "status": "PENDING", "title": "填写离开信息", "subtitle": "司机将根据此信息送机",
"actionType": "NAVIGATE", "actionPayload": { "target": "arrival_form", "orderId": 1900001, "section": "departure" } },
{ "key": "CONTRACT_SIGN", "status": "DONE" },
{ "key": "INSURANCE", "status": "DONE" },
{ "key": "CHECKLIST_CONFIRMED", "status": "PENDING" }
]
},
"success": true
}
```
---
## 前端需要做的事
1. 清单项渲染循环:从 6 项改为按后端返回 `items` 数组长度渲染(避免硬编码数量)
2. 新增 `DEPARTURE_INFO` 的 icon / 文案映射
3. 新增 `WARNING` 状态的颜色 / 图标样式
4. 点击到达/离开项跳转时,从 `actionPayload.section` 判断 tab 默认态
---
## 不影响范围
- 其它 5 项(`DEPOSIT_PAID / TRAVELER_INFO / CONTRACT_SIGN / INSURANCE / CHECKLIST_CONFIRMED`)行为**零变化**
- 到达 / 离开信息的 CRUD 接口(`/mp/order/{orderId}/arrival` 等)**零变化**
- 管理端行前清单(若有)**不涉及**
---
## 相关
- PR[wx/HL#1289](https://git.1814.love:8443/wx/HL/pulls/1289)
- 部署:`hl-order-service-v2`8094