建立可运行、可构建的 Go 骨架,供后续 R1~R5 在其上叠加。 后端: - main.go / app.go:Wails v2 窗口与 14 个前端可调方法。Wails 专有 API 只出现在这两个文件,internal/ 对 Wails 零依赖,便于将来迁移 v3 - internal/config:config.yaml 的读写、校验、脱敏。保存时按固定模板 渲染以保留注释,不用 yaml.Marshal - internal/store:SQLite(modernc.org/sqlite,无需 CGO)。建表迁移、 商品仓储、KV。重复同步不会覆盖本地下载与上传状态 - internal/logx:9 条脱敏规则,覆盖淘宝 token、Cookie、Authorization、 密码和图片 base64;并发安全的内存日志缓冲 前端(Vue 3 + Naive UI,按已确认原型 v4): - Sidebar:176px 可折叠,仅商品列表与参数设置两项,底部是登录状态的 唯一显示位置 - ProductListView:两行工具栏(四项筛选 + 重置搜索 / 四个操作按钮)、 商品表格、分页 - SettingsView:四张卡片,路径用文件与目录选择框 - LogWindow:运行日志子窗口,按级别过滤、自动滚动、导出 配置改用 YAML:分 huohanhan / taobao / download 三段。taobao 段刻意 没有账号密码字段,并有单元测试挡住后续加入。 构建相关: - .gitignore 只忽略 build/bin/,不忽略 build/。Wails 把 build/ 当源码 目录(图标、manifest),忽略掉会让别人克隆后构建失败 - .gitignore 忽略 config.yaml、payloads/ 和 *.har(含真实手机号与凭据) 未实现的下载数据、下载视频、上传数据三个方法返回明确的「还没实现」, 不静默失败。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LbdtsD3ohhSMy3KPoCgARq
65 lines
1.1 KiB
CSS
65 lines
1.1 KiB
CSS
/* 全局样式。
|
|
*
|
|
* 颜色跟原型 v4 保持一致,改之前先看看原型:
|
|
* https://qux.ilapage.cn/#/apps/6a97c618191a826306a7f5f7
|
|
*/
|
|
|
|
:root {
|
|
/* 侧边栏 */
|
|
--sb-bg: #111827;
|
|
--sb-brand: #0b1220;
|
|
--sb-active: #1e293b;
|
|
--sb-text: #cbd5e1;
|
|
--sb-dim: #64748b;
|
|
|
|
/* 内容区 */
|
|
--bg: #f3f4f6;
|
|
--card: #ffffff;
|
|
--line: #e5e7eb;
|
|
--row: #fcfcfd;
|
|
--head: #fafafb;
|
|
|
|
/* 文字 */
|
|
--ink: #111827;
|
|
--muted: #6b7280;
|
|
--faint: #9ca3af;
|
|
|
|
/* 状态色 */
|
|
--primary: #2563eb;
|
|
--ok: #059669;
|
|
--warn: #d97706;
|
|
--bad: #dc2626;
|
|
|
|
/* 侧边栏宽度。收起时由 JS 换成 --sb-mini。 */
|
|
--sb-open: 176px;
|
|
--sb-mini: 64px;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
html,
|
|
body,
|
|
#app {
|
|
margin: 0;
|
|
padding: 0;
|
|
height: 100%;
|
|
overflow: hidden;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Microsoft YaHei', 'PingFang SC', 'Helvetica Neue', Arial, sans-serif;
|
|
font-size: 13px;
|
|
color: var(--ink);
|
|
background: var(--bg);
|
|
/* 桌面程序里选中文字通常是误操作,只在表格和日志里允许。 */
|
|
user-select: none;
|
|
}
|
|
|
|
/* 表格内容和日志要能复制,排查问题时需要。 */
|
|
.selectable,
|
|
.log-body {
|
|
user-select: text;
|
|
}
|