# 微信小程序 · 出发准备清单「接送机」拆成「到达」+「离开」两项 + 按出行人覆盖三态 - **变更日期**: 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)