docs(fleet): 订正 #8159 候选清单 CROSS_BATCH 的触发条件,group_batch_id 为空的行不在清单里
changelog-filename-gate / validate (push) Failing after 2s

原正文两处(浏览态判据列表、unselectableReason 取值表)都把 group_batch_id 为空
写成会以 CROSS_BATCH 出现在清单里,与同一份第六节「4. 覆盖范围」自相矛盾。
取数条件是 eq(group_batch_id, ?),那类行结构上查不出来。

Refs #8159

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
这个提交包含在:
API Changelog Bot
2026-09-22 19:38:06 +08:00
共同撰写人 Claude Opus 5
父节点 61bfe0f9a3
当前提交 1a4a16030c
@@ -202,7 +202,8 @@ GET /admin/fleet/group-dispatch/batches/2102125467954044929/share-member-candida
🔴 **但浏览态下 `selectable` 并不总是 `null`**:有两条判据不依赖 `resourceId`,浏览态照样能判死——
- **已属别的 ACTIVE 共用关系** → `selectable=false`,`unselectableReason=ALREADY_IN_ANOTHER_GROUP`
- **团期身份缺失**(`group_batch_id` / `requirement_id` 为空或团期不符)→ `selectable=false`,`unselectableReason=CROSS_BATCH`
- **团期身份缺失**(`requirement_id` 为空,或团期与本团不符)→ `selectable=false`,`unselectableReason=CROSS_BATCH`
⚠️ **订正 2026-09-22**:本行原写「`group_batch_id` / `requirement_id` 为空」,**`group_batch_id` 那一半不成立**——取数条件是 `eq(group_batch_id, ?)`,`group_batch_id` 为空的派单行**结构上查不出来**、压根不在清单里(见第六节「4. 覆盖范围」)。所以前端**不必**为「`group_batch_id` 为空 + `CROSS_BATCH`」写分支,那个组合不可能出现;会以 `CROSS_BATCH` 出现在清单里的,只有 `requirement_id` 为空或团期不符这两种。
⇒ 前端在浏览态**不能**把 `selectable == null` 当成 `false` 禁用勾选,也**不能**当成 `true` 放开;但**要照常渲染 `selectable === false` 的置灰与原因**——那些行在浏览态就已经定死了,选了具体资源也不会变回可选。
@@ -295,7 +296,7 @@ GET /admin/fleet/group-dispatch/batches/2102125467954044929/share-member-candida
| 值 | 触发条件 | 浏览态(未传 `resourceId`)能否判出 | 对应写口错误码 |
|---|---|---|---|
| `CROSS_BATCH` | `group_batch_id` / `requirement_id` **为空**,或团期与本团不符 | ✅ 能 | 602103 |
| `CROSS_BATCH` | `requirement_id` **为空**,或团期与本团不符。⚠️ 订正 2026-09-22:**不含 `group_batch_id` 为空**,那类行结构上查不出来、不在清单里(见第六节「4. 覆盖范围」) | ✅ 能 | 602103 |
| `NOT_OCCUPYING` | 派单不在**可改派的在飞态**,或当日**标记不用车** | ❌ 不能(需 `resourceId`) | 602102 |
| `ALREADY_IN_ANOTHER_GROUP` | 本行已属某个 ACTIVE 共用关系(此时 `shareGroupId` **非空**) | ✅ 能 | 602106 |
| `GROUP_DISPATCH_INVALID` | 团级配车行**当日不在此资源上** | ❌ 不能(需 `resourceId`) | 602105 |