--- id: T-574 title: ②封面画廊保存后停留并提示已保存 phase: 7 deps: [T-573] status: TODO created: 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 交互。 ## 执行记录 (做完在这里写:改了什么文件、跑了什么验证命令及结果、关键决策。)