feat(prototype): redesign procurement task workbench

This commit is contained in:
QiuSW
2026-08-03 15:00:49 +08:00
parent cad00877d3
commit 9c3c2b2cab
13 changed files with 741 additions and 283 deletions
+30 -19
View File
@@ -8,9 +8,9 @@
| 路由 | 页面 | 职责 | 用户故事 | 交互 |
| --- | --- | --- | --- | --- |
| `/login` | 登录 | 建立管理会话 | US-007 | IX-001 |
| `/tasks` | 工作台 | 按「谁持球」查看任务、查询筛选、进入详情 | US-002 | IX-003 |
| `/tasks/new` | 手工建单 | 填链接、颜色分类、尺码、数量、价格上限 | US-001 | IX-002 |
| `/tasks/{id}` | 任务详情 | 看要求与执行结果;**试选确认与授权**;待付款核对 | US-002、US-004、US-005 | IX-004、IX-005、IX-006 |
| `/tasks` | 采购任务 | 传统表格查询、创建弹窗、批量开始试选、进入详情抽屉 | US-001、US-002、US-010 | IX-002、IX-003、IX-004、IX-012 |
| `/tasks/new` | 手工建单直达页 | 复用创建表单,作为无脚本和直接访问的完整页兜底 | US-001 | IX-002 |
| `/tasks/{id}` | 任务详情 | 从列表进入时显示右侧详情抽屉;直接访问时显示完整页;承载试选确认、授权与待付款核对 | US-002、US-004、US-005 | IX-004、IX-005、IX-006 |
> `/tasks/import`(Excel)与 `/freight*`(ERP)随 F-002 / F-003 推迟到 V2。
@@ -19,19 +19,26 @@
## 二、web 端页面职责
### 工作台 `/tasks`
### 采购任务 `/tasks`
按**谁持球**分三条泳道,不按状态码平铺:
采用采购人员熟悉的传统表格,默认按创建时间倒序。固定列为:选择、标题、颜色、尺码、
价格上限、数量、采购结果、状态、创建时间;不设置操作列。
| 泳道 | 包含状态 | 含义 |
| --- | --- | --- |
| 等你决定 | `WAITING_CONFIRMATION`、`WAITING_PAYMENT`、`NEEDS_MANUAL`、`RECONCILIATION_REQUIRED` | 停在这里等人 |
| 机器在跑 | `PENDING`、`PENDING_RETRIAL`、`CLAIMED`、`RUNNING(TRIAL)`、`AUTHORIZED`、`ORDERING` | 不用操作 |
| 已结束 | `SUCCEEDED`、`FAILED`、`CANCELED` | 归档 |
- 落地时**第一条待决策任务直接展开**,不是先看一张表。
- 查询:关键词(标题 / 规格 / 任务编号)、泳道、时间范围。
- 计数只随关键词和时间范围变化,不随泳道选择变化。
- 标题链接在新标签打开拼多多商品页;标题下方任务编号链接打开内部任务详情。
- “采购结果”由结构化字段在展示层格式化为“阶段:颜色 | 尺码 | 单价 | 数量”;未产生
试选或下单结果时显示 `—`,不得把试选写成已下单。
- 双击行非控件区域,或聚焦行后按 Enter,打开 `/tasks/{id}` 的右侧详情抽屉。关闭抽屉、
按 Esc 或浏览器返回后,保留筛选、选择、滚动位置并把焦点还给原行。
- 直接访问 `/tasks/{id}` 或在抽屉中选择“在完整页面打开”时,使用完整详情页;关键路由可
深链接,不能只有无法复制地址的弹层状态。
- 第一工具行:导入(MVP 禁用占位并说明原因)、创建。创建打开模态表单;保存后任务以
`DRAFT` 状态出现在第一行。`/tasks/new` 保留为同表单的直达兜底。
- 第二工具行默认显示标题关键词、筛选、清除;状态和创建时间放在默认折叠的“更多条件”中,
保留 F-004 查询范围而不挤占常用操作。勾选 `DRAFT` 后切换成上下文批量栏,显示已选数量、
开始试选、清除选择;全选只覆盖当前筛选结果中的 `DRAFT`。
- “开始试选”把所选任务原子转为 `PENDING`,只进入第一趟试选队列;不签发授权、不创建
订单、不付款。其他状态复选框禁用并说明原因。
- 窄屏允许表格容器内部横向滚动,但页面本身不得横向溢出;选择列与标题列保持可见。
### 任务详情 `/tasks/{id}`
@@ -72,8 +79,9 @@
### 建单页
`/tasks/new` 填:任务名称、拼多多链接、颜色分类、尺码、数量、价格上限。
链接无法解析出 `goods_id` 时明确报错并保留已填内容。
`/tasks` 的创建弹窗与 `/tasks/new` 直达页复用同一表单:任务名称、拼多多链接、颜色分类、
尺码、数量、价格上限。链接无法解析出 `goods_id` 时明确报错并保留已填内容;保存成功后
任务为 `DRAFT`,尚未进入设备领取队列。
## 三、desk 端界面结构
@@ -102,7 +110,7 @@
## 四、导航规则
- web 端任务详情返回工作台时保留原筛选条件。
- web 端从路由化详情抽屉返回工作台时不重新加载列表;完整详情页返回时保留原筛选条件。
- desk 端启动时若服务端有本设备的活跃任务,优先恢复该任务,不允许直接领取下一条。
- 第一趟试选完成后**必须退出商品页**再进入下一轮轮询,不停在规格面板等人。
- desk 端在真机步骤执行期间禁用硬取消和关闭窗口,避免留下无法判定的中间态。
@@ -115,8 +123,11 @@
| 组件 | 归属 | 说明 |
| --- | --- | --- |
| `AppShell` | web 全局 | 导航、登录态、CSRF 注入 |
| `TaskLanes` | 工作台 | 三泳道渲染与折叠 |
| `QueryBar` | 工作台 | 关键词、泳道、时间范围 |
| `TaskTable` | 采购任务 | 任务表格、创建时间倒序、选择状态与结构化采购结果格式化 |
| `QueryBar` | 采购任务 | 标题关键词、筛选与清除 |
| `BulkTrialBar` | 采购任务 | `DRAFT` 批量选择与开始第一趟试选 |
| `CreateTaskDialog` | 采购任务 / 建单直达页 | 复用手工建单表单与字段错误 |
| `TaskDetailDrawer` | 采购任务 | `/tasks/{id}` 路由驱动的右侧详情容器与焦点恢复 |
| `SpecTrialCard` | 任务详情 | 试选确认卡(MVP 签名组件) |
| `AuthorizePanel` | 任务详情 | 确认 / 退回 / 放弃授权 |
| `PaymentCheckCard` | 任务详情 | 待付款核对与标记完成 |