7.0 KiB
7.0 KiB
Frontend Implementation Checklist
Goal
把当前 biliup-next 已有的后端能力,整理成前端可直接开发的任务清单。
这份清单面向前端开发,不讨论后端架构,只回答 3 个问题:
- 先做哪些页面最值钱
- 每个页面要拆哪些组件
- 每个组件依赖哪些接口和字段
Priority
建议按这个顺序推进:
- 任务列表页状态升级
- 任务详情页
- 手工绑定完整版 BV
- Session 合并 / 重绑
- 设置页常用配置强化
Milestone 1: 任务列表页状态升级
目标:
- 用户一眼看懂任务是在运行、等待、失败还是完成
- 不需要理解内部状态机字段
页面任务
- 把当前任务列表中的内部状态替换成用户态状态
- 在任务列表中增加“当前步骤”列
- 在任务列表中增加“下次重试时间”列
- 在任务列表中增加“分P BV / 完整版 BV”列
- 在任务列表中增加“评论 / 合集 / 清理”状态列
组件任务
TaskStatusBadge- 输入:
task.status,task.retry_state,steps - 输出:
已接收 / 上传中 / 等待B站可见 / 需人工处理 / 已完成
- 输入:
TaskStepBadge- 输入:
steps - 输出当前步骤文案
- 输入:
TaskDeliverySummary- 输入:
delivery_state,session_context - 输出:
- 分P BV
- 完整版 BV
- 评论状态
- 合集状态
- 清理状态
- 输入:
接口依赖
GET /tasks
建议后端字段
- 现有可直接使用:
statusretry_statedelivery_statesession_context
- 建议前端先本地派生:
display_statuscurrent_step
Milestone 2: 任务详情页
目标:
- 用户不看日志也能知道这个任务发生了什么
- 用户能在单任务页完成最常见修复动作
页面任务
- 新建任务详情页 Hero 区
- 新建步骤时间线
- 新建交付结果卡片
- 新建 Session 信息卡片
- 新建产物列表卡片
- 新建历史动作卡片
- 新建错误说明卡片
组件任务
TaskHero- 标题
- 用户态状态
- 当前步骤
- 下次重试时间
TaskTimeline- ingest -> collection_b 全步骤
TaskDeliveryPanel- 分P
BV - 完整版
BV - 分P链接
- 完整版链接
- 合集状态
- 分P
TaskSessionPanelsession_keystreamerroom_idsegment_started_atsegment_duration_secondscontext_source
TaskArtifactsPanel- source_video
- subtitle_srt
- songs.json
- songs.txt
- clip_video
TaskActionsPanel- 运行
- 重试
- 重置
- 绑定完整版 BV
接口依赖
GET /tasks/<id>GET /tasks/<id>/stepsGET /tasks/<id>/artifactsGET /tasks/<id>/historyGET /tasks/<id>/timelineGET /tasks/<id>/context
操作接口依赖
POST /tasks/<id>/actions/runPOST /tasks/<id>/actions/retry-stepPOST /tasks/<id>/actions/reset-to-step
Milestone 3: 手工绑定完整版 BV
目标:
- 用户在前端直接补
full_video_bvid - 不需要再手工写
full_video_bvid.txt
页面任务
- 在任务详情页增加“绑定完整版 BV”表单
- 显示当前已绑定 BV
- 显示绑定来源:
- fallback
- task_context
- meta_sidecar
- webhook
组件任务
BindFullVideoForm- 输入框:
BV... - 提交按钮
- 成功反馈
- 错误反馈
- 输入框:
接口依赖
POST /tasks/<id>/bind-full-video
交互要求
- 提交前本地校验
BV[0-9A-Za-z]+ - 成功后刷新:
GET /tasks/<id>GET /tasks/<id>/context
Milestone 4: Session 合并 / 重绑
目标:
- 用户能处理“同一场多个断流片段”
- 用户能统一给整个 session 重绑完整版 BV
页面任务
- 在任务详情页显示当前任务所属 session
- 增加“查看同 session 任务”入口
- 增加“合并到现有 session”弹窗
- 增加“整个 session 重绑完整版 BV”表单
组件任务
SessionSummaryCardsession_key- task count
- 当前
full_video_bvid
SessionTaskList- 列出该 session 下所有任务
MergeSessionDialog- 输入目标
session_key - 选择任务
- 输入目标
RebindSessionForm- 输入新的完整版
BV
- 输入新的完整版
接口依赖
GET /sessions/<session_key>POST /sessions/<session_key>/mergePOST /sessions/<session_key>/rebind
交互要求
- 合并成功后刷新:
- 当前任务详情
- session 详情
- 任务列表
- 如果目标 session 已有
full_video_bvid- 前端提示“合并后会继承该完整版 BV”
Milestone 5: 设置页常用配置强化
目标:
- 用户无需直接改 JSON 就能调优常用行为
页面任务
- 在设置页高亮常用 ingest/session 配置
- 在设置页高亮 comment 重试配置
- 在设置页高亮 cleanup 配置
应优先暴露的配置
ingest.session_gap_minutesingest.meta_sidecar_enabledingest.meta_sidecar_suffixcomment.max_retriescomment.base_delay_secondscleanup.delete_source_video_after_collection_syncedcleanup.delete_split_videos_after_collection_synced
接口依赖
GET /settingsGET /settings/schemaPUT /settings
Common UX Rules
状态文案
failed_retryable不显示“失败”- 优先显示:
等待自动重试等待B站可见正在处理中需人工处理
错误提示
错误提示统一分成 2 行:
- 原因
- 建议动作
例如:
- 原因:视频刚上传,B站暂未可见
- 建议:系统会自动重试,无需人工处理
操作反馈
所有写操作都要有:
- loading 态
- 成功 toast
- 错误 toast
刷新策略
这些动作成功后必须自动刷新详情数据:
retry-stepreset-to-stepbind-full-videosession mergesession rebind
Suggested Frontend Types
建议前端统一定义这些类型:
type TaskDisplayStatus =
| "accepted"
| "processing"
| "waiting_retry"
| "waiting_visibility"
| "manual_action"
| "done";
type TaskSessionContext = {
task_id: string;
session_key: string | null;
streamer: string | null;
room_id: string | null;
source_title: string | null;
segment_started_at: string | null;
segment_duration_seconds: number | null;
full_video_bvid: string | null;
split_bvid: string | null;
context_source: string;
video_links: {
split_video_url: string | null;
full_video_url: string | null;
};
};
Suggested Build Order Inside Frontend Repo
建议按这个顺序拆 PR:
- 状态映射工具函数
- 任务列表页文案升级
- 任务详情页 Session/Delivery 面板
- 绑定完整版 BV 表单
- Session 合并 / 重绑弹窗
- 设置页常用配置高亮
Definition Of Done
这一轮前端完成的标准建议是:
- 用户可以在任务列表页看懂所有任务当前状态
- 用户可以在任务详情页看到分P/完整版 BV 和链接
- 用户可以手工绑定完整版 BV
- 用户可以把多个任务合并为同一个 session
- 用户可以给整个 session 重绑完整版 BV
- 用户不需要 ssh 登录机器改 txt 文件