diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 39f5735..bbc5382 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,3 +1,50 @@ +## [已处理] 2026-10-20 | K34-C 搜索框改白底 + 新建榜单/新剧/预约三个页面(仅 App 端) + +**用户指令(2026-10-20,原文)**: +> 「1 搜索框怎么是灰色的 2然后接着写榜单页面 top 几top 几这样子 你设计一个ui 跳转新的页面 新剧和预约也一样」 + +**口径(只改 Flutter,不动后端、不改接口)** + +### 一、搜索框(`lib/pages/discover/widgets/discover_search_field.dart`) +1. 常态底色改回**白色**(`AppColors.card`),保持高 44、圆角 22、无描边、无阴影。 +2. 聚焦态:1px `AppColors.blue` 描边(160ms 过渡);失焦回白底无边框。 +3. 图标 18、hint/输入 14 不变;Key 不变。 + +### 二、三个新页面(剧场工具行跳转,替换现有「即将上线」SnackBar) +统一结构:`Scaffold(backgroundColor: AppColors.ink)` + 顶部返回栏(`Icons.chevron_left_rounded`,Key `-back`)+ 标题 + 可选副标题;页面内可滚动;不显示底部导航。 + +1. 榜单页 `lib/pages/ranking/ranking_page.dart`(Key `ranking-page`) + - 标题「排行榜」(`l10n.topCharts`),副标题用 `l10n.rankingSubtitle`; + - 数据:`context.read().dramas` 按 `viewCount` 降序取前 50; + - 列表行(Key `ranking-row-`):左侧 `TOP 1/2/3...` 名次(第 1 名主色 w900 22 号、第 2/3 名 `#B8860B`/`#8C837B`、其余 `AppColors.subtle` 18 号,Key `ranking-top-`);中间封面 72×96 圆角 10;右侧两行标题(15 w700,最多 2 行)、题材标签(复用灰底 11 号小标签)、底部火焰 + `formatInteractionCount(viewCount)` + 热度; + - 行间距 12,左右内边距 14,白卡圆角 14、轻阴影;点击进详情页。 +2. 新剧页 `lib/pages/new_releases/new_releases_page.dart`(Key `new-releases-page`) + - 标题「新剧」(`l10n.rankingNew`),副标题「最新上架短剧」(新增 l10n `newReleasesSubtitle`); + - 数据:`CatalogController.dramas` 按 `id` 倒序(后端雪花 id,越大越新); + - 直接复用现有 `DramaGrid` 双列卡片(与剧场一致)。 +3. 预约页 `lib/pages/reserve/reserve_page.dart`(Key `reserve-page`) + - 标题「预约」(`l10n.reserve`),副标题「上线前预约,开播即通知」(新增 l10n `reserveSubtitle`); + - 当前无预约数据源:显示 `EmptyState`(Key `reserve-empty`),文案「暂无预约剧集」(`reserveEmptyTitle`)/「新剧上线后可在这里预约」(`reserveEmptyHint`),底部一个禁用态说明按钮「预约功能即将上线」(`comingSoon`),不伪造列表。 +4. 跳转:`discover_view.dart` 的工具行改为 `Navigator.push` 到上述三页;「筛选」保持弹分类面板。 + +### 三、l10n 新增(三份 arb + `flutter gen-l10n`) +- `newReleasesSubtitle`:zh「最新上架短剧」/ en「Newest arrivals」/ id「Rilis terbaru」 +- `reserveSubtitle`:zh「上线前预约,开播即通知」/ en「Reserve before launch」/ id「Reservasi sebelum rilis」 +- `reserveEmptyTitle`:zh「暂无预约剧集」/ en「No reservations yet」/ id「Belum ada reservasi」 +- `reserveEmptyHint`:zh「新剧上线后可在这里预约」/ en「Reserve new dramas here once announced」/ id「Reservasi drama baru di sini」 +- `topLabel(n)`:zh/en/id 均「TOP {n}」 + +**测试/门禁** +- 搜索框:常态白底、无边框;聚焦主题色描边; +- 榜单页:前 3 名展示 TOP 1/2/3、按播放量降序、点击进详情; +- 新剧页:出现双列卡片且按 id 倒序;预约页:空态与 Key 正确; +- 工具行三个按钮分别跳转对应页面; +- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。 + +**流程**:从 `develop` 拉 `feature/flutter-k34-ranking-pages`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 + +--- + ## [已处理] 2026-10-20 | K34-B 剧场搜索框改为参考图样式(浅灰胶囊、无描边无阴影)(仅 App 端) **用户指令(2026-10-20,原文)**: diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 487396d..6ad2f19 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -20989,3 +20989,35 @@ Running Gradle task 'assembleDebug'... ``` 解读:静态检查零告警,419 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。 + +## 2026-10-20 ReelShort:K34-C 搜索框白底 + 榜单/新剧/预约页 + +- 分支:`feature/flutter-k34-ranking-pages` +- 功能提交:`bfba2b7 feat(flutter): 剧场搜索框改白底并新增榜单新剧预约页` +- develop 合并提交:`ffedde0 merge: 合并 K34-C 榜单新剧预约页`,已推送。 +- 搜索框:常态改回白色 `AppColors.card`(高 44、圆角 22、无描边无阴影),聚焦 1px 主题橙描边,160ms 过渡。 +- 新增 `PlainPageScaffold`:ink 背景 + 返回栏 + 标题/副标题 + 可滚动内容,无底部导航;返回 Key 由各页面传入。 +- 榜单页 `RankingPage`(Key `ranking-page`):按 viewCount 降序取前 50,行内 TOP n(第 1 主色 22 w900、2 `#B8860B`、3 `#8C837B`、其余 subtle 18)、72×96 封面、两行标题、题材标签、火焰+热度,白卡圆角 14 轻阴影,点击进详情;Key `ranking-row-`/`ranking-top-`。 +- 新剧页 `NewReleasesPage`(Key `new-releases-page`):按 id 倒序,复用 `DramaGrid`;预约页 `ReservePage`(Key `reserve-page`):`reserve-empty` 空态 + 禁用「即将上线」按钮,不伪造列表。 +- 剧场工具行「排行榜/新剧/预约」改为 Navigator 跳转新页面,筛选仍开分类面板。 +- l10n 新增 `newReleasesSubtitle`/`reserveSubtitle`/`reserveEmptyTitle`/`reserveEmptyHint`/`topLabel(n)`(三语)。 + +测试:搜索框常态白底;榜单 TOP 1 且播放量最高者置顶、点击进详情;新剧页 `DramaGrid` 数据按 id 倒序;预约页空态与禁用按钮;三处跳转与返回。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:39 +423: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 7.4s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,423 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。