Files

3.7 KiB

id, title, phase, deps, status, created
id title phase deps status created
T-574 ②封面画廊保存后停留并提示已保存 7
T-573
DONE 2026-07-09

问题 / 背景

②AI生成模块中,双击任务行打开封面画廊后,用户可以在多张 AI 生成封面候选图之间切换。当前行为是:勾选其它候选图后点击「保存」,程序会把该图片写入任务的 new_cover_path,但弹窗立即退出。

这个行为在数据层是正确的,但从用户体验看反馈不够清楚:

  • 用户无法在弹窗内立刻确认“刚才选择的图片已经保存为本地待更新封面”。
  • 弹窗关闭后,用户如果还想继续比较其它候选图,需要重新打开。
  • 「保存后关闭」容易让用户误解为已经更新到蝦皮线上商品主图。实际上这一步只更新本地任务的待更新封面,只有后续③「更新蝦皮」成功后,线上主图才会变化。

方案

  • app/gui/tabs/generate.py
    • 在 CoverGalleryDialog 底部按钮区,「保存」按钮左侧增加轻量状态提示 label。
    • 用户点击「保存」后:
      • 调用原有保存逻辑,继续写入 db.update_generated_cover()。
      • 保存成功后不关闭弹窗。
      • 提示 label 显示类似「已保存为本次更新封面」。
      • 刷新当前候选图状态,让新保存的图片标记为当前生效封面。
    • 保留未保存切换/关闭保护:如果用户选择了另一张但未保存,切换上一条/下一条或关闭时仍提示「保存 / 不保存 / 取消」。
    • 底部原「取消」按钮建议改为「关闭」,因为保存后弹窗可继续停留,关闭按钮语义更准确。

文案原则

  • 不使用「商品封面主图」作为保存成功提示,避免误导用户以为已经提交到蝦皮线上。
  • 推荐提示:
    • 已保存为本次更新封面
  • 如保存失败,继续沿用现有警告弹窗和状态保护。

验收要点

  • 在封面画廊中勾选其它 AI 生成图片,点击「保存」后:
    • DB 中当前任务 new_cover_path 更新为选中图片。
    • 弹窗保持打开,不自动退出。
    • 保存按钮左侧显示成功提示。
    • 当前候选图状态刷新为「当前生效封面」。
  • 点击「关闭」可以关闭弹窗。
  • 如果选择了另一张但未保存,切换任务或关闭弹窗仍会触发未保存选择确认。
  • 不影响 T-572 的 ↑ / ↓ 记录切换。
  • 不影响 T-573 的候选图横向滚动布局。
  • 验证命令:
    • py -3.10 -m unittest tests.test_gui
    • python -m ruff check app tests main.py
    • py -3.10 -m compileall app main.py
    • py -3.10 -m unittest discover -s tests
    • git diff --check

边界(不改什么)

  • 不改候选图文件发现规则。
  • 不改重新生成封面流程。
  • 不改 DB schema,只继续使用现有 update_generated_cover()。
  • 不改 AI/cmhub、Excel、③更新蝦皮或 CDP/Shopee 交互。

执行记录

  • 2026-07-09:已完成。
    • app/gui/tabs/generate.py:封面画廊底部新增保存提示 label;「保存」后不再关闭弹窗,成功写入本地 new_cover_path 后显示「已保存为本次更新封面」,并重建候选项刷新「当前生效封面」标记;原「取消」按钮改为「关闭」,仍走原关闭/未保存保护逻辑。
    • tests/test_gui.py:更新封面画廊保存测试,覆盖保存后弹窗不退出、DB 生效、提示文案显示、关闭按钮文案以及新候选项立即标记为当前生效。
    • 验证通过:
      • py -3.10 -m unittest tests.test_gui
      • python -m ruff check app tests main.py
      • py -3.10 -m compileall app main.py
      • py -3.10 -m unittest discover -s tests
      • git diff --check