商品列表支持缺少视频与未下载组合筛选 #24

Open
opened 2026-09-29 16:16:32 +08:00 by ila · 2 comments
Owner

来源与授权(2026-09-29)

用户要求“现在可以把缺视频和未下载视频的记录筛选出来吗?”,按功能实施指令处理,增加现有商品列表的组合筛选,不增加独立审批。

目标与方案

商品列表增加下载状态下拉,复用现有 Naive UI n-select,放在类型与上传筛选之间;显示标签与 aria-label 为“下载状态”。默认/重置:原在售中、缺少视频条件保持,新增未下载。未下载指 download_status 为 pending 或 failed,排除 running/done。提供全部、未下载、待下载、下载中、已下载、下载失败,用户点搜索应用,筛选页码重置并沿用现有选择清理逻辑。
Go ProductQuery 增加可选 downloadStatus;缺失/空值保持旧调用查全部下载状态,not_downloaded 仅为查询条件,不新增数据库状态值。SQL 参数绑定,与店铺、商品状态、诊断、上传等条件 AND 组合;COUNT 与分页列表使用同一条件。

非目标

不改 SQLite 表结构或任务/视频/上传状态,不扫描磁盘判定文件存在,不清空历史无视频状态,不调整任务范围/搜索/下载/上传流程,不访问真实淘宝或货憨憨写接口。

范围、依赖与风险

所属 MVP #5、Epic #2;基于当前已提交代码,不依赖 #23 人工验收。影响 ProductQuery/buildWhere、商品列表筛选及必要测试和Wiki。风险为默认显示范围收窄及未下载语义可能与文件存在不同;按 SQLite 下载状态筛选,下载中不加入重复处理候选。回退本提交可恢复原默认列表,无数据回退。保留用户 go.mod/go.sum、cmsp.code-workspace、cmsp.exe。

设计证据

小范围复用筛选栏,文字设计足够,无新页面/原型。概念→控件:下载状态→现有 n-select;版本依据为项目已有 Vue/Naive UI,保留标准下拉键盘/主题行为;回退为全部下载状态;验证查询语义、列表与总数、默认/重置、现有布局换行与构建。使用 windows-ui-ux 技能,真机 Narrator/缩放/高对比度未验证时明确记录。

验收

  • 默认/重置同时缺少视频与未下载;可选全部或单个下载状态。
  • pending/failed 包含,running/done 排除;与诊断、店铺、上传状态交集正确,分页总数一致;旧查询空字段兼容。
  • 查询不改变商品/视频/任务/上传状态,所有值参数化。
  • 受影响 SQLite 测试、Go测试/vet、前端及Windows构建、Harness检查;必要UI验证与未覆盖项记录。

文档影响

Wiki Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification 描述新字段、未下载语义及默认筛选;在线回读后同步镜像,无部署/归档影响。

状态

待验收

Gitea访问

当前未配置可用Gitea MCP,回退项目WikiClient API;凭据只从用户授权环境文件载入进程,不输出或保存。

## 来源与授权(2026-09-29) 用户要求“现在可以把缺视频和未下载视频的记录筛选出来吗?”,按功能实施指令处理,增加现有商品列表的组合筛选,不增加独立审批。 ## 目标与方案 商品列表增加下载状态下拉,复用现有 Naive UI n-select,放在类型与上传筛选之间;显示标签与 aria-label 为“下载状态”。默认/重置:原在售中、缺少视频条件保持,新增未下载。未下载指 download_status 为 pending 或 failed,排除 running/done。提供全部、未下载、待下载、下载中、已下载、下载失败,用户点搜索应用,筛选页码重置并沿用现有选择清理逻辑。 Go ProductQuery 增加可选 downloadStatus;缺失/空值保持旧调用查全部下载状态,not_downloaded 仅为查询条件,不新增数据库状态值。SQL 参数绑定,与店铺、商品状态、诊断、上传等条件 AND 组合;COUNT 与分页列表使用同一条件。 ## 非目标 不改 SQLite 表结构或任务/视频/上传状态,不扫描磁盘判定文件存在,不清空历史无视频状态,不调整任务范围/搜索/下载/上传流程,不访问真实淘宝或货憨憨写接口。 ## 范围、依赖与风险 所属 MVP #5、Epic #2;基于当前已提交代码,不依赖 #23 人工验收。影响 ProductQuery/buildWhere、商品列表筛选及必要测试和Wiki。风险为默认显示范围收窄及未下载语义可能与文件存在不同;按 SQLite 下载状态筛选,下载中不加入重复处理候选。回退本提交可恢复原默认列表,无数据回退。保留用户 go.mod/go.sum、cmsp.code-workspace、cmsp.exe。 ## 设计证据 小范围复用筛选栏,文字设计足够,无新页面/原型。概念→控件:下载状态→现有 n-select;版本依据为项目已有 Vue/Naive UI,保留标准下拉键盘/主题行为;回退为全部下载状态;验证查询语义、列表与总数、默认/重置、现有布局换行与构建。使用 windows-ui-ux 技能,真机 Narrator/缩放/高对比度未验证时明确记录。 ## 验收 - 默认/重置同时缺少视频与未下载;可选全部或单个下载状态。 - pending/failed 包含,running/done 排除;与诊断、店铺、上传状态交集正确,分页总数一致;旧查询空字段兼容。 - 查询不改变商品/视频/任务/上传状态,所有值参数化。 - 受影响 SQLite 测试、Go测试/vet、前端及Windows构建、Harness检查;必要UI验证与未覆盖项记录。 ## 文档影响 Wiki Architecture-and-Code-Map、Business-Rules-and-Glossary、Local-Development-and-Verification 描述新字段、未下载语义及默认筛选;在线回读后同步镜像,无部署/归档影响。 ## 状态 待验收 ## Gitea访问 当前未配置可用Gitea MCP,回退项目WikiClient API;凭据只从用户授权环境文件载入进程,不输出或保存。
Author
Owner

