23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
# 收藏与观看历史分页 UI
|
|
|
|
## 目标
|
|
|
|
- `/app/favorites` 与 `/app/watch/recent` 按 `PageResult{total,list}` 分页接入。
|
|
- 收藏页、观看历史页支持首屏、触底加载、无更多、刷新、失败重试和总数展示。
|
|
- 观看记录直接使用后端 `dramaTitle/dramaCover/episodeNumber`,缺失时安全兜底。
|
|
|
|
## 实现步骤
|
|
|
|
1. 新增通用 `PageResult<T>`,更新 LibraryApi、WatchApi、Repository 与内存替身。
|
|
2. FavoriteController、WatchRecordsController 增加分页状态、请求代次、dramaId 去重。
|
|
3. 页面通过滚动通知触发 `loadMore`,复用下拉刷新并增加通用分页 footer。
|
|
4. 观看卡片优先渲染接口字段,标题为空时用本地化“第 N 集”,封面为空显示占位。
|
|
5. 补 API、Controller 和 widget 测试,运行 analyze 与全量 flutter test。
|
|
|
|
## 风险与约束
|
|
|
|
- 刷新期间保持旧列表,成功后原子替换并回到第 1 页;失败保留旧数据。
|
|
- loadMore 与 refresh 通过请求代次隔离,旧响应不得覆盖新列表。
|
|
- 空页立即停止加载;`loaded >= total` 后不再请求。
|
|
- 不新增依赖、不提交现有 `pubspec.lock`,不启停服务、不操作真机。
|