From 6e485a7d88693a6dae40e75419ae305a21752020 Mon Sep 17 00:00:00 2001 From: chengma Date: Mon, 13 Jul 2026 15:48:46 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=A1=A5=20T-622=20=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E6=B8=85=E5=8D=95=EF=BC=88=E9=80=90=E5=85=83?= =?UTF-8?q?=E7=B4=A0=E8=A1=8C=E4=B8=BA=EF=BC=8C=E6=8F=90=E7=82=BC=E8=87=AA?= =?UTF-8?q?=E8=BF=81=E7=A7=BB=E6=BA=90=20app.js=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- docs/tasks/T-622.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/tasks/T-622.md b/docs/tasks/T-622.md index 84e84c2..4b112db 100644 --- a/docs/tasks/T-622.md +++ b/docs/tasks/T-622.md @@ -58,6 +58,31 @@ UI 已定稿:`docs/ui/tab6-suite-package-v1.svg`(本仓库家风:`#2b3a55` - 复用现有 `image_studio_*` 表与目录,不新造并行后端;不引入 QtWebEngine。 - 验证:`py -3.10 -m unittest`(相关模块)、`python -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`git diff --check` 全绿。 +## 按钮交互清单(每个可点元素 → 行为) + +> 行为多数可照迁移源 `web/app.js` 现成实现提炼;标「新增」的是 cmshopee 绑定账号+商品ID 后新增的语义,源里没有。 + +**顶部上下文条** +- `账号` 下拉(新增):切当前套图任务归属账号;账号变了商品原图/结果按新账号+商品ID 归属,需二次确认是否清空当前未生成配置。 +- `商品ID` 输入(新增):当前任务的目标商品;失焦校验(非空、数字/合法 itemid),非法则红框提示,不触发拉取。 +- `拉取蝦皮主图`(新增):以 `账号+商品ID` 走 CDP 拉线上主图列表→带入「商品原图」(第 1 张为主图);商品ID 为空/非法则禁用;拉取中转圈、失败给中文提示。 +- 任务标签 `套图任务 N`:单击切换任务(`switchTask`,拖拽中禁止切换);`×` 关闭(`closeTask`:生成中先 `confirm「任务生成中,关闭会取消该任务」`,确认才取消并关);`+` 新建(`createTask`,继承当前任务配置)。 + +**左侧配置面板** +- 商品原图:空位/`添加` → `chooseImages` 选图;整区支持拖拽、粘贴上传;缩略图可拖拽排序(第 1 张=主图),悬停 `×` 删除;超 16 张忽略并提示。 +- 4 个下拉(平台/国家/语言/比例):`onchange` 存设置;选中值须进生成上下文(见待决 2)。 +- `每张上传图分别作为主图生成` 复选框:`onchange` 存 `suite_per_image_primary`,联动合计张数。 +- `✧ AI 帮写`(`startAiWrite`):需先有图,否则提示;冻结当前图+配置提交,按钮变「AI 帮写中… + 计时」且旁边出现「取消」(`cancelAiWrite`);完成后若期间用户改过输入框 → `confirm` 是否用结果覆盖,否则直接填入卖点框;每任务独立、不阻塞切换。 +- 套图结构 `− / +`:增减该类张数(最小 0),联动「合计 N 张」与生成按钮 `(N)`。 +- `+ 添加自定义分类`:行内输入,Enter 提交,校验 `suiteNameError`(非空、无空格、≤10 字、不重名);分类名双击进入改名;行尾 `×` 删除自定义类。 +- `▶ 生成套图(N)`(`startGen`):校验(有图、有卖点、合计≥1);预估 >16 张先 `confirm`;提交后进入生成中,**同按钮变「■ 停止生成」(危险色)**;点停止 → `confirm「确认取消当前任务」`,取消未开始项、已发出的返回后丢弃。 + +**右侧结果区** +- `历史生成`(`setView('history')`):切历史视图,列往期批次+图片,可刷新、打开生成图片根目录、右键单图预览/删除。 +- `打开文件夹`(`openPath`):打开当前批次输出目录。 +- 结果卡片:单击预览大图;右键菜单 预览 / 复制路径 / 打开文件夹 / 重新生成该图 / 删除;`×` 删除该图(移废纸篓 + 「撤销」toast);失败卡片 `重试`(`retryAsset`,已有生成任务进行中则提示)。 +- `⋯` 更多(`moreMenu`):删除全部(`confirmDeleteAll`,二次确认,移废纸篓)。 + ## 边界(不改什么) - 不改动 `image_studio.py / image_studio_generation.py / image_studio_export.py` 的后端数据契约与异步生图协议(仅按需扩展字段)。