docs(plans): 留痕 K30-B 播放页数量与评论面板

This commit is contained in:
Zhou Weidong committed 2026-10-20 12:06:36 +08:00
1 parent 0877b1bb0f
commit 97b5c4ac37
2 files changed
+38 -1

No files matched your search

+37
View File
@@ -20033,3 +20033,40 @@ $ mvn -pl fruitshorts-app-api -am package -DskipTests
```
解读:全量后端测试 125 条(commerce 33 + admin-api 21 + app-api 59 + worker 12)全部通过,0 失败 0 错误;app-api 及其依赖模块打包成功。管理端未改动,表结构未改动。
## 2026-10-20 ReelShort:K30-B 播放页互动数量与评论面板收紧
- 分支:`feature/flutter-k30-counts-comments`
- 功能提交:`bed6bbb feat(flutter): 播放页互动数量与评论面板收紧`
- develop 合并提交:`ced1ec3 merge: 合并 K30-B 播放页数量与评论面板`,已推送。
- `Drama` 模型新增可选 `likeCount` / `favoriteCount` / `commentCount`,详情 JSON 按字符串解析(沿用 `jsonToInt`),卡片缺字段时保持 null,界面才回退文字标签。
- 新增 `formatInteractionCount`:`<10000` 显示原数,`>=10000` 显示一位小数的「万」(如 `1.2万`),并配单测钉住边界 9999 / 10000。
- 播放页右侧 rail:收藏、评论、喜欢显示数量,分享保持文字标签;点赞展示优先用点赞接口返回的最新计数(`InteractionController.likeCount`),无接口结果时用详情快照;收藏按服务端确认后的状态 ±1 跟随。
- 评论面板收紧:面板左右 padding 20→12,标题 20→18,标题与列表间距 12→8;列表项上下 padding 8、头像 32→28(回复 22)、昵称 12、时间 10、正文 14→13 且行高 1.2。
- 输入区:输入框固定高 40、内部左右 padding 12、字号 13、圆角 20;发送按钮 32×32、图标 18,间距 8。
- 发送成功调用 `FocusScope.of(context).unfocus()` 收起键盘;失败分支不清理输入、不移动焦点,继续保留原文便于修改。
- 其余播放/评论逻辑(分页、回复、点赞、删除、举报、票据、清屏)未改动。
测试补充(395 条,较 K29.9 新增 5 条):
- `should_show_rail_counts_from_detail_and_follow_server_results`:详情数量 `1.2万 / 3200 / 96`,分享无数量;点赞后按接口结果变 `2.3万`;收藏后 3200→3201。
- `should_unfocus_input_after_successful_post`:发送成功后输入框失焦;阻断用例补充「失败保留焦点」断言。
- `should_use_compact_comment_sizes`:发送按钮 32×32、输入框高 40、头像半径 14、正文 13/行高 1.2。
- `count_format_test` 与 `json_id_parsing_test` 覆盖计数格式化与字符串解析。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test
00:34 +395: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'...
7.8s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态检查零告警,395 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。