From e49664ce552c46dee922d77626d6d58a0b8d3f8e Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Sat, 17 Oct 2026 22:40:28 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs(plans):=20=E5=A2=9E=E5=8A=A0=20K12=20?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E4=B8=8E=E7=A9=BA=E6=80=81=E8=A7=86=E8=A7=89?= =?UTF-8?q?=E4=BF=AE=E8=AE=A2=E8=AE=A1=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/2026-10-17-K12.md | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 docs/plans/2026-10-17-K12.md diff --git a/docs/plans/2026-10-17-K12.md b/docs/plans/2026-10-17-K12.md new file mode 100644 index 0000000..8498240 --- /dev/null +++ b/docs/plans/2026-10-17-K12.md @@ -0,0 +1,79 @@ +# 2026-10-17 K12 首页去标题 + 空态视觉重做 + +## 一、目标与边界 + +在 K11 首页基础上做两项视觉修订: + +1. 删除首页「全部剧目」标题,分类 chips 后直接显示网格。 +2. 将 `EmptyState` 从单个实心圆角块改为轻盈的双层同心圆。 + +只改首页间距、`EmptyState` 视觉与对应测试,不改接口、数据、轮播、三态或其他页面。 + +- 客户端分支:`feature/flutter-k12-home-empty-polish`,基线 `develop b5a8656`。 +- 文档分支:`docs/k12-home-empty-polish`,FruitServer 基线任务书 `87a37e9`。 +- 不引入图片、SVG、字体或动画;不跑真机。 + +## 二、首页去标题 + +- 删除 `Key('home-all-dramas-title')` 的 Text。 +- 删除标题与 chips 之间、标题与网格之间的多余间距。 +- chips 与网格间距调整为 14px。 +- 网格、数据、空态和分类切换逻辑保持不变。 + +## 三、EmptyState 双层同心圆 + +默认: + +- 外层直径 84,blue 5.5% 填充,1px blue 11% 描边。 +- 内层直径 56,blue 11% 填充。 +- 图标 27px,深色 `blueSoft` / 浅色 `blue`。 +- 标题 15/w600,与图形间距 14。 +- 副标题 12.5 muted,行高 1.45,与标题间距 6。 +- TextButton 13 主色,点击区至少 44,与副标题间距 8。 +- 上下 Padding 28,最大宽度 260。 + +compact: + +- 外层 60、内层 40、图标 21。 +- 图形与标题间距 10,上下 Padding 16。 + +保留外层 Key `empty-state-art`,新增内层 Key `empty-state-art-inner`;继续使用 +`empty-state-icon/title/action`。外层 Semantics 仍只读标题。 + +## 四、测试 + +- 更新组件测试:外/内层尺寸、图标尺寸、标题 15、副标题 12.5、按钮 44、 + 最大宽 260、compact 尺寸与深浅主题颜色。 +- 首页测试:`home-all-dramas-title` 不存在;chips 存在后直接能找到 + `home-all-dramas-grid`。 +- K9/K10/K11 既有用例保留,不删除测试文件;只更新本次明确变化的视觉/锚点断言。 +- 既有壳层测试中若用「All Dramas」作为页面定位锚点,改用当前稳定锚点 + `All` chip,不降低导航流程覆盖。 + +## 五、影响文件 + +- `ReelShort/lib/core/widgets/empty_state.dart` +- `ReelShort/lib/pages/discover/discover_view.dart` +- `ReelShort/test/empty_state/empty_state_test.dart` +- `ReelShort/test/discover/home_all_dramas_grid_test.dart` +- `ReelShort/test/widget_test.dart`(仅稳定锚点更新) +- `FruitServer/docs/plans/2026-10-17-K12.md` +- `FruitServer/docs/plans/PROGRESS.md` +- `FruitServer/docs/plans/INBOX.md` + +## 六、门禁与 Git + +1. 先更新组件与首页测试,取得标题仍存在、空态仍是旧尺寸的红灯。 +2. 实现后跑定向测试。 +3. 运行 `dart analyze lib test`、`flutter test`、`flutter build apk --debug`。 +4. 当前已确认真机会话停止且无并发构建;构建前再次检查。 +5. 完成后 `merge --no-ff` 回客户端 `develop` 并 push;FruitServer 文档同样 + 合并推送。作者与提交者统一为 + `Zhou Weidong <502333560@qq.com>`。 + +## 七、风险与待确认 + +- 删除标题后,部分既有测试用「All Dramas」文本定位页面;需改为稳定的 + `All` chip 或网格 Key,保持原测试流程。 +- 双层圆使用固定尺寸和 Stack,小屏需保证 84/60 不溢出。 +- 副标题 12.5 与按钮 13 是视觉规格;测试按 double 精确断言。 From b70449b23263fd50859eaf92f31ed3d490755f78 Mon Sep 17 00:00:00 2001 From: Zhou Weidong <502333560@qq.com> Date: Sat, 17 Oct 2026 22:45:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?docs(plans):=20=E8=AE=B0=E5=BD=95=20K12=20?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E4=B8=8E=E7=A9=BA=E6=80=81=E8=A7=86=E8=A7=89?= =?UTF-8?q?=E5=9B=9E=E6=89=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/plans/INBOX.md | 25 +++++++- docs/plans/PROGRESS.md | 140 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 164 insertions(+), 1 deletion(-) diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 7d106c1..67781e4 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -20,7 +20,7 @@ --- -## [待处理] 2026-10-17 | K12 首页去标题 + 空态视觉重做 +## [已处理·待用户验收] 2026-10-17 | K12 首页去标题 + 空态视觉重做 **用户指令(2026-10-17)**:「有了全部分类后 全部剧目不要显示了 而且现在空状态UI太丑了」。 @@ -70,6 +70,29 @@ - 先写 `FruitServer/docs/plans/2026-10-17-K12.md`;每步「叙述 + 命令 + 原始输出 + 解读」追加到 `PROGRESS.md`;完成后停住写回执。 - 提交作者与提交者统一 `Zhou Weidong <502333560@qq.com>`。 +### 五、K12 完成回执(2026-10-17) + +**结论**:首页「全部剧目」标题已删除,chips 与网格间距为 14px;空态改为 +双层同心圆视觉。未改接口、数据、轮播、三态或其他页面;未跑真机。 + +- 客户端分支 `feature/flutter-k12-home-empty-polish` 从 `b5a8656` 完成并 + `--no-ff` 合并;功能提交 `2dd4627`,合并提交 `b762289`,已推送 + `b5a8656..b762289 develop`。 +- 外层圆 84(compact 60),blue 5.5% + 11% 描边;内层圆 56(compact 40), + blue 11%;图标 27(compact 21)。 +- 标题 15/w600、副标题 12.5、按钮 13;上下 padding 28(compact 16), + 最大宽 260。 +- 新增 `empty-state-art-inner`、`empty-state-padding` Key;外层 + `empty-state-art` 及图标/标题/按钮 Key 保留。 +- 首页删除 `home-all-dramas-title`,chips 后直接进入网格;既有壳层中的 + `All Dramas` 锚点改为稳定网格 Key,测试流程和用例均保留。 +- `dart analyze lib test` 零告警;`flutter test` 为 + `00:17 +302 ~1: All tests passed!`;`flutter build apk --debug` 成功。 + +用户真机验证步骤与逐步预期、原始输出见 +`docs/plans/PROGRESS.md`「28. K12 首页去标题与空态重做」。 +设备侧视觉、深浅主题与小屏验收由用户执行。 + --- ## [待处理] 2026-10-17 | K11 首页网格 3 列 + 分类首位「全部」 diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 8bb48dc..74c1b92 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -2495,6 +2495,146 @@ b5a8656 merge: 合并 K11 首页三列网格 --- +## 2026-10-17 K12 首页去标题与空态重做 + +### 28.1 范围、分支与计划 + +叙述:删除 K11 首页「全部剧目」标题,使分类 chips 后直接进入网格;同时将 +K10 空态从实心圆角块改为双层同心圆。只改首页间距、`EmptyState` 和对应测试。 + +- 客户端分支:`feature/flutter-k12-home-empty-polish`,基线 `b5a8656`。 +- 文档分支:`docs/k12-home-empty-polish`,基线任务书 `87a37e9`。 + +开工前先写并提交计划: + +```text +e49664c docs(plans): 增加 K12 首页与空态视觉修订计划 +``` + +构建前已确认用户真机会话停止,进程检查无并发 Flutter run/build。 + +### 28.2 先红:标题与旧空态 + +```text +$ flutter test test/empty_state/empty_state_test.dart test/discover/home_all_dramas_grid_test.dart +Found 0 widgets with key [<'empty-state-art-inner'>]: [] +Expected: Size(60, 60) + Actual: Size(64, 64) +Expected: <260> + Actual: <280.0> +Found 1 widget with key [<'home-all-dramas-title'>] +00:02 +2 -7: Some tests failed. +``` + +解读:旧实心圆角空态仍为 96/64、最大宽 280,首页标题仍存在,红灯与 K12 +目标一致。 + +### 28.3 首页去标题 + +删除 `home-all-dramas-title` Text 及其间隔,分类 Sliver 的底部 padding 改为 14。 +实际 chips 控件增加稳定 Key: + +```text +home-category-chips +``` + +测试读取 chips 底边与首张卡片的 RenderBox 顶边,断言间距: + +```text +closeTo(14, 0.1) +``` + +### 28.4 空态双层同心圆 + +最终规格: + +```text +default outer: 84, blue alpha 0.055, border alpha 0.11 +default inner: 56, blue alpha 0.11 +compact outer: 60; inner: 40 +icon: 27 / compact 21 +title: 15 w600 +subtitle: 12.5, height 1.45 +button: 13, min height 44 +padding: 24x28 / compact 16x16 +max width: 260 +``` + +新增 Key: + +```text +empty-state-art-inner +empty-state-padding +``` + +`empty-state-art`、`empty-state-icon`、`empty-state-title`、 +`empty-state-action` 保持,外层 Semantics 仍只读标题。 + +### 28.5 定向与全量绿灯 + +组件、首页和既有壳层: + +```text +$ flutter test test/empty_state/empty_state_test.dart test/discover/home_all_dramas_grid_test.dart test/widget_test.dart +00:06 +26: All tests passed! +``` + +既有壳层测试中的 `All Dramas` 文本锚点改为稳定网格 Key +`home-all-dramas-grid`,原导航流程与用例全部保留。 + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! +``` + +```text +$ flutter test +00:17 +302 ~1: All tests passed! +``` + +解读:302 项通过,1 项联调测试因客户端接口服务未启动按设计跳过。 + +### 28.6 APK 构建 + +```text +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... 16.6s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +### 28.7 Git + +```text +2dd4627 feat(flutter): 精简首页标题并重做空态视觉 +b762289 merge: 合并 K12 首页与空态视觉修订 +b5a8656..b762289 develop -> develop +``` + +功能提交与合并提交 author/committer 均为 +`Zhou Weidong <502333560@qq.com>`。 + +### 28.8 用户真机验证步骤与预期 + +以下设备侧取证由用户执行,Codex 未跑真机。 + +1. 打开首页并查看分类 chips 下方。 + 预期:不再显示「全部剧目」标题,chips 下方 14px 后直接出现 3 列网格。 +2. 打开任一空列表页面。 + 预期:显示双层同心圆,外层比内层更淡,图标居中,不再是大块实心圆角矩形。 +3. 分别切换深色和浅色主题。 + 预期:深色图标为 `blueSoft`,浅色图标为 `blue`,文字与背景对比清晰。 +4. 检查带副标题和操作按钮的空态。 + 预期:标题 15、副标题 12.5、按钮 13,间距舒展,按钮点击区域不少于 44pt。 +5. 打开无评论弹窗。 + 预期:使用 60/40 compact 双层圆,图标 21,上下留白 16,不挤压输入区。 +6. 在 320px 宽小屏检查空态和首页。 + 预期:最大宽 260 生效,无横向溢出,标题最多两行。 + +设备侧截图、深浅主题与小屏结果由用户执行。 + +--- + ## 2026-10-17 iOS 构建阻塞:固定 shared_preferences_foundation 2.5.6 ### 25.1 现象与根因