PDD 商品页增加单商品定位模式 #83

Closed
opened 2026-08-25 10:39:45 +08:00 by ila · 3 comments
Owner

需求来源

  • 提出时间:2026-08-25
  • 来源:#80/#81 验收后的 PDD 商品定位体验优化。
  • 用户确认方案:进入“单商品定位模式”后不增加“查看全部 PDD 商品”按钮;点击现有“查询”退出定位并按当前条件显示列表。

当前事实

  • SYB 的“查看 PDD 商品”跳转到 /pdd-products/index?productId=<内部商品ID>。
  • PDD 商品页目前仍调用完整列表接口,同时按 productId 打开详情抽屉,因此详情背后显示完整商品列表。
  • productId 是 GoAuto 数据库商品 ID,不是 PDD goods_id,不应混入现有关键词搜索语义。
  • 现有商品详情接口已经可以按内部 ID 返回单个商品,无需数据库或服务端接口变化。

目标与方案

  1. URL 包含有效 productId 时进入“单商品定位模式”:
    • 只请求该商品详情;
    • 列表只显示该商品,总数为 1;
    • 自动打开现有商品详情;
    • 显示轻量提示“当前定位:PDD- / goods_id <值>”。
  2. 定位模式不增加“查看全部 PDD 商品”按钮。
  3. 点击现有“查询”:
    • 从 URL 清除 productId;
    • 按当前关键词和状态条件执行普通列表查询;
    • 条件为空时显示全部商品。
  4. 点击“重置”:
    • 清除 productId、关键词、状态和分页;
    • 显示完整商品列表。
  5. 清除定位参数使用路由替换,刷新页面不会重新进入旧定位。
  6. 关闭详情抽屉后仍保留单商品列表,直到查询或重置。

非目标

  • 不新增“查看全部 PDD 商品”按钮。
  • 不把内部 productId 写入关键词搜索框。
  • 不修改 PDD 商品接口、数据库、采集任务、采购任务或 Android。
  • 不触发采集、采购、创建订单或支付。

设计证据

复用现有 PDD 商品页面、筛选栏、列表和详情抽屉,属于现有页面的小范围行为优化:

搜索 | 状态 | 查询 | 重置
当前定位:PDD-5022 / goods_id 123456789
---------------------------------------
列表只显示 PDD-5022
详情抽屉自动打开
  • 正常:只显示定位商品。
  • 查询:移除定位参数,按当前筛选条件显示普通列表。
  • 重置:移除定位参数和筛选条件,显示全部。
  • 不存在/已删除:显示“该 PDD 商品不存在或已删除”,列表为空,不回退完整列表。
  • 加载和失败:复用现有列表/详情加载状态及统一错误提示。
  • 权限:沿用 PDD 商品页面权限。

不新增页面、组件类型或主要流程,无需 QuantUX/HTML 原型。

依赖与影响

  • 依赖 #81 的 productId 跳转与详情自动打开。
  • 影响 Web 及其 E2E 测试。
  • 无数据库迁移、接口变化或高风险动作。

验收标准

  • 带 productId=5022 进入时列表只显示内部 ID 为 5022 的商品,总数为 1。
  • 自动打开同一商品详情,并明确展示内部 ID 与 goods_id。
  • 不增加“查看全部 PDD 商品”按钮。
  • 点击“查询”清除 productId,按当前条件显示普通列表;空条件显示全部。
  • 点击“重置”清除定位与筛选条件,显示全部。
  • 商品不存在时显示明确空态,不展示其他商品。
  • 普通 PDD 商品菜单入口和原有列表、编辑、批量采集行为不回归。
  • Web 定向测试、构建与 Harness 严格检查通过。

验证计划

  • Playwright 覆盖定位模式、查询退出、重置退出、无效 ID 和普通列表。
  • 运行 .\scripts\verify.ps1 -Component web。
  • 运行 python dev_scripts/harness.py check --strict。
  • 不执行真机采集、采购、创建订单或支付。

