docs: add design for transport plan arranged tab

Record the approved design to insert an「已安排」list tab after「待安排」, filtering by followStatus=arranged.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-09-04 17:31:47 +08:00
1 parent 6bf4e7b249
commit a4e107b2e6
1 file changed
+72
@@ -0,0 +1,72 @@
# 运输计划列表:增加「已安排」Tab 设计
日期:2026-09-04
范围:`web-admin` 运输计划列表页 `/#/pl/plan-module/plan`
状态:已评审(方案 1,用户确认继续)
## 1. 背景与目标
运输计划列表当前有 6 个 Tab:
`待安排` → `草稿中` → `全部` → `入库单` → `出库单` → `直销单`
客户希望在「待安排」之后增加「已安排」,用于快速查看跟进状态为 `arranged` 的计划。
## 2. 采用方案
**方案 1**:沿用「待安排 / 草稿中」的跟进状态 Tab 模式,扩展现有配置与切换逻辑。
不采用:
- 方案 2(抽出通用跟进状态 Tab 配置表)——为单 Tab 过度抽象
- 方案 3(仅前端本地过滤)——分页总数不准,与现有服务端筛选不一致
## 3. 行为约定
### 3.1 Tab 顺序
`待安排` → `已安排` → `草稿中` → `全部` → `入库单` → `出库单` → `直销单`
### 3.2 筛选
选中「已安排」时:
- `planType`:不限(空)
- `followStatus`:固定为 `arranged`(覆盖筛选区跟进状态多选,与「待安排」对称)
从跟进状态 Tab(`pending_arrange` / `arranged` / `drafting`)切到单据类型 Tab(`all` / `inbound` / `outbound` / `direct`)时:跟进状态恢复为默认勾选集合(`PL_PLAN_DEFAULT_FOLLOW_STATUSES`,不含已取消)。
### 3.3 列表与工具栏
列、工具栏、行操作与现有各 Tab 共用同一套;按钮可用性仍由现有跟进状态判断控制,不为「已安排」单独改按钮可见性。
### 3.4 默认落地
进入页面、重置筛选仍默认「待安排」,行为不变。
## 4. 改动范围
| 文件 | 变更 |
|---|---|
| `web-admin/src/utils/pl-display.ts` | `PlPlanListTab` 增加 `arranged`;`PL_PLAN_LIST_TABS` 在「待安排」后插入「已安排」;`isPlPlanFollowStatusListTab` / `plPlanListTabToFilters` 支持 `arranged` |
| `web-admin/src/views/pl/plan/index.vue` | `handlePlanTypeTabChange` 切到 `arranged` 时同步 `searchForm.followStatus = ['arranged']` |
后端:不改。列表接口已支持 `followStatus=arranged`。
## 5. 非目标
- 不为「已安排」单独调整工具栏 / 操作列按钮
- 不改默认落地 Tab
- 不改后端跟进状态流转规则
- 不做 Tab 角标数量
## 6. 验收
| 场景 | 期望 |
|---|---|
| Tab 顺序 | 「已安排」紧跟「待安排」之后 |
| 点击「已安排」 | 列表仅含跟进状态为「已安排」的计划;分页总数正确 |
| 筛选区跟进状态 | 切到该 Tab 后变为仅勾选「已安排」 |
| 切回「全部」等类型 Tab | 跟进状态恢复默认勾选(不含已取消) |
| 工具栏 / 行操作 | 与其他 Tab 一致,无额外隐藏逻辑 |
| 重置 | 仍回到「待安排」 |