From 8113a4efd3ed1f32ca004816f277215fa2c69748 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Tue, 20 Oct 2026 16:53:35 +0800 Subject: [PATCH] =?UTF-8?q?docs(plans):=20=E7=95=99=E7=97=95=20K46-A=20?= =?UTF-8?q?=E6=A6=9C=E5=8D=95=E6=96=B0=E5=89=A7=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/INBOX.md | 31 +++++++++++++++++++------------ docs/plans/PROGRESS.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 12 deletions(-) diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 24cfa62..382ef9f 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,20 +1,27 @@ -## [已处理] 2026-10-20 | K44-A 个人资料页:去掉生日字段 + 保存按钮文案修正(仅 App 端) +## [已处理] 2026-10-20 | K46-A 榜单/新剧/预约页支持下拉刷新与上拉加载(仅 App 端) **用户指令(2026-10-20,原文)**: -> 「在修改下 个人资料页面 设置生日先不要 收藏按钮文案改为保存」 +> 「榜单 新剧 预约页面都要下拉刷新 上拉加载功能」 -**现状** -- `lib/pages/account/account_profile_page.dart` 含生日选择字段(Key `account-birthday`)与 `_birthday` 状态; -- 保存按钮(Key `account-profile-save`)用的是 `l10n.save`,而该 key 当前值是「收藏」,按钮文案显示成「收藏」而不是「保存」。 +**口径(只改 Flutter,不动后端、不改接口;数据源仍是本地 `CatalogController.dramas`,客户端分页,不伪造接口)** -**口径(只改 Flutter,不动后端、不改接口)** -1. 去掉生日字段:删除 `_birthdayField`、`_birthday` 状态、日期选择逻辑与 `account-birthday` Key;保存时不再传 birthday(保持现有 `save()` 签名不改后端参数,仅传 null/不传)。 -2. `l10n.save` 文案改为「保存」(en:Save / id:Simpan);该 key 目前只被个人资料保存按钮使用,不影响收藏相关文案(`favorite` / `myFavorites` 等保持「收藏」)。 -3. 个人资料页其余字段、保存逻辑、错误提示、返回按钮(统一二级页头)保持不变。 -4. 更新测试:不再存在 `account-birthday`;保存按钮文案为「保存」;保存流程仍正常。 +1. 复用 K45-A 的 `AppPullToRefresh`(若 K45-A 尚未完成,先完成它)。 +2. 通用分页逻辑(抽到 `lib/core/widgets/paged_local_list.dart` 或页面内复用): + - 每页 20 条,`visible = all.take(pageCount * 20)`; + - 滚动到距底 ≤200 时自动加载下一页:`pageCount++`,底部先显示 20px 主题色转圈(≥300ms,避免闪烁),加载完若已到底显示「没有更多了」(新增 l10n `noMore`:没有更多了 / No more / Tidak ada lagi),Key `-no-more`; + - 下拉刷新:`catalog.refresh()`(静默)后 `pageCount = 1`,保持当前滚动位置回到顶部; + - 刷新中/加载中防重复触发。 +3. 榜单页:`AppPullToRefresh` 包裹整页滚动(三强 + 第 4 名起列表),第 4 名起列表使用上述分页;底部加载态 Key `ranking-load-more`。 +4. 新剧页: + - `AppPullToRefresh` 包裹; + - 「今日首映」取自第一页第一条;「更多新剧」横滑区保留前 12 条; + - 其下新增「全部新剧」双列网格(复用 `DramaGrid`),使用上述分页;底部 Key `new-releases-load-more`。 +5. 预约页:`AppPullToRefresh` 包裹(下拉调用 `catalog.refresh()`),空态仍为票根卡;无列表时不显示加载更多。 +6. 三页滚动体统一 `AlwaysScrollableScrollPhysics`,空列表/短列表也能下拉。 **测试/门禁** -- 新增/更新上述断言; +- 榜单/新剧:首屏 20 条,滚到底出现加载态并追加到 40 条;全部加载完显示 `-no-more`;下拉刷新后回到 20 条; +- 预约页:下拉触发 refresh,不出现加载更多; - `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。 -**流程**:从 `develop` 拉 `fix/flutter-k44-profile`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 +**流程**:从 `develop` 拉 `feature/flutter-k46-paged-pages`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index ebf7b56..88bd88b 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -21554,6 +21554,38 @@ Running Gradle task 'assembleDebug'... 解读:静态检查零告警,450 条测试全部通过,debug APK 构建成功。真机交互与刷新手感由用户验收。 +## 2026-10-20 ReelShort:K46-A 榜单/新剧分页与预约刷新 + +- 前置状态:K45-A 已合并,develop 合并提交 `805762f`。 +- 分支:`feature/flutter-k46-paged-pages` +- 功能提交:`c4dcb71 feat(flutter): 增加榜单新剧分页与预约刷新` +- develop 合并提交:`8f3049f merge: 合并 K46-A 榜单新剧分页与预约刷新`,已推送。 +- 新增 `PagedLocalListController` 与 `PagedLoadFooter`:每页 20 条、距底 200 内自动追加、加载态至少 300ms、20px 主题色转圈、防重复触发、到底展示「没有更多了」。 +- 榜单整页接入 `AppPullToRefresh`,前三名保持领奖台,第 4 名起按页追加;下拉静默 `catalog.refresh()` 后回到第一页并滚回顶部。 +- 新剧页接入下拉刷新;今日首映取第一页第一条,横滑区保留前 12 条,新增「全部新剧」双列网格并按 20 条分页。 +- 预约页接入下拉刷新,保留票根空态,不显示加载更多。 +- 三页滚动体均使用 `AlwaysScrollableScrollPhysics`;新增三语 `noMore` 与 `newReleasesAll`。 + +测试:榜单与新剧覆盖首屏 20、追加到 40、300ms 加载态、到底提示与刷新重置;预约覆盖下拉触发静默刷新且无加载更多。全量测试增至 453 条。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing 2 items... +No issues found! (ran in 2.8s) + +$ flutter test +00:45 +453: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 7.5s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,453 条测试全部通过,debug APK 构建成功。真机分页滚动与刷新手感由用户验收。 + ## 2026-10-20 ReelShort:详情页顶部圆形按钮统一修正 - 前置状态:K40-B 评论入口登录闸已合并,合并提交 `230f16a`。