Admin:任务页改造,采集与采购统一展示 #19

Closed
opened 2026-08-07 11:12:35 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求(含界面基线变更)
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / MVP
  • 阶段:3. PDD 商品数据与规格匹配
  • 依赖:#18(都要改 docs/admin/01 §4 和 05,避免同文件冲突)

要解决什么

tasks 是一张表,用 task_type 区分采集和采购。但「采购任务」页只查
task_type = 'purchase'——采集任务建出来了,界面上哪儿都看不到。

#18 做完后这个缺口会立刻暴露:操作员在 PDD 商品页点了「创建采集任务」,
然后就只能盯着 pdd_products.collect_status 猜。

collect_status 只能告诉你「这个商品采到没有」,看不出任务本身怎么了:

  • 商品一直卡在「采集中」——任务被领走了吗?谁领的?什么时候领的?
  • 建了 10 个采集任务一个都没被领 → 客户端根本没在跑,页面上完全看不出来
  • 采集失败了,collect_msg 只有一句话,看不到是哪次尝试、哪个客户端、什么错误码

做什么 / 不做什么

做:

  1. 「采购任务」模块改名为「采集采购」,同时显示采集和采购
  2. 加类型筛选和状态筛选
  3. 表格列重新设计:共用列 + 一列「目标」概括业务信息
  4. 双击行打开只读详情弹窗
  5. 底部状态条按状态统计
  6. 更新 docs/admin/01 §4.3 和 docs/admin/05

不做(各自独立工单):

  • 改派任务(01 §4.3 现有的 [建议] 项顺延到后续工单)
  • 重试 / 取消任务
  • 创建采购任务(在顺运宝模块)
  • 蝦皮、顺运宝、规格匹配相关

怎么做

列不要按类型并列,用「目标」概括

两种任务的业务字段完全不同——采购有订单号/颜色尺码/数量/价格上限,
采集只有 PDD 链接。并列会让采集任务行有一半是空列,很难看也没信息量。

改成固定列 + 一列「目标」用一句话概括:

