64 lines
4.9 KiB
Markdown
64 lines
4.9 KiB
Markdown
---
|
||
id: T-555
|
||
title: ②AI生成列宽再分配与标题/生图用时计时
|
||
phase: 7
|
||
deps: [T-554, T-519, T-523]
|
||
status: TODO
|
||
created: 2026-07-08
|
||
---
|
||
|
||
## 问题 / 背景
|
||
|
||
T-554 已把②「AI生成」任务表格从一个「状态」列拆成「标题状态 / 图片状态」。实际使用时,两个状态列只展示短文本(如「已生成」「失败」「未启用」),当前列宽偏宽;旧标题和新标题才是运营需要对比阅读的主要内容,应把更多横向空间给标题文本。
|
||
|
||
②底部已有两条进度条(标题、图片),但右侧原本显示「失败 X」和「cmhub余额:X」。用户在生成标题、生成图片等待时间较长时,更需要看到两个阶段的实时用时变化,尤其生图等待 cmhub 返回可能持续数分钟。失败数量和余额仍可通过表格状态、运行日志、结束汇总、计费日志和设置页查询,不应占用进度条右侧最关键位置。
|
||
|
||
## 全栈工程分析
|
||
|
||
- **列宽调整风险低**:当前②表格列宽已经由 GUI 权重控制,不涉及 DB schema、任务状态、AI 生成编排或 Excel/Shopee。只需调整 `GenerateTab.TABLE_COLUMN_WEIGHTS` 和列宽测试。
|
||
- **实时用时应在 GUI 层实现**:用 PySide6 `QTimer` 在主线程每秒刷新标签即可;不应让 AI worker 频繁发“秒数”信号,避免后台线程和 UI 过度耦合。
|
||
- **用时口径要分阶段**:
|
||
- 生标题用时:从本轮开始生成标题阶段开始计时;标题阶段结束后冻结。
|
||
- 生图用时:从本轮开始生成图片阶段开始计时;图片阶段结束后冻结。
|
||
- 如果本轮没有对应阶段任务,显示 `生标题用时 0 秒` 或 `生图用时 0 秒`,不额外引入空状态文案。
|
||
- **不丢失败和余额信息**:底部进度条右侧不再显示失败数和 cmhub 余额;失败仍通过表格「标题状态 / 图片状态」、运行日志、结束弹窗和任务 `last_error` 可见;cmhub 余额仍由计费日志、余额刷新/设置页连接测试等既有入口体现。本任务不改计费 metadata 记录。
|
||
|
||
## 方案
|
||
|
||
1. **②表格列宽再分配**
|
||
- T-554 当前权重为:`店铺=1.0 / 商品ID=0.5 / 旧标题=1.0 / 新标题=1.0 / 标题状态=1.25 / 图片状态=1.25`。
|
||
- 将「标题状态」和「图片状态」列宽缩小到当前宽度的约 `33%`:`1.25 * 0.33 ≈ 0.4125`。
|
||
- 两个状态列共释放约 `1.675` 权重,平均分给「旧标题」和「新标题」,每列增加约 `0.8375`。
|
||
- 推荐新权重:`店铺=1.0 / 商品ID=0.5 / 旧标题=1.8375 / 新标题=1.8375 / 标题状态=0.4125 / 图片状态=0.4125`。
|
||
- 商品ID列继续保持 T-554 的 `0.5` 权重,不再变宽。
|
||
|
||
2. **进度条右侧改为阶段用时**
|
||
- 底部标题进度条右侧新增固定宽度标签:`生标题用时 0 秒`。
|
||
- 底部图片进度条右侧显示固定宽度标签:`生图用时 0 秒`。
|
||
- 去掉图片进度条右侧原来的 `失败 X` 和 `cmhub余额:X` 展示位置;该位置改为生图用时。
|
||
- 两个用时标签宽度保持一致,避免标题/图片两行进度条长度不齐。
|
||
- 本轮运行中每秒自动刷新秒数;本轮完成、停止或失败汇总后冻结最终秒数;下一次点击「开始生成」时重置为 0。
|
||
|
||
3. **计时触发口径**
|
||
- 点击「开始生成」后,如果 `title_total > 0`,立即启动标题计时;如果 `title_total == 0`,标题用时保持 0。
|
||
- 当标题阶段完成,冻结标题用时。
|
||
- 当图片阶段实际开始(可通过首个 cover 事件或进度中 `cover_total > 0` 且标题阶段已结束推导),启动生图计时。
|
||
- 当图片阶段完成、停止或失败汇总后,冻结生图用时。
|
||
- 计时只用于 GUI 显示,不写入 SQLite、Excel 或运行日志;运行日志已有分阶段耗时明细。
|
||
|
||
## 验收要点
|
||
|
||
- ②AI生成表格中「标题状态 / 图片状态」两列宽约为 T-554 当前宽度的 33%。
|
||
- 「旧标题 / 新标题」两列平均获得状态列缩出来的宽度,标题文本区域明显变宽。
|
||
- 商品ID列仍保持 T-554 的缩窄宽度,不因为本任务变宽。
|
||
- 标题进度条右侧显示 `生标题用时 N 秒`,运行中每秒递增。
|
||
- 图片进度条右侧显示 `生图用时 N 秒`,运行中每秒递增。
|
||
- 图片进度条右侧不再显示 `失败 X` 和 `cmhub余额:X`。
|
||
- 生成完成、停止或失败后,两个用时标签冻结最终秒数;再次开始生成时归零。
|
||
- 单测覆盖列宽权重变化、两个用时标签初始显示、开始/进度/结束后的计时启停,以及失败数/余额标签不再占用进度条右侧布局。
|
||
|
||
## 边界(不改什么)
|
||
|
||
只改②AI生成 GUI 展示和测试;不改 AI 生成流程、cmhub HTTP、并发策略、DB schema、运行日志持久化、计费 metadata、Excel、Shopee/CDP。失败数量和 cmhub 余额不从系统中删除,只是不再显示在两条进度条右侧。
|
||
|