From a4e107b2e66b93678bf063e8d99ba4beffa026e1 Mon Sep 17 00:00:00 2001 From: zlwu Date: Fri, 4 Sep 2026 17:31:47 +0800 Subject: [PATCH] docs: add design for transport plan arranged tab MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Record the approved design to insert an「已安排」list tab after「待安排」, filtering by followStatus=arranged. Co-authored-by: Cursor --- .../2026-09-04-pl-plan-arranged-tab-design.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs/superpowers/specs/2026-09-04-pl-plan-arranged-tab-design.md diff --git a/docs/superpowers/specs/2026-09-04-pl-plan-arranged-tab-design.md b/docs/superpowers/specs/2026-09-04-pl-plan-arranged-tab-design.md new file mode 100644 index 000000000..d157c2d77 --- /dev/null +++ b/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 一致,无额外隐藏逻辑 | +| 重置 | 仍回到「待安排」 |