Преглед на файлове

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>
zlwu преди 1 месец
родител
ревизия
a4e107b2e6
променени са 1 файла, в които са добавени 72 реда и са изтрити 0 реда
  1. 72 0
      docs/superpowers/specs/2026-09-04-pl-plan-arranged-tab-design.md

+ 72 - 0
docs/superpowers/specs/2026-09-04-pl-plan-arranged-tab-design.md

@@ -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 一致,无额外隐藏逻辑 |
+| 重置 | 仍回到「待安排」 |