Files
cmshoppe/docs/ui/tab1-import-collect.svg
T
chengmaandClaude Opus 4.8 479d02a2b8 docs: 初始化 cmshopee 文档、设计与项目骨架
- docs/ 完整 harness coding 文档集(愿景/需求/技术栈/架构/编码规则/任务/api/routes/current-state)
- 5 Tab 流水线设计 + UI 效果图 SVG(docs/ui/)
- cdp.py CDP 底座;prototypes/ 已验证原型脚本(待 editor.py 移植后清理)
- AGENTS.md/CLAUDE.md 入口、progress.md 执行流水、.gitignore(排除凭证/DB/图片)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 15:30:37 +08:00

118 lines
6.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<svg xmlns="http://www.w3.org/2000/svg" width="940" height="620" viewBox="0 0 940 620" font-family="'Segoe UI','Microsoft YaHei',sans-serif">
<defs>
<style>
.win{fill:#f4f6f9;stroke:#d3d9e2}
.hd{fill:#2b3a55}
.title{fill:#fff;font-size:14px;font-weight:600}
.tab{fill:#e8ebf0}
.tabA{fill:#f4f6f9}
.tabT{fill:#5c6573;font-size:13px}
.tabTA{fill:#2f6fed;font-size:13px;font-weight:600}
.sec{fill:#1f2733;font-size:13px;font-weight:600}
.mut{fill:#8a92a0;font-size:11px}
.cell{fill:#2a2f3a;font-size:12px}
.th{fill:#5c6573;font-size:12px;font-weight:600}
.btnP{fill:#2f6fed}
.btnPT{fill:#fff;font-size:12px;font-weight:600}
.btn{fill:#fff;stroke:#c5ccd6}
.btnT{fill:#3a4150;font-size:12px}
.panel{fill:#fff;stroke:#e2e6ec}
.rowL{fill:#fafbfc}
</style>
</defs>
<!-- window -->
<rect class="win" x="0.5" y="0.5" width="939" height="619" rx="8"/>
<rect class="hd" x="0.5" y="0.5" width="939" height="40" rx="8"/>
<rect class="hd" x="0.5" y="20" width="939" height="21"/>
<text class="title" x="18" y="26">cmshopee · Shopee 商品批量改标题换封面</text>
<circle cx="888" cy="20" r="6" fill="#f5bf4f"/><circle cx="910" cy="20" r="6" fill="#5ac26a"/><circle cx="866" cy="20" r="6" fill="#e0e4ea"/>
<!-- tab strip -->
<g>
<rect class="tab" x="0.5" y="41" width="939" height="38"/>
<rect class="tabA" x="8" y="45" width="150" height="38"/>
<rect x="8" y="45" width="150" height="3" fill="#2f6fed"/>
<text class="tabTA" x="34" y="68">① 导入采集</text>
<text class="tabT" x="186" y="68">② AI生成</text>
<text class="tabT" x="330" y="68">③ 更新shopee</text>
<text class="tabT" x="492" y="68">④ 账号管理</text>
<text class="tabT" x="636" y="68">⑤ 设置</text>
</g>
<!-- toolbar -->
<g transform="translate(0,94)">
<rect class="btn" x="18" y="0" width="110" height="30" rx="6"/><text class="btnT" x="34" y="20">导入 Excel…</text>
<rect class="btn" x="136" y="0" width="64" height="30" rx="6"/><text class="btnT" x="152" y="20">移除</text>
<rect class="btn" x="208" y="0" width="64" height="30" rx="6"/><text class="btnT" x="224" y="20">清空</text>
<text class="mut" x="560" y="20">别名以 Excel“别名”列匹配账号 · 未匹配→略过</text>
</g>
<!-- import summary bar -->
<g transform="translate(18,130)">
<rect x="0" y="0" width="904" height="40" rx="6" fill="#eef4ff" stroke="#cfe0fb"/>
<text x="14" y="18" font-size="12.5" fill="#1f4e91" font-weight="600">▸ 导入汇总</text>
<text x="86" y="18" font-size="12.5" fill="#2a2f3a">3 文件 · 128 行 · 有效 125 ·</text>
<text x="300" y="18" font-size="12.5" fill="#c2473d">无效 3</text>
<text x="350" y="18" font-size="12.5" fill="#2a2f3a">· 匹配 123 ·</text>
<text x="448" y="18" font-size="12.5" fill="#c2473d">未匹配 5 ⚠</text>
<text x="14" y="33" font-size="11" fill="#5c6573">匹配明细:女装店 60 · my主店 40 · 饰品店 23 (点“无效/未匹配”可在列表筛出定位)</text>
</g>
<!-- task table -->
<g transform="translate(18,180)">
<rect class="panel" x="0" y="0" width="904" height="190" rx="6"/>
<rect x="1" y="1" width="902" height="28" fill="#eef1f6"/>
<text class="th" x="14" y="19">账号名</text>
<text class="th" x="110" y="19">别名</text>
<text class="th" x="210" y="19">商品ID</text>
<text class="th" x="340" y="19">阶段</text>
<text class="th" x="470" y="19">旧标题</text>
<text class="th" x="770" y="19">旧封面</text>
<!-- rows -->
<g font-size="12">
<rect class="rowL" x="1" y="29" width="902" height="32"/>
<text class="cell" x="14" y="49">主店A</text><text class="cell" x="110" y="49">女装店</text>
<text class="cell" x="210" y="49">51100639510</text>
<circle cx="346" cy="45" r="4" fill="#20a464"/><text class="cell" x="356" y="49">已采集</text>
<text class="cell" x="470" y="49">…顯瘦百搭T恤</text><text class="cell" x="770" y="49">old_…01.jpg</text>
<text class="cell" x="14" y="81">主店A</text><text class="cell" x="110" y="81">女装店</text>
<text class="cell" x="210" y="81">51100640000</text>
<circle cx="346" cy="77" r="4" fill="#b6bdc7"/><text class="cell" x="356" y="81">待采集</text>
<text class="mut" x="470" y="81">—</text><text class="mut" x="770" y="81">—</text>
<rect class="rowL" x="1" y="93" width="902" height="32"/>
<text class="cell" x="14" y="113">马来店</text><text class="cell" x="110" y="113">my主店</text>
<text class="cell" x="210" y="113">52000000001</text>
<circle cx="346" cy="109" r="4" fill="#20a464"/><text class="cell" x="356" y="113">已采集</text>
<text class="cell" x="470" y="113">Korean Loose Tee</text><text class="cell" x="770" y="113">old_…07.jpg</text>
<text class="cell" x="14" y="145" fill="#c2473d">未知店</text><text class="cell" x="110" y="145" fill="#c2473d">x别名</text>
<text class="cell" x="210" y="145">52999999</text>
<circle cx="346" cy="141" r="4" fill="#e7a008"/><text class="cell" x="356" y="145" fill="#c2473d">略过·别名未匹配</text>
</g>
</g>
<!-- action buttons -->
<g transform="translate(18,382)">
<rect class="btnP" x="0" y="0" width="178" height="34" rx="6"/><text class="btnPT" x="22" y="22">▶ 采集旧标题/旧封面</text>
<rect class="btn" x="190" y="0" width="64" height="34" rx="6"/><text class="btnT" x="208" y="22">■ 停止</text>
<rect class="btn" x="700" y="0" width="204" height="34" rx="6"/><text class="btnT" x="724" y="22">回写旧数据到 Excel</text>
</g>
<!-- log -->
<g transform="translate(18,432)">
<text class="sec" x="0" y="12">运行日志</text>
<rect class="panel" x="0" y="20" width="904" height="160" rx="6"/>
<g font-family="Consolas,monospace" font-size="11.5" fill="#586073">
<text x="14" y="42">[10:21:03] 文件 tw01.xlsx → 匹配账号「女装店」(9222)</text>
<text x="14" y="62">[10:21:05] 51100639510 采集旧标题:…顯瘦百搭T恤</text>
<text x="14" y="82">[10:21:07] 下载旧封面 → images/nuzhuang_01/51100639510_old.jpg</text>
<text x="14" y="102">[10:21:08] set_collected ✓(已写 SQLite)</text>
<text x="14" y="122">[10:21:14] 52999999 别名「x别名」未匹配账号 → 略过</text>
<text x="14" y="142">[10:21:20] 采集完成 3/4,已回写 Excel 旧字段</text>
</g>
</g>
</svg>