文档影响

无长期文档影响:本任务只优化现有管理页面的定位展示和查询交互,接口、数据、业务规则、配置和安全边界不变。

## 需求来源 - 提出时间:2026-08-25 - 来源:#80/#81 验收后的 PDD 商品定位体验优化。 - 用户确认方案:进入“单商品定位模式”后不增加“查看全部 PDD 商品”按钮;点击现有“查询”退出定位并按当前条件显示列表。 ## 当前事实 - SYB 的“查看 PDD 商品”跳转到 `/pdd-products/index?productId=<内部商品ID>`。 - PDD 商品页目前仍调用完整列表接口,同时按 `productId` 打开详情抽屉,因此详情背后显示完整商品列表。 - `productId` 是 GoAuto 数据库商品 ID,不是 PDD `goods_id`,不应混入现有关键词搜索语义。 - 现有商品详情接口已经可以按内部 ID 返回单个商品,无需数据库或服务端接口变化。 ## 目标与方案 1. URL 包含有效 `productId` 时进入“单商品定位模式”: - 只请求该商品详情; - 列表只显示该商品,总数为 1; - 自动打开现有商品详情; - 显示轻量提示“当前定位:PDD-<ID> / goods_id <值>”。 2. 定位模式不增加“查看全部 PDD 商品”按钮。 3. 点击现有“查询”: - 从 URL 清除 `productId`; - 按当前关键词和状态条件执行普通列表查询; - 条件为空时显示全部商品。 4. 点击“重置”: - 清除 `productId`、关键词、状态和分页; - 显示完整商品列表。 5. 清除定位参数使用路由替换,刷新页面不会重新进入旧定位。 6. 关闭详情抽屉后仍保留单商品列表,直到查询或重置。 ## 非目标 - 不新增“查看全部 PDD 商品”按钮。 - 不把内部 `productId` 写入关键词搜索框。 - 不修改 PDD 商品接口、数据库、采集任务、采购任务或 Android。 - 不触发采集、采购、创建订单或支付。 ## 设计证据 复用现有 PDD 商品页面、筛选栏、列表和详情抽屉,属于现有页面的小范围行为优化: ```text 搜索 | 状态 | 查询 | 重置 当前定位:PDD-5022 / goods_id 123456789 --------------------------------------- 列表只显示 PDD-5022 详情抽屉自动打开 ``` - 正常:只显示定位商品。 - 查询:移除定位参数,按当前筛选条件显示普通列表。 - 重置:移除定位参数和筛选条件,显示全部。 - 不存在/已删除:显示“该 PDD 商品不存在或已删除”,列表为空,不回退完整列表。 - 加载和失败:复用现有列表/详情加载状态及统一错误提示。 - 权限:沿用 PDD 商品页面权限。 不新增页面、组件类型或主要流程,无需 QuantUX/HTML 原型。 ## 依赖与影响 - 依赖 #81 的 `productId` 跳转与详情自动打开。 - 影响 Web 及其 E2E 测试。 - 无数据库迁移、接口变化或高风险动作。 ## 验收标准 - [ ] 带 `productId=5022` 进入时列表只显示内部 ID 为 5022 的商品,总数为 1。 - [ ] 自动打开同一商品详情,并明确展示内部 ID 与 `goods_id`。 - [ ] 不增加“查看全部 PDD 商品”按钮。 - [ ] 点击“查询”清除 `productId`,按当前条件显示普通列表;空条件显示全部。 - [ ] 点击“重置”清除定位与筛选条件,显示全部。 - [ ] 商品不存在时显示明确空态,不展示其他商品。 - [ ] 普通 PDD 商品菜单入口和原有列表、编辑、批量采集行为不回归。 - [ ] Web 定向测试、构建与 Harness 严格检查通过。 ## 验证计划 - Playwright 覆盖定位模式、查询退出、重置退出、无效 ID 和普通列表。 - 运行 `.\scripts\verify.ps1 -Component web`。 - 运行 `python dev_scripts/harness.py check --strict`。 - 不执行真机采集、采购、创建订单或支付。 ## 文档影响 无长期文档影响:本任务只优化现有管理页面的定位展示和查询交互,接口、数据、业务规则、配置和安全边界不变。
Author
Owner

