9.6 KiB
9.6 KiB
Web-only 客户端页面规格
当前版本只交付浏览器控制台。macOS/Windows Agent、客户端配对码、设备列表和 Agent 日志不进入菜单,也不参与验收。浏览器与本机 Go 服务之间只有 REST 和 Browser WebSocket 两条链路。
视觉与交互基线
- 形态:左侧固定导航 + 顶部工作区/实时连接状态 + 右侧内容区;桌面宽度下优先扫描效率,窄屏下导航折叠为抽屉。
- 颜色:中性灰白背景,蓝色只用于主操作和进行中状态,绿色表示成功,橙色表示等待,红色表示失败/危险;不使用渐变、装饰性大卡片或模拟客户端窗口。
- 页面结构:一个页面一个主任务;统计使用紧凑指标条,列表使用表格,详情使用抽屉,确认操作使用弹窗,长流程使用分步表单。
- 状态:所有异步操作都显示 loading、成功、失败和可重试入口;WebSocket 断开时顶部显示“实时连接断开”,页面继续用 REST 刷新。
- 日志:任务详情必须展示时间、状态、动作、平台错误分类和可公开的回执;不展示 cookie、二维码 token 或原始响应体。
页面地图
EveryPublish Web Console
├─ 工作台
│ ├─ 今日任务 / 成功率 / 待处理挑战 / 执行器健康
│ └─ 最近任务与需要处理的异常
├─ 发布管理
│ ├─ 新建发布:素材 → 账号 → 内容 → 时间 → 预览 → 保存/提交
│ ├─ 任务列表:筛选、审核、重试、取消、详情
│ └─ 排期日历:查看和编辑草稿/定时任务
├─ 素材库:上传进度、去重、预览、分组、删除、一次性直链
├─ 账号管理:平台账号、登录二维码、登录状态、重新登录、解绑
├─ 审核中心:待审、通过、驳回批注
├─ 挑战中心:二维码/验证码、等待扫码、已扫码、确认、过期、重发
├─ 通知:任务失败、登录过期、挑战到达、审核结果
├─ 成员管理:成员、角色、工作区切换
├─ 设置:工作区资料、安全(密码修改)、站内通知
└─ 审计日志:登录、账号、素材、任务、挑战和设置操作
关键页面 ASCII
1. 工作台
┌────────────────────────────────────────────────────────────────────────────┐
│ EveryPublish 工作区 ▾ 实时连接 ● 用户 ▾ │
├───────────────┬────────────────────────────────────────────────────────────┤
│ 工作台 │ 今日概览 │
│ 发布管理 │ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────────────────┐ │
│ 素材库 │ │待审核 │ │执行中 │ │已成功 │ │挑战/异常 │ │
│ 账号管理 │ │ 12 │ │ 3 │ │ 86 │ │ 需要处理 2 │ │
│ 审核中心 │ └────────┘ └────────┘ └────────┘ └──────────────────────┘ │
│ 挑战中心 │ 最近任务 │
│ 通知 │ 标题 平台 状态 时间 操作 │
│ 成员管理 │ 春季活动主片 B站 执行中 12:10 详情 │
│ 设置 │ 产品短视频 抖音 失败 11:54 重试 │
│ 审计日志 │ [新建发布] [查看全部任务] │
└───────────────┴────────────────────────────────────────────────────────────┘
2. 账号登录(单一二维码状态机)
┌─账号管理─────────────────────────────────────────────────────────────────────┐
│ [添加账号] 平台 ▾ 状态 ▾ [刷新] │
│ 平台 备注/账号 状态 最后活跃 操作 │
│ B站 品牌主号 已绑定 08-21 12:03 重新登录 解绑 │
│ 抖音 投放号 绑定中 - 查看挑战 │
└─────────────────────────────────────────────────────────────────────────────┘
登录弹窗(服务器生成一次二维码,服务端后台轮询)
┌──────────────────────────────┐
│ 登录 B站 │
│ ┌──────────┐ │
│ │ QR 图片 │ │
│ └──────────┘ │
│ 等待扫码 → 已扫码 → 登录成功 │
│ [稍后处理] │
└──────────────────────────────┘
网页不会生成配对码,客户端也不会再要求网页生成第二个码。真实扫码成功只能由平台适配器轮询确认;没有扫码时保持“等待扫码”,不能自动激活账号。
3. 新建发布
┌─新建发布─────────────────────────────────────────────────────────────────────┐
│ ①素材 ②账号 ③内容 ④时间/预览 │
│ [上传素材] [选择账号] 标题 [____________] (●)立即 ( )定时 │
│ ┌──────────────┐ ☑ B站 品牌号 正文 ┌───────────────┐ │
│ │ 视频缩略图 │ ☑ 抖音 投放号 [ ] │ 平台预览 │ │
│ └──────────────┘ 标签 [____________] │ 标题/正文/封面 │ │
│ └───────────────┘ │
│ [保存草稿] [提交审核] │
└─────────────────────────────────────────────────────────────────────────────┘
排期日历中的草稿/驳回任务可点击打开排期抽屉,修改计划时间或清除为立即发布;已入队、执行中和已完成任务只读。
4. 任务详情与日志
┌─任务 #1042 详情──────────────────────────────────────────────────────────────┐
│ 春季活动主片 B站 / 品牌号 状态:执行中 [取消] │
│ 内容、素材、计划时间、审核批注 │
├─执行日志─────────────────────────────────────────────────────────────────────┤
│ 12:10:01 created 任务已创建 │
│ 12:10:03 pending_review 已提交审核 │
│ 12:10:12 dispatched 平台适配器已接收任务 │
│ 12:10:13 running 平台适配器开始处理 │
│ 12:10:29 failed network: 上传分片失败 │
│ [重试] │
├─结果─────────────────────────────────────────────────────────────────────────┤
│ 发布链接:- 平台回执:- 原始 cookie/token:永不显示 │
└─────────────────────────────────────────────────────────────────────────────┘
状态与 API 约定
账号:unbound → binding → active,登录失败为 expired 或 suspended;挑战:active/pending/scanned/solved/expired/suspended。任务:draft → pending_review → queued → dispatched → running → success/failed,失败允许 retry → queued。
登录绑定返回 challengeId、qrUrl、qrToken、prompt、expiresAt。后续状态由 Browser WebSocket challenge.status 推送,刷新页面再通过 GET /challenges 和 GET /accounts 补齐,不依赖单次推送。