docs(tasks): refine product suite settings and originals

This commit is contained in:
chengma
2026-07-14 15:03:59 +08:00
parent f99cde8e05
commit 17bb7521fd
2 changed files with 115 additions and 5 deletions
+18 -5
View File
@@ -14,7 +14,8 @@ created: 2026-07-14
- 内部「套图任务」使用 `QTabBar`,会继承主窗口 `TAB_STYLE` 的 `min-height: 34px`、上下 `padding: 8px` 等大导航样式,作为二级任务标签显得过高。
- 账号下拉框和商品 ID 输入框当前最小宽度分别为 180px、150px;账号、商品 ID 位于左侧,「拉取蝦皮主图」单独靠右,未形成连续的任务上下文操作组。
- 「添加图片」位于商品原图标题栏,「历史生成」「打开文件夹」位于生成结果工具栏,常用项目操作分散。
- 生成设置通过 `_prefixed_combo()` 把字段名重复写进每个选项,如「平台 Shopee」「国家 中国台湾」。信息可识别,但视觉重复。
- 生成设置通过 `_prefixed_combo()` 把字段名重复写进每个选项,如「平台 Shopee」「国家 中国台湾」。信息可识别,但视觉重复;四项设置当前按两列两行排列,仍会占用额外纵向空间。
- 四项设置已能随已绑定的商品项目写入 `image_studio_projects.suite_settings_json`,同一次运行中新任务也能继承当前任务;但软件重启后第一个未绑定商品的新任务仍回到固定默认值,尚未形成“最近一次选择作为新任务默认值”的完整记忆语义。
顾客希望压缩顶部高度和输入控件宽度,将常用操作集中,并去掉四个下拉选项中的字段名前缀。
@@ -54,27 +55,39 @@ created: 2026-07-14
- 商品 ID 输入框在正常窗口和 Windows 100% / 125% / 150% 显示缩放下,应完整展示常见 11~13 位数字;已有外部「商品ID」标签时,placeholder 可缩短为「输入商品ID」。
- 窗口变窄时优先压缩弹性空白,不允许操作组重叠、按钮文字截断或控件移出可视区域。
### 4. 简化生成设置下拉内容
### 4. 简化生成设置并改为单行布局
- 保留当前两列两行布局,为四个字段增加紧凑、常驻的独立标签:`平台`、`站点`、`语言`、`比例`。
- 四项下拉框改为四列单行排列,顺序固定为:`平台` → `站点` → `语言` → `比例`;每列上方保留紧凑、常驻的独立标签,下拉框本身位于同一行,避免只靠位置或当前值猜测字段含义。
- 四列使用等宽伸缩布局,并设置与当前选项匹配的合理最小宽度;左侧配置面板不得被拖到导致字段文字裁切或控件重叠的宽度。最小支持窗口和 Windows 100% / 125% / 150% 显示缩放下均不得产生横向滚动。
- 下拉框选项只显示真实值,如 `Shopee`、`中国台湾`、`繁体中文`、`1:1`,不再在每个选项中重复「平台 / 国家 / 语言 / 比例」。
- 不允许通过“截掉前两个字符”的字符串切片实现;应直接以真实值作为显示文本。
- 每个选项的 `itemData` 继续保存原始业务值,配置保存/恢复及 `build_suite_prompt()` 获得的值不得变化。
- 四个控件补充中文 tooltip 和无障碍名称;仅改变显示层,不改变平台、站点、语言和比例的选项集合。
### 5. 记住最近一次下拉选择
- 保持已有项目级语义:已绑定账号+商品 ID 的项目继续把完整套图设置保存到 `image_studio_projects.suite_settings_json`;重新打开已有项目时,项目自己的设置优先于任何全局默认值。
- 在 `data/config.json` 增加 `product_suite.last_settings`,只保存四个下拉字段 `platform/country/language/ratio`;不得把商品 ID、账号、提示词、图片路径或其他业务数据写入该配置段。
- 用户切换任一生成设置后,先按 `product_suite.normalize_suite_settings()` 的允许值归一化,再通过现有 `appconfig` 读写入口更新最近一次选择;不得引入 `QSettings` 或第二份旁路配置文件。
- 软件启动后的第一个未绑定商品的新任务,以 `product_suite.last_settings` 为默认值;同一次运行中通过“+”新建任务时,仍优先继承当前任务设置;绑定或打开已有商品项目后,再由该项目设置覆盖新任务默认值。
- 旧配置没有 `product_suite.last_settings`、字段缺失或值非法时,使用现有默认值 `Shopee / 中国台湾 / 繁体中文 / 1:1`,并保持向后兼容。
- 配置 schema 变化须同步 `docs/04-architecture.md` 的 `data/config.json` 说明,并补 `appconfig` 归一化与保存测试;不得因频繁切换下拉框丢失配置文件中的其他设置或敏感字段隔离规则。
## 验收要点
- 二级套图任务栏明显降低,但任务名称、关闭按钮、新增按钮显示完整;①~⑥主模块标签高度和样式不变。
- 顶部操作栏左侧依次为「历史生成 / 打开结果文件夹 / 添加图片」,右侧账号、商品 ID、拉取按钮连续排列并整体靠右。
- 「历史生成」切换状态和结果刷新正常;打开结果文件夹、添加图片、拉取蝦皮主图行为与改版前一致,界面中无重复入口。
- 长账号名可查看完整文本;11~13 位商品 ID 在常用字体和缩放比例下不被裁切。
- 四个下拉框只显示值,独立标签能明确字段含义;切换、保存、恢复后 `currentData()` 及生成提示词中的业务值与改版前一致。
- 四个下拉框同一行显示且只显示值,独立标签能明确字段含义;切换、保存、恢复后 `currentData()` 及生成提示词中的业务值与改版前一致。
- 已有商品项目重新打开后恢复自己的四项设置;未绑定商品的新任务在软件重启后采用最近一次选择;当前任务继承、已有项目设置和最近一次默认值之间的优先级符合本任务第 5 节。
- 旧版 `config.json` 无新增配置段时可正常启动并使用原默认值;非法最近值被归一化,保存最近值不覆盖其他配置。
- 在最小支持窗口、常规窗口以及 Windows 100% / 125% / 150% 显示缩放下检查:无文字重叠、无横向溢出、无按钮被遮挡,键盘 Tab 顺序正确。
- 自动验证:`py -3.10 -m unittest discover -s tests`、`python -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check` 全绿。
## 边界(不改什么)
- 不修改商品套图项目、图片资产、生成任务的数据结构和数据库 schema。
- 不修改商品套图项目、图片资产、生成任务的数据结构和 SQLite schema;仅允许增加本任务明确的 `data/config.json` 最近设置配置段。
- 不修改 cmhub 生图请求、轮询、下载、重试、并发和计费逻辑。
- 不修改拉取蝦皮主图的 CDP 流程、选择器或 Chrome 前台切换策略。
- 不修改①~⑤模块 UI,不修改主窗口全局标签样式。