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

6.2 KiB
Raw Blame History

id, title, phase, deps, status, created
id title phase deps status created
T-627 压缩商品套图顶部空间并重排上下文操作栏 7
T-622
TODO 2026-07-14

问题 / 背景

⑥「商品套图」已在 T-622 落地,但当前顶部控件占用空间偏大,操作入口分散:

  • 内部「套图任务」使用 QTabBar,会继承主窗口 TAB_STYLE 的 min-height: 34px、上下 padding: 8px 等大导航样式,作为二级任务标签显得过高。
  • 账号下拉框和商品 ID 输入框当前最小宽度分别为 180px、150px;账号、商品 ID 位于左侧,「拉取蝦皮主图」单独靠右,未形成连续的任务上下文操作组。
  • 「添加图片」位于商品原图标题栏,「历史生成」「打开文件夹」位于生成结果工具栏,常用项目操作分散。
  • 生成设置通过 _prefixed_combo() 把字段名重复写进每个选项,如「平台 Shopee」「国家 中国台湾」。信息可识别,但视觉重复。

顾客希望压缩顶部高度和输入控件宽度,将常用操作集中,并去掉四个下拉选项中的字段名前缀。

百分比按以下可用性边界解释,不直接做不可读的机械缩放:

  • 「任务列表高缩小到 33%」按缩小约 33%、保留约 67% 高度处理;若只保留当前高度的 33%,任务文字和关闭按钮会被裁切。
  • 账号宽度可按当前 180px 的约 66% 起步,但须允许长账号名查看完整内容。
  • 商品 ID 不按当前 150px 的 60% 固定成 90px;Shopee 商品 ID 常为 11~13 位,90px 无法完整展示。

本任务是 T-622 的后续 UI 决策:覆盖 T-622 的 P2「下拉值内联前缀」展示规则和 P4 的具体宽度建议,但不改变四项设置的真实值、保存方式和生成上下文语义。

方案

1. 压缩二级任务标签

  • 仅为 suiteTaskTabs 增加对象级局部样式,不修改主窗口模块标签的全局 TAB_STYLE。
  • 二级任务标签的最终可视总高度控制在 32~36px,文字、选中态、关闭按钮均不得裁切。
  • 「新建套图任务」按钮与任务标签同行对齐;关闭按钮及新增按钮的有效点击区域不小于 24~28px。
  • 保留任务标签可切换、可拖动、可关闭及新增任务行为。

2. 统一顶部操作栏

把现有上下文条整理为左右两个连续操作组:

  • 左侧项目操作:历史生成 → 打开结果文件夹 → 添加图片。
  • 右侧任务上下文:账号 → 账号下拉框 → 商品ID → 商品 ID 输入框 → 拉取蝦皮主图。
  • 在左右操作组之间加入弹性空间,使账号、商品 ID 和拉取按钮整体靠右,而不是只让拉取按钮靠右。
  • 「打开文件夹」改名为「打开结果文件夹」,明确其打开当前生成批次目录的语义。
  • 从商品原图标题栏和生成结果工具栏移除迁移后的重复按钮;商品原图标题栏保留标题和图片数量,生成结果工具栏保留标题、汇总、撤销及更多操作。
  • 按钮迁移只调整视觉位置,不重新创建业务逻辑:历史切换的选中状态、打开目录、添加本地图片等原信号与行为保持不变。
  • 保持键盘 Tab 顺序与视觉顺序一致;图标按钮如被采用,必须提供中文 tooltip 和 accessibleName。

3. 控件宽度与长文本处理

  • 账号下拉框:最小宽度 120px、推荐宽度约 140px、最大宽度 160px;长账号显示受限时,通过当前项及下拉项 tooltip 提供完整账号信息。
  • 商品 ID 输入框:按 13 位数字和控件内边距通过字体度量确定宽度,并限制在约 120~140px;不得固定为 90px。
  • 商品 ID 输入框在正常窗口和 Windows 100% / 125% / 150% 显示缩放下,应完整展示常见 11~13 位数字;已有外部「商品ID」标签时,placeholder 可缩短为「输入商品ID」。
  • 窗口变窄时优先压缩弹性空白,不允许操作组重叠、按钮文字截断或控件移出可视区域。

4. 简化生成设置下拉内容

  • 保留当前两列两行布局,为四个字段增加紧凑、常驻的独立标签:平台、站点、语言、比例。
  • 下拉框选项只显示真实值,如 Shopee、中国台湾、繁体中文、1:1,不再在每个选项中重复「平台 / 国家 / 语言 / 比例」。
  • 不允许通过“截掉前两个字符”的字符串切片实现;应直接以真实值作为显示文本。
  • 每个选项的 itemData 继续保存原始业务值,配置保存/恢复及 build_suite_prompt() 获得的值不得变化。
  • 四个控件补充中文 tooltip 和无障碍名称;仅改变显示层,不改变平台、站点、语言和比例的选项集合。

验收要点

  • 二级套图任务栏明显降低,但任务名称、关闭按钮、新增按钮显示完整;①~⑥主模块标签高度和样式不变。
  • 顶部操作栏左侧依次为「历史生成 / 打开结果文件夹 / 添加图片」,右侧账号、商品 ID、拉取按钮连续排列并整体靠右。
  • 「历史生成」切换状态和结果刷新正常;打开结果文件夹、添加图片、拉取蝦皮主图行为与改版前一致,界面中无重复入口。
  • 长账号名可查看完整文本;11~13 位商品 ID 在常用字体和缩放比例下不被裁切。
  • 四个下拉框只显示值,独立标签能明确字段含义;切换、保存、恢复后 currentData() 及生成提示词中的业务值与改版前一致。
  • 在最小支持窗口、常规窗口以及 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。
  • 不修改 cmhub 生图请求、轮询、下载、重试、并发和计费逻辑。
  • 不修改拉取蝦皮主图的 CDP 流程、选择器或 Chrome 前台切换策略。
  • 不修改①~⑤模块 UI,不修改主窗口全局标签样式。
  • 不新增平台、站点、语言或比例选项,不改变现有配置值的含义。