最终实现与验证(2026-09-29)

商品列表新增下载状态下拉:全部、未下载(含失败)、待下载、下载中、已下载、下载失败。初始/重置为在售中 + 缺少视频 + 未下载;点搜索应用,复用原分页/选择清理。未下载按 SQLite pending/failed 判断,排除 running/done,不扫描文件或清空历史无同款状态。

ProductQuery 增加可选 downloadStatus,空字段兼容旧调用;not_downloaded 仅作为查询条件,不写状态。参数化 SQL 与店铺、商品状态、诊断、上传等条件取交集,COUNT 与列表同条件,无表结构迁移/状态变更/外部查询副作用。

验证:临时 SQLite 的下载状态、组合条件、上传交集、分页总数、空字段兼容、SQL参数化及查询前后记录一致通过;go test ./...、go vet ./... 通过,HEAD基线临时modfile(Wails2.15)Go测试通过;当前 Wails2.16 前端及Windows构建通过,输出 build/bin/cmsp24.exe。只读核对本机SQLite聚合条件,未输出/记录真实商品或凭据。Harness55测试、check --strict、Wiki sync / sync --check、git diff --check通过。测试首次编译因缺少reflect import失败,补齐后通过。

未验证:Windows WebView2实际下拉交互、Narrator、高对比度/不同DPI及仅键盘真机行为;不以构建代替UI验收。复用Windows UI/UX技能与现有Naive UI标准控件,本次局部筛选不另建原型。

提交 88dba284ea685ff4406f13cf5faeb4b9e3ff17f4 已推送 main;代码及Wiki镜像同一提交。用户 go.mod/go.sum、cmsp.code-workspace、cmsp.exe 保留,未混入提交。程序 D:\chengma\cmsp\build\bin\cmsp24.exe。无部署或归档影响。

Wiki在线回读revision后同步镜像,镜像提交 88dba284ea685ff4406f13cf5faeb4b9e3ff17f4:

  • Architecture-and-Code-Map: fc8ac21bda0121896e608c5a61d828ad48d137e9
  • Business-Rules-and-Glossary: c9e553508e0ca8989a91d482ffe2680c53e73a1a
  • Local-Development-and-Verification: 855eae1f9be9d9d0ebdc77bc2ef09a7f9233d479

状态:待验收。用户未明确验收,不关闭工单。

## 最终实现与验证(2026-09-29) 商品列表新增下载状态下拉:全部、未下载(含失败)、待下载、下载中、已下载、下载失败。初始/重置为在售中 + 缺少视频 + 未下载;点搜索应用,复用原分页/选择清理。未下载按 SQLite pending/failed 判断,排除 running/done,不扫描文件或清空历史无同款状态。 ProductQuery 增加可选 downloadStatus,空字段兼容旧调用;not_downloaded 仅作为查询条件,不写状态。参数化 SQL 与店铺、商品状态、诊断、上传等条件取交集,COUNT 与列表同条件,无表结构迁移/状态变更/外部查询副作用。 验证:临时 SQLite 的下载状态、组合条件、上传交集、分页总数、空字段兼容、SQL参数化及查询前后记录一致通过;go test ./...、go vet ./... 通过,HEAD基线临时modfile(Wails2.15)Go测试通过;当前 Wails2.16 前端及Windows构建通过,输出 build/bin/cmsp24.exe。只读核对本机SQLite聚合条件,未输出/记录真实商品或凭据。Harness55测试、check --strict、Wiki sync / sync --check、git diff --check通过。测试首次编译因缺少reflect import失败,补齐后通过。 未验证:Windows WebView2实际下拉交互、Narrator、高对比度/不同DPI及仅键盘真机行为;不以构建代替UI验收。复用Windows UI/UX技能与现有Naive UI标准控件,本次局部筛选不另建原型。 提交 `88dba284ea685ff4406f13cf5faeb4b9e3ff17f4` 已推送 main;代码及Wiki镜像同一提交。用户 go.mod/go.sum、cmsp.code-workspace、cmsp.exe 保留,未混入提交。程序 `D:\chengma\cmsp\build\bin\cmsp24.exe`。无部署或归档影响。 Wiki在线回读revision后同步镜像,镜像提交 `88dba284ea685ff4406f13cf5faeb4b9e3ff17f4`: - Architecture-and-Code-Map: `fc8ac21bda0121896e608c5a61d828ad48d137e9` - Business-Rules-and-Glossary: `c9e553508e0ca8989a91d482ffe2680c53e73a1a` - Local-Development-and-Verification: `855eae1f9be9d9d0ebdc77bc2ef09a7f9233d479` 状态:待验收。用户未明确验收,不关闭工单。
Author
Owner

2026-09-29 在 #25 检查分页源码时纠正先前证据措辞:现有 search/普通翻页并没有主动清空 checkedIds,因此之前“复用原分页/选择清理”中的“选择清理”不准确。#24 组合筛选未新增勾选清理;Wiki 已更正。#25 仅每页条数切换明确清空勾选、回第一页,其余搜索/翻页行为不扩展。

2026-09-29 在 #25 检查分页源码时纠正先前证据措辞:现有 search/普通翻页并没有主动清空 checkedIds,因此之前“复用原分页/选择清理”中的“选择清理”不准确。#24 组合筛选未新增勾选清理;Wiki 已更正。#25 仅每页条数切换明确清空勾选、回第一页,其余搜索/翻页行为不扩展。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmsp#24