☐ │ 任务编号        │ 类型 │ 目标                            │ 状态   │ 客户端    │ 更新时间
☐ │ PDD-20260807-01 │ 采集 │ PDD 737116531267                │ 已领取 │ 办公室-01 │ 15:20
☐ │ PDD-20260807-02 │ 采购 │ SO-001 · 黑色/M · 2件 · ≤¥42.00 │ 待领取 │ —         │ 15:22
列 显示规则
勾选 支持批量删除
任务编号 task_id
类型 采集 / 采购,文字,不能只靠颜色
目标 采集:PDD <pdd_goods_id>;采购:<order_no> · <颜色/尺码> · <数量>件 · ≤<价格上限>
状态 中文,7 个取值见 docs/admin/01 §6.2
客户端 assigned_client;无主任务显示 —(#17 之后采集任务默认无主)
更新时间 本地时区

[必须] 目标列所需字段全在 tasks 表上(pdd_goods_id / order_no /
pdd_options / quantity / max_price_cent),不需要 join。

[建议] 采集任务的目标可以 join pdd_products 取标题显示得更友好,
但 join 失败或商品已软删除时必须能退回显示 pdd_goods_id,不能空着。

[必须] 价格上限显示成 ¥42.00,底层是整数分。

筛选比搜索更常用

现在只有「订单号搜索」。但这个页面最常被问的问题是**「有没有卡住的任务」**,
不是「订单 SO-001 怎么样了」。

[类型▾ 全部] [状态▾ 全部]  关键词[____________] [搜索]   [删除]
  • 类型:全部 / 采集 / 采购
  • 状态:全部 + 7 个状态(待分配 / 待领取 / 已领取 / 成功 / 需人工 / 失败 / 已取消)
  • 关键词:同时匹配任务编号、订单号、PDD 商品 ID

双击打开只读详情弹窗

排查场景需要的信息表格里放不下:

┌──────────────────────────────────────────────┐
│ 任务 PDD-20260807-01                         │
├──────────────────────────────────────────────┤
│ 类型      采集                                │
│ 状态      已领取                              │
│ 分配客户端 办公室-01                          │
│ 领取时间  2026-08-07 15:20:31                 │
│ 完成时间  —                                   │
├──────────────────────────────────────────────┤
│ 执行参数                                      │
│ PDD 链接  https://mobile.yangkeduo.com/...   │
│ 目标规格  黑色 / M          (采购任务才有)  │
│ 数量      2                 (采购任务才有)  │
│ 价格上限  ¥42.00            (采购任务才有)  │
├──────────────────────────────────────────────┤
│ 错误                                          │
│ 错误码    PDD_PAGE_TIMEOUT                    │
│ 错误说明  商品页加载超时                       │
├──────────────────────────────────────────────┤
│                              [关闭]           │
└──────────────────────────────────────────────┘

[必须] 只读。本工单不做改派、重试、取消。

[必须] 采购任务才有的字段,在采集任务的弹窗里整段隐藏,不要显示空行。

[建议] result_data(Client 提交的完整结果)默认折叠,提供展开查看。
展开前不得包含凭据——按 docs/admin/06 §7,结果里本来就不该有 token。

底部状态条

共 42 条 · 待分配 3 · 待领取 5 · 已领取 2 · 成功 30 · 需人工 1 · 失败 1

[必须] 统计要跟随当前筛选。筛了「采集」就只统计采集任务,
否则数字和表格对不上,操作员会困惑。

模块改名

docs/admin/01 §4.3「采购任务模块」→「采集采购模块」,导航文字同步。

[必须] 名字是「采集采购」,不是「任务」。用户明确指定。
它直接点出这一页装的是哪两类任务,比泛称「任务」更能让操作员一眼知道点进去看什么。

[必须] 路由 /tasks 和 objectName 不变,避免无谓改动——
改路由会让已有的书签和文档里的链接全失效,而这一项没有任何收益。

预计修改文件

文件 改什么
admin/repository/task.go 列表查询:类型/状态筛选、关键词、统计
admin/service/task.go 新建:列表视图组装、目标列文案、状态统计
admin/handler/web/others.go TaskList 实现;TaskDelete 实现
admin/templates/task/list.html 列重写、筛选控件
admin/templates/task/detail_modal.html 新建
admin/templates/partials/header.html 导航文字改「采集采购」
admin/static/js/app.js 双击行开详情弹窗(复用 #18 的弹窗机制)
docs/admin/01-requirements.md §4.3 改名 + 列定义重写;§4 模块列表
docs/admin/05-ui-specification.md §2 导航、§6 页面章节重写

验收标准

列表

  • 导航和页面标题显示「采集采购」,全库无「采购任务」残留说法
  • 页面同时显示采集和采购任务
  • 类型筛选生效(全部 / 采集 / 采购)
  • 状态筛选生效(全部 + 7 个状态)
  • 关键词同时匹配任务编号、订单号、PDD 商品 ID
  • 目标列:采集显示 PDD 商品标识,采购显示订单号+规格+数量+价格上限
  • 价格上限显示为 ¥42.00
  • 无主任务的客户端列显示 —,不是空白或 <nil>
  • 类型和状态有文字,不只靠颜色
  • 空状态文案分情况(从没有过任务 / 筛选无结果)

详情弹窗

  • 双击行打开,显示分配客户端、领取时间、完成时间、执行参数、错误信息
  • 采集任务不显示采购专有字段(数量、价格上限、目标规格),整段隐藏
  • 弹窗只读,没有改派/重试/取消入口

统计

  • 底部按状态统计
  • 统计跟随当前筛选(筛了采集就只统计采集)

其他

  • 批量删除有二次确认
  • 所有 POST 有 CSRF 防护
  • SQL 全部参数化,查询只写在 repository 层
  • go vet / gofmt -l . / go test ./... 全过
  • 五个页面都能正常打开(回归)
  • 文档两处同步,链接与章节引用校验通过

怎么验证

cd D:\chengma\cmautobuy\admin
go vet ./...
gofmt -l .
go test ./... -count=1
go run .

手工走一遍:

  1. 在 PDD 商品页创建一条商品并「创建采集任务」
  2. 打开 /tasks,应看到一条采集任务,状态「待分配」,客户端 —
  3. 用 curl 模拟 Client 领取,刷新页面:状态变「已领取」,客户端列出现编号
  4. 提交结果,刷新:状态「成功」
  5. 手工插一条采购任务,确认目标列显示订单号+规格+数量+价格
  6. 切换类型筛选和状态筛选,确认表格和底部统计同步变化

不需要真机。

风险和回退

风险 应对
与 #18 改同一批文档和模板 先做完 #18 再开工
「目标」列拼接逻辑分散在模板里难维护 在 service 层组装成一个字符串,模板只负责显示
统计不跟随筛选会让人困惑 已列为验收项
弹窗展开 result_data 可能很大 默认折叠;超长时截断并提供完整复制

回退:改动集中在 admin/,git revert 即可,无表结构变更。

## 基本信息 - 类型:需求(含界面基线变更) - 父级大工单:#14 - 所属 MVP / 版本:#15 / MVP - 阶段:3. PDD 商品数据与规格匹配 - 依赖:#18(都要改 `docs/admin/01` §4 和 `05`,避免同文件冲突) ## 要解决什么 `tasks` 是**一张表**,用 `task_type` 区分采集和采购。但「采购任务」页只查 `task_type = 'purchase'`——**采集任务建出来了,界面上哪儿都看不到。** #18 做完后这个缺口会立刻暴露:操作员在 PDD 商品页点了「创建采集任务」, 然后就只能盯着 `pdd_products.collect_status` 猜。 `collect_status` 只能告诉你「这个商品采到没有」,看不出**任务本身怎么了**: - 商品一直卡在「采集中」——任务被领走了吗?谁领的?什么时候领的? - 建了 10 个采集任务一个都没被领 → 客户端根本没在跑,**页面上完全看不出来** - 采集失败了,`collect_msg` 只有一句话,看不到是哪次尝试、哪个客户端、什么错误码 ## 做什么 / 不做什么 做: 1. 「采购任务」模块改名为「**采集采购**」,同时显示采集和采购 2. 加类型筛选和状态筛选 3. 表格列重新设计:共用列 + 一列「目标」概括业务信息 4. 双击行打开只读详情弹窗 5. 底部状态条按状态统计 6. 更新 `docs/admin/01` §4.3 和 `docs/admin/05` 不做(各自独立工单): - **改派任务**(`01` §4.3 现有的 `[建议]` 项顺延到后续工单) - 重试 / 取消任务 - 创建采购任务(在顺运宝模块) - 蝦皮、顺运宝、规格匹配相关 ## 怎么做 ### 列不要按类型并列,用「目标」概括 两种任务的业务字段完全不同——采购有订单号/颜色尺码/数量/价格上限, 采集只有 PDD 链接。**并列会让采集任务行有一半是空列**,很难看也没信息量。 改成固定列 + 一列「目标」用一句话概括: ```text ☐ │ 任务编号 │ 类型 │ 目标 │ 状态 │ 客户端 │ 更新时间 ☐ │ PDD-20260807-01 │ 采集 │ PDD 737116531267 │ 已领取 │ 办公室-01 │ 15:20 ☐ │ PDD-20260807-02 │ 采购 │ SO-001 · 黑色/M · 2件 · ≤¥42.00 │ 待领取 │ — │ 15:22 ``` | 列 | 显示规则 | |---|---| | 勾选 | 支持批量删除 | | 任务编号 | `task_id` | | 类型 | 采集 / 采购,**文字,不能只靠颜色** | | **目标** | 采集:`PDD <pdd_goods_id>`;采购:`<order_no> · <颜色/尺码> · <数量>件 · ≤<价格上限>` | | 状态 | 中文,7 个取值见 `docs/admin/01` §6.2 | | 客户端 | `assigned_client`;**无主任务显示 `—`**(#17 之后采集任务默认无主) | | 更新时间 | 本地时区 | `[必须]` 目标列所需字段全在 `tasks` 表上(`pdd_goods_id` / `order_no` / `pdd_options` / `quantity` / `max_price_cent`),**不需要 join**。 `[建议]` 采集任务的目标可以 join `pdd_products` 取标题显示得更友好, 但 join 失败或商品已软删除时必须能退回显示 `pdd_goods_id`,不能空着。 `[必须]` 价格上限显示成 `¥42.00`,底层是整数分。 ### 筛选比搜索更常用 现在只有「订单号搜索」。但这个页面最常被问的问题是**「有没有卡住的任务」**, 不是「订单 SO-001 怎么样了」。 ```text [类型▾ 全部] [状态▾ 全部] 关键词[____________] [搜索] [删除] ``` - **类型**:全部 / 采集 / 采购 - **状态**:全部 + 7 个状态(待分配 / 待领取 / 已领取 / 成功 / 需人工 / 失败 / 已取消) - **关键词**:同时匹配任务编号、订单号、PDD 商品 ID ### 双击打开只读详情弹窗 排查场景需要的信息表格里放不下: ```text ┌──────────────────────────────────────────────┐ │ 任务 PDD-20260807-01 │ ├──────────────────────────────────────────────┤ │ 类型 采集 │ │ 状态 已领取 │ │ 分配客户端 办公室-01 │ │ 领取时间 2026-08-07 15:20:31 │ │ 完成时间 — │ ├──────────────────────────────────────────────┤ │ 执行参数 │ │ PDD 链接 https://mobile.yangkeduo.com/... │ │ 目标规格 黑色 / M (采购任务才有) │ │ 数量 2 (采购任务才有) │ │ 价格上限 ¥42.00 (采购任务才有) │ ├──────────────────────────────────────────────┤ │ 错误 │ │ 错误码 PDD_PAGE_TIMEOUT │ │ 错误说明 商品页加载超时 │ ├──────────────────────────────────────────────┤ │ [关闭] │ └──────────────────────────────────────────────┘ ``` `[必须]` **只读**。本工单不做改派、重试、取消。 `[必须]` 采购任务才有的字段,在采集任务的弹窗里**整段隐藏**,不要显示空行。 `[建议]` `result_data`(Client 提交的完整结果)默认折叠,提供展开查看。 展开前不得包含凭据——按 `docs/admin/06` §7,结果里本来就不该有 token。 ### 底部状态条 ```text 共 42 条 · 待分配 3 · 待领取 5 · 已领取 2 · 成功 30 · 需人工 1 · 失败 1 ``` `[必须]` 统计要**跟随当前筛选**。筛了「采集」就只统计采集任务, 否则数字和表格对不上,操作员会困惑。 ### 模块改名 `docs/admin/01` §4.3「采购任务模块」→「**采集采购**模块」,导航文字同步。 `[必须]` 名字是「采集采购」,**不是「任务」**。用户明确指定。 它直接点出这一页装的是哪两类任务,比泛称「任务」更能让操作员一眼知道点进去看什么。 `[必须]` 路由 `/tasks` 和 `objectName` **不变**,避免无谓改动—— 改路由会让已有的书签和文档里的链接全失效,而这一项没有任何收益。 ## 预计修改文件 | 文件 | 改什么 | |---|---| | `admin/repository/task.go` | 列表查询:类型/状态筛选、关键词、统计 | | `admin/service/task.go` | 新建:列表视图组装、目标列文案、状态统计 | | `admin/handler/web/others.go` | `TaskList` 实现;`TaskDelete` 实现 | | `admin/templates/task/list.html` | 列重写、筛选控件 | | `admin/templates/task/detail_modal.html` | 新建 | | `admin/templates/partials/header.html` | 导航文字改「采集采购」 | | `admin/static/js/app.js` | 双击行开详情弹窗(复用 #18 的弹窗机制) | | `docs/admin/01-requirements.md` | §4.3 改名 + 列定义重写;§4 模块列表 | | `docs/admin/05-ui-specification.md` | §2 导航、§6 页面章节重写 | ## 验收标准 **列表** - [ ] **导航和页面标题显示「采集采购」**,全库无「采购任务」残留说法 - [ ] 页面同时显示采集和采购任务 - [ ] 类型筛选生效(全部 / 采集 / 采购) - [ ] 状态筛选生效(全部 + 7 个状态) - [ ] 关键词同时匹配任务编号、订单号、PDD 商品 ID - [ ] **目标列**:采集显示 PDD 商品标识,采购显示订单号+规格+数量+价格上限 - [ ] 价格上限显示为 `¥42.00` - [ ] **无主任务的客户端列显示 `—`**,不是空白或 `<nil>` - [ ] 类型和状态有文字,不只靠颜色 - [ ] 空状态文案分情况(从没有过任务 / 筛选无结果) **详情弹窗** - [ ] 双击行打开,显示分配客户端、领取时间、完成时间、执行参数、错误信息 - [ ] **采集任务不显示采购专有字段**(数量、价格上限、目标规格),整段隐藏 - [ ] 弹窗只读,没有改派/重试/取消入口 **统计** - [ ] 底部按状态统计 - [ ] **统计跟随当前筛选**(筛了采集就只统计采集) **其他** - [ ] 批量删除有二次确认 - [ ] 所有 POST 有 CSRF 防护 - [ ] SQL 全部参数化,查询只写在 repository 层 - [ ] `go vet` / `gofmt -l .` / `go test ./...` 全过 - [ ] 五个页面都能正常打开(回归) - [ ] 文档两处同步,链接与章节引用校验通过 ## 怎么验证 ```powershell cd D:\chengma\cmautobuy\admin go vet ./... gofmt -l . go test ./... -count=1 go run . ``` 手工走一遍: 1. 在 PDD 商品页创建一条商品并「创建采集任务」 2. 打开 `/tasks`,应看到一条**采集**任务,状态「待分配」,客户端 `—` 3. 用 curl 模拟 Client 领取,刷新页面:状态变「已领取」,客户端列出现编号 4. 提交结果,刷新:状态「成功」 5. 手工插一条采购任务,确认目标列显示订单号+规格+数量+价格 6. 切换类型筛选和状态筛选,确认表格和底部统计同步变化 不需要真机。 ## 风险和回退 | 风险 | 应对 | |---|---| | 与 #18 改同一批文档和模板 | **先做完 #18 再开工** | | 「目标」列拼接逻辑分散在模板里难维护 | 在 service 层组装成一个字符串,模板只负责显示 | | 统计不跟随筛选会让人困惑 | 已列为验收项 | | 弹窗展开 `result_data` 可能很大 | 默认折叠;超长时截断并提供完整复制 | 回退:改动集中在 `admin/`,`git revert` 即可,无表结构变更。
Author
Owner

工单变更:模块名定为「采集采购」

原方案写的是改名为「任务」,用户明确指定用「采集采购」。已更新正文。

理由:直接点出这一页装的是哪两类任务,比泛称「任务」更能让操作员一眼知道点进去看什么。

路由 /tasks 和 objectName 仍然不变。

依赖已解除

原工单写着「依赖 #18,两者都要改 docs/admin/01 §4 和 05,避免同文件冲突」。#18 已于今日验收关闭,可以开工。

触发场景(用户实际遇到)

在 PDD 商品页勾选商品、点「创建采集任务」后,采购任务页看不到任何新增。查证:任务确实建成功了(库里 2 条 collect 任务,assigned_client 为 NULL、状态 pending),但 TaskList 目前是骨架——var rows []gin.H 从不查库,页面永远为空;且它的 TODO 写的是只查 task_type = 'purchase',采集任务本就不在范围内。

## 工单变更:模块名定为「采集采购」 原方案写的是改名为「任务」,用户明确指定用「**采集采购**」。已更新正文。 理由:直接点出这一页装的是哪两类任务,比泛称「任务」更能让操作员一眼知道点进去看什么。 路由 `/tasks` 和 `objectName` 仍然不变。 ### 依赖已解除 原工单写着「依赖 #18,两者都要改 `docs/admin/01` §4 和 `05`,避免同文件冲突」。#18 已于今日验收关闭,可以开工。 ### 触发场景(用户实际遇到) 在 PDD 商品页勾选商品、点「创建采集任务」后,采购任务页看不到任何新增。查证:任务确实建成功了(库里 2 条 `collect` 任务,`assigned_client` 为 NULL、状态 `pending`),但 `TaskList` 目前是骨架——`var rows []gin.H` 从不查库,页面永远为空;且它的 TODO 写的是只查 `task_type = 'purchase'`,采集任务本就不在范围内。
Author
Owner

实施完成,待验收

  • 实现提交: f0d7da3 feat: 采集采购页,采集与采购统一展示 (#19)
  • 归档提交: fbfa2fc docs: 归档任务 #19
  • 归档文档: docs/task/19-admin-采集采购页.md

验证结果(架构角色亲自复跑,Go 1.23.0)

go vet / gofmt -l . 无输出;go test ./... -count=1 → repository 1.347s / service 3.208s 全过。新增 25 个用例。

端到端(curl):

/tasks
  COL-8020a8729f111c15 | 采集 | PDD 737116531267                | 待分配 | —
  PUR-001              | 采购 | SO-001 · M/黑色 · 2件 · ≤¥42.00 | 待分配 | —
  共 2 条 · 待分配 2 · 待领取 0 · ...

/tasks?type=collect   → 共 1 条
/tasks?type=purchase  → 共 1 条
/tasks?type=purchase&status=cancelled → 共 0 条 +「查看全部」入口

重点复验三项,全部通过:

  • 统计跟随筛选 —— 分开写两条 SQL 最容易忘了给统计也加条件,实现把筛选拼装抽成共用函数,两边必然一致
  • 无主任务客户端列显示 —,不是空白或 <nil>
  • 采购专有字段在采集弹窗整段隐藏 —— 采集弹窗「数量/价格上限/目标规格」各 0 次,采购弹窗各 1 次

审查打回两次,两次都是我的检查指令给窄了

第一次:模块枚举没跟上(main.go 包注释、00-getting-started.md 的模块表少了一整行 PDD 商品)。

第二次:我给的检查命令是 grep -rn "四个模块",但过期说法还有「四个页面」这个变体,实现照做无误。第二次改成直接列 6 处确切行号,并点明 pdd/list.html:5 和归档文档里的「四个」是对的、不许改,一轮解决。

其中 06-quality-security.md 第 60、153 行最要紧:那是验证清单,写着「跑一遍四个页面断言 200」,照做的人只会测四个,PDD 页永远不在回归范围里。

未验证到的部分

  • 浏览器里的真实交互:双击开弹窗、Esc 关闭、全选联动、删除二次确认,只验证了服务端 HTML
  • 深/浅色主题、1366×768、显示缩放未实测
  • 采购任务没有创建入口(属顺运宝模块,未实现),验证用的 purchase 任务是手工插库的
  • 目标列规格顺序按维度名排序(M/黑色),确定但与工单示意图的 黑色/M 不同——pdd_options 是裸 map 无顺序信息,按键名排序是合理兜底

遗留

改派任务、重试/取消任务顺延后续工单;采购任务创建入口属顺运宝模块。

## 实施完成,待验收 - **实现提交:** `f0d7da3` feat: 采集采购页,采集与采购统一展示 (#19) - **归档提交:** `fbfa2fc` docs: 归档任务 #19 - **归档文档:** `docs/task/19-admin-采集采购页.md` ### 验证结果(架构角色亲自复跑,Go 1.23.0) `go vet` / `gofmt -l .` 无输出;`go test ./... -count=1` → repository 1.347s / service 3.208s 全过。新增 25 个用例。 端到端(curl): ``` /tasks COL-8020a8729f111c15 | 采集 | PDD 737116531267 | 待分配 | — PUR-001 | 采购 | SO-001 · M/黑色 · 2件 · ≤¥42.00 | 待分配 | — 共 2 条 · 待分配 2 · 待领取 0 · ... /tasks?type=collect → 共 1 条 /tasks?type=purchase → 共 1 条 /tasks?type=purchase&status=cancelled → 共 0 条 +「查看全部」入口 ``` 重点复验三项,全部通过: - **统计跟随筛选** —— 分开写两条 SQL 最容易忘了给统计也加条件,实现把筛选拼装抽成共用函数,两边必然一致 - **无主任务客户端列显示 `—`**,不是空白或 `<nil>` - **采购专有字段在采集弹窗整段隐藏** —— 采集弹窗「数量/价格上限/目标规格」各 0 次,采购弹窗各 1 次 ### 审查打回两次,两次都是我的检查指令给窄了 第一次:模块枚举没跟上(`main.go` 包注释、`00-getting-started.md` 的模块表**少了一整行 PDD 商品**)。 第二次:我给的检查命令是 `grep -rn "四个模块"`,但过期说法还有「四个**页面**」这个变体,实现照做无误。第二次改成直接列 6 处确切行号,并点明 `pdd/list.html:5` 和归档文档里的「四个」是对的、不许改,一轮解决。 其中 `06-quality-security.md` 第 60、153 行最要紧:那是**验证清单**,写着「跑一遍四个页面断言 200」,照做的人只会测四个,PDD 页永远不在回归范围里。 ### 未验证到的部分 - **浏览器里的真实交互**:双击开弹窗、Esc 关闭、全选联动、删除二次确认,只验证了服务端 HTML - 深/浅色主题、1366×768、显示缩放未实测 - **采购任务没有创建入口**(属顺运宝模块,未实现),验证用的 `purchase` 任务是手工插库的 - 目标列规格顺序按维度名排序(`M/黑色`),确定但与工单示意图的 `黑色/M` 不同——`pdd_options` 是裸 map 无顺序信息,按键名排序是合理兜底 ### 遗留 改派任务、重试/取消任务顺延后续工单;采购任务创建入口属顺运宝模块。
Author
Owner

验收通过,关闭

用户确认验收通过。归档状态已更新(3fdab7b)。

  • 实现提交: f0d7da3
  • 归档: docs/task/19-admin-采集采购页.md

遗留:改派任务、重试/取消任务顺延后续工单;采购任务创建入口属顺运宝模块。

## 验收通过,关闭 用户确认验收通过。归档状态已更新(`3fdab7b`)。 - **实现提交:** `f0d7da3` - **归档:** `docs/task/19-admin-采集采购页.md` 遗留:改派任务、重试/取消任务顺延后续工单;采购任务创建入口属顺运宝模块。
ila closed this issue 2026-08-07 17:18:40 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#19