实施完成,等待用户验收

已按确认方案完成并推送到 main。

实现

  • 携带有效 productId 进入 PDD 商品页时,仅请求并显示对应商品,同时自动打开详情抽屉;
  • 显示“当前定位:PDD-内部编号 / goods_id …”;
  • 定位模式不显示批量选择列,不新增“查看全部 PDD 商品”按钮;
  • 关闭详情后仍停留在单商品列表;
  • 点击“查询”清除 productId,按当前筛选条件加载正常列表;
  • 点击“重置”清除 productId 和筛选条件,加载全部列表;
  • 无效或不存在的编号显示明确空状态,不误回退到完整列表。

代码与验证

  • 提交:0991fd2 feat(#83): add PDD product locate mode
  • 专项 Playwright:2/2 通过
  • git diff --check:通过
  • python dev_scripts/harness.py check --strict:通过
  • .\scripts\verify.ps1 -Component web:通过(lint 0 error,保留项目既有 warnings;Vite 构建成功)
  • 核心 Wiki 镜像:python dev_scripts/harness.py sync --check 通过

文档证据

未验证项

等待用户在实际 Admin 页面验收从 SYB 商品跳转、关闭详情、查询退出和重置退出四个交互。未修改服务端、数据库或 Android Agent。

## 实施完成,等待用户验收 已按确认方案完成并推送到 `main`。 ### 实现 - 携带有效 `productId` 进入 PDD 商品页时,仅请求并显示对应商品,同时自动打开详情抽屉; - 显示“当前定位:PDD-内部编号 / goods_id …”; - 定位模式不显示批量选择列,不新增“查看全部 PDD 商品”按钮; - 关闭详情后仍停留在单商品列表; - 点击“查询”清除 `productId`,按当前筛选条件加载正常列表; - 点击“重置”清除 `productId` 和筛选条件,加载全部列表; - 无效或不存在的编号显示明确空状态,不误回退到完整列表。 ### 代码与验证 - 提交:`0991fd2 feat(#83): add PDD product locate mode` - 专项 Playwright:2/2 通过 - `git diff --check`:通过 - `python dev_scripts/harness.py check --strict`:通过 - `.\scripts\verify.ps1 -Component web`:通过(lint 0 error,保留项目既有 warnings;Vite 构建成功) - 核心 Wiki 镜像:`python dev_scripts/harness.py sync --check` 通过 ### 文档证据 - Wiki:https://git.ilapage.cn/OPC/goauto/wiki/Task-83-PDD-%E5%95%86%E5%93%81%E5%8D%95%E5%95%86%E5%93%81%E5%AE%9A%E4%BD%8D%E6%A8%A1%E5%BC%8F.- - Wiki revision:`31ac6ed1fc5ca671ae4215152071ef214b52552e` ### 未验证项 等待用户在实际 Admin 页面验收从 SYB 商品跳转、关闭详情、查询退出和重置退出四个交互。未修改服务端、数据库或 Android Agent。
Author
Owner

关联回归缺陷 #84 已修复并推送,提交 a622d71。单商品定位模式现已恢复采集勾选;详情与列表共用服务端采集资格判断。#84 保持待用户验收,#83 仍不关闭。

关联回归缺陷 #84 已修复并推送,提交 `a622d71`。单商品定位模式现已恢复采集勾选;详情与列表共用服务端采集资格判断。#84 保持待用户验收,#83 仍不关闭。
Author
Owner

用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。

用户于 2026-08-28 明确确认本工单验收通过。按项目流程记录验收结论并关闭工单;本次仅更新工单状态,无新增长期文档事实,不重复同步 Wiki。
ila closed this issue 2026-08-28 15:07:23 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#83