docs(plans): 下发 K10 统一空态任务

This commit is contained in:
Zhou Weidong authored and trae-solo-agent committed 2026-10-17 17:38:25 +08:00
1 parent deb6111419
commit 3f84bc6568
1 file changed
+78 -1
+78 -1
View File
@@ -20,7 +20,84 @@
---
## [已处理·待用户验收] 2026-10-17 | K9 首页剧目列表改造(2 列全部剧目)
## [待处理] 2026-10-17 | K10 统一空列表占位(EmptyState)
**用户指令(2026-10-17)**:「做空列表的占位图,所有的列表,要求简单大方、符合审美」。
> 依赖 K5 主题 token;**不引入图片资源**(用内置 `Icons` + 柔和圆形底),保证离线、体积与风格统一。
> 只改空态呈现,不改列表数据、接口与业务逻辑。
### 〇、开工前必读
1. `AGENTS.md`、`CODING_STANDARDS.md`、`GIT_WORKFLOW.md`
2. K5 主题 token(`AppColors` / `ColorScheme`)
3. 本 INBOX 条目
### 一、PM 已勘察的现状(实测,10 处空态)
| 页面/组件 | 代码位置 | 现有文案 |
|---|---|---|
| 首页 | `lib/pages/home/home_view.dart:56` | `noStories` |
| 首页剧目网格 | `lib/pages/discover/widgets/home_drama_grid.dart:52-53` | `noCategoryDramas` / `noSearchResults` |
| 收藏 | `lib/pages/favorites/favorites_page.dart:107` | `noFavorites` |
| 通知 | `lib/pages/notices/notices_page.dart:115` | `noNotices` |
| 详情剧集 | `lib/pages/drama_detail/drama_detail_view.dart:130` | `noEpisodesYet` |
| 我的-片单 | `lib/pages/mine/mine_view.dart:676` | `noSavedShows` |
| 我的-剧目 | `lib/pages/mine/mine_view.dart:736` | `noStories` |
| 下载 | `lib/pages/downloads/downloads_page.dart:151` | `noDownloads` |
| 观看记录 | `lib/pages/watch_records/watch_records_page.dart:97` | `noWatchRecords` |
| 评论弹窗 | `lib/pages/player/widgets/drama_comments_sheet.dart:225` | `noComments` |
现状均为纯文字(部分带按钮),风格不统一。
### 二、本批范围
#### K10-A 新建统一组件 `lib/core/widgets/empty_state.dart`
规格(简单大方):
- 布局:垂直居中,`Padding` 24;默认最大宽度 280,避免宽屏拉伸。
- 图形占位:96×96 圆角 28 的容器,背景 `AppColors.blue` 透明度 0.10–0.12;中央 `Icons` 40–44px,颜色 `AppColors.blueSoft`(深色主题)/ `AppColors.blue`(浅色主题按 `Theme.brightness` 取)。
- 标题:15–16px、w600、`onSurface`;居中,最多 2 行。
- 副标题(可选):13px、`muted`、居中,最多 2 行。
- 操作按钮(可选):`TextButton`/`OutlinedButton`,主色文字,最小点击区域 44pt;用于「重试」「去发现」等。
- `compact` 变体:图形 64×64、图标 28、字号缩小,用于评论弹窗等内嵌区域。
- 语义:外层 `Semantics(label: title)`;纯装饰图形 `excludeFromSemantics`。
- 参数建议:`icon`、`title`、`subtitle?`、`actionLabel?`、`onAction?`、`compact=false`、`key`。
#### K10-B 替换 10 处空态
- 按上表逐一替换为 `EmptyState`,图标对应语义:
- 首页/剧目:`movie_outlined`;分类:`grid_view_rounded`;搜索:`search_off_rounded`;
- 收藏:`favorite_border_rounded`;下载:`download_outlined`;记录:`history_rounded`;
- 通知:`notifications_none_rounded`;评论:`chat_bubble_outline_rounded`;剧集:`video_library_outlined`;
- 首页加载失败仍用错误态(`error_outline_rounded`),不要用空态冒充失败。
- 保留现有空态文案 key;如需副标题,优先复用已有 l10n,新增文案必须 en/zh/id 三份齐全(例如通用 `emptyHint`)。
- 保留现有按钮行为(重试/去发现等);评论弹窗使用 `compact`。
- 空态出现在原有滚动容器内时,保持可滚动与居中,不破坏三态切换。
#### K10-C 测试
- 组件单测:标题/副标题/按钮渲染、`compact` 尺寸、图标存在、Semantics。
- 页面测试:至少覆盖 收藏/下载/记录/通知/评论 五处空态渲染为 `EmptyState`(可通过 `find.byType(EmptyState)` + 文案);既有测试不得删改致绿。
- 深色/浅色、小屏不溢出。
### 三、明确不做
- 不引入图片/SVG/字体资源;不做动画插画。
- 不改列表数据、接口、三态逻辑、页面结构。
- 不改错误态与加载态,只统一空态视觉。
### 四、门禁与 Git
- `dart analyze lib test` 零告警;`flutter test` 全过;`flutter build apk --debug` 通过。
- 从干净 `develop` 拉 `feature/flutter-k10-empty-states`;完成后 `git merge --no-ff` 回 `develop` 并 push;不动 `main`。
- 先写 `FruitServer/docs/plans/2026-10-17-K10.md`;每步「叙述 + 命令 + 原始输出 + 解读」追加到 `PROGRESS.md`;完成后停住写回执。
- 提交作者与提交者统一 `Zhou Weidong <502333560@qq.com>`。
---
## [待处理] 2026-10-17 | K9 首页剧目列表改造(2 列全部剧目)
**用户指令(2026-10-17)**:「优化首页,要有全部剧目的列表,一行 2 个,不用显示继续观看的」。