Files
cmshoppe/docs/tasks/T-674.md
T

62 lines
4.1 KiB
Markdown
Raw Normal View History

---
id: T-674
title: AI生成与更新蝦皮单条任务右键软删除
2026-07-20 11:12:01 +08:00
status: DONE
phase: 7
deps: [T-670, T-672]
created: 2026-07-20
---
# T-674 AI生成与更新蝦皮单条任务右键软删除
## 问题 / 背景
T-670 已在①「导入采集」实现任务级软删除,但②「AI生成」没有右键删除入口,③「更新蝦皮」右键菜单只有「重置更新状态」。运营在后续工作流发现某一条不应继续生成或提交时,需要回到①才能删除,操作路径过长。
## 方案
- ②任务表启用中文右键菜单:右键先选中命中行,菜单只提供「删除本条记录」。②支持多选用于既有批量操作,但右键删除始终只作用于鼠标命中的一条,不新增批量删除。
- ③保留既有「重置更新状态」,在其后增加分隔线和「删除本条记录」。两项均只作用于右键命中的当前行;删除不要求先重置更新状态。
- 复用 `db.delete_task()` 与 T-670 的任务级软删除语义:确认框显示商品 ID、店铺、所属批次;若 `committed=1`,明确说明“仅删除本地记录,不会回滚蝦皮线上商品”;同时说明不删除原 Excel、本地图片或账号 Chrome 数据。
- ②生成中,或③更新/结果回写中,菜单中的删除项禁用;数据库层继续拒绝 `running` 或已删除任务,防止界面竞态。取消、失败和重复删除均保留数据并给出中文提示。
- 删除成功后刷新当前 Tab;通过既有主窗口工作流刷新回调同步①②③的批次、列表、筛选和统计。软删除记录不再进入采集、生成、更新、Excel 回写或默认统计。
## 验收标准
- [ ] ②、③右键空白处不弹业务操作;右键行会先选中该行,删除动作只处理该行。
- [ ] ②显示「删除本条记录」;③同时显示「重置更新状态」和「删除本条记录」,两者语义互不改变。
- [ ] 删除确认、取消、已提交线上提示、运行中禁用和删除成功后的跨 Tab 刷新与 T-670 一致。
- [ ] 删除后任务在①②③均不可见,不能进入生成、更新或回写;原 Excel、本地图片、账号 Chrome 与蝦皮线上商品不受影响。
- [ ] 不新增物理删除、恢复入口、批量删除或绕过 `db.delete_task()` 的直接 SQL。
## 测试与文档
- `tests/test_gui.py` 覆盖②/③右键选中、菜单项、确认/取消、已提交提示、运行中禁用、软删除后刷新和不影响其他任务。
- `tests/test_db.py` 复用或补充 `delete_task()` 既有保护回归。
- 更新 `docs/routes.md`、`docs/api.md` 的②/③任务表交互说明。
## 验证
```bash
py -3.10 -m unittest discover -s tests -p "test_gui.py"
py -3.10 -m unittest discover -s tests -p "test_db.py"
py -3.10 -m unittest discover -s tests
py -3.10 -m ruff check app tests main.py
py -3.10 -m compileall app main.py
git diff --check
```
## 非目标
- 不新增批量删除、恢复已删除记录、图片目录清理或 Excel 行物理删除。
- 不改变「重置更新状态」的现有本地状态语义。
- 不改 CDP、账号登录、AI/CMHub 或线上商品更新流程。
## 执行记录
2026-07-20 11:12:01 +08:00
- ②任务表启用右键菜单:先选中命中行,仅提供「删除本条记录」;②生成中或任务运行中禁用/拒绝删除。
- ③右键菜单保留「重置更新状态」,以分隔线增加「删除本条记录」;更新或回写运行中禁用/拒绝删除。
- 两个 Tab 均复用 `db.delete_task()`,确认框显示商品、店铺、批次与本地软删除边界;已提交线上记录明确提示不回滚蝦皮。成功后经主窗口刷新回调同步①②③。
- 更新路由/API 文档,并新增②/③右键选中、菜单内容、取消、已提交提示、软删除成功刷新和运行中拦截的 GUI 回归测试。
- 验证通过:`py -3.10 -m unittest discover -s tests -p "test_gui.py"`(208 项)、`py -3.10 -m unittest discover -s tests -p "test_db.py"`(21 项)、`py -3.10 -m unittest discover -s tests`(627 项)、`py -3.10 -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check`。