feat(mobile-next): 补齐语音未听红点、录音浮层与 50-60s 时限

按 B-187 打回修复 4.3/4.4 阻塞项,输入框与按住说话改用 searchBg。

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
编码工程师
2026-08-20 04:22:06 +08:00
co-authored by Cursor multica-agent
parent e40ece184b
commit 15d7f1935e
14 changed files with 233 additions and 78 deletions
+28 -10
View File
@@ -1,6 +1,6 @@
# B-185 / B-171 第二批交互补齐验收与回退
分支:`agent/agent/7b089146`(本工作副本本地名为 `agent/agent/1a87b790`,基于该远程分支 `a4d21ef`
分支:`agent/agent/7b089146`
基线:`fb58da6`B-171 第一批完成点)
架构:B-90;视觉:B-91 `changlian-visual-spec-v2.md`
@@ -8,7 +8,7 @@
## 提交主题(可逐项 `git revert`
从新到旧回退:先 B-188 验收补记与 `d9d5853`,再原第二批验收提交,再按下表从下往上 `git revert`
从新到旧回退:先 B-189,再 B-188 验收补记与 `d9d5853`,再原第二批验收提交,再按下表从下往上 `git revert`
| 主题 | SHA | 主要文件 |
|---|---|---|
@@ -19,17 +19,34 @@
| 工号查询防抖、控制器生命周期、开关、资料页工号 | `26622676ed4f4898385d8e9e686296eb56adf4be` | `add_colleague_page.dart``app_pages.dart``company_login_page.dart``my_info_view.dart``personal_info_view.dart` |
| 断网横幅恢复后 300ms 收起、底栏 12px | `d1657ea29f0fc59f248f2108d7cfb9bcc239921e` | `home_view.dart` |
| PC 第二批登录/会话/聊天/添加同事/职务行/i18n | `a44537da4e8ce7b5b17b491c05592ad21cdd0bca` | `pc-client/src/pages/**``ApplicationItem``i18n``global.scss``docs/acceptance/pc-boundary.md` |
| 验收记录 | 本文件当次提交 | `docs/acceptance/b171-batch2.md` |
| 第二批验收记录 | `a4d21ef36777440812c6746cd792eeaf7685cd5c` | `docs/acceptance/b171-batch2.md` |
| B-188 定点返工:PC 会话置顶改 `setConversation` | `d9d5853f73aa8060c9ed768c326f00d691847e3e` | `pc-client/src/pages/chat/ConversationSider/ConversationItem.tsx` |
| B-188 验收补记 | 本文件当次提交 | `docs/acceptance/b171-batch2.md` |
| B-188 验收补记 | `e40ece1` | `docs/acceptance/b171-batch2.md` |
回退 B-188:先 `git revert` 本验收补记提交,再 `git revert d9d5853f73aa8060c9ed768c326f00d691847e3e`
回退 B-188:先 `git revert e40ece1`,再 `git revert d9d5853f73aa8060c9ed768c326f00d691847e3e`
## B-189 语音区返工(相对 `e40ece1`
依据:B-187 打回三项阻塞 + 输入框/`按住 说话` 底色 `searchBg`。不处理其余黄色建议。
| 主题 | SHA | 主要文件 |
|---|---|---|
| 未听红点、录音浮层入场/取消区、50–60s 时限、searchBg | 见当次提交 | `chat_voice_*.dart``chat_item_view.dart``chat_input_box.dart``apply_official_styles.dart``styles.dart` |
回退 B-189`git revert <当次 SHA>`
静态核对(对照代码,非运行):
- 未听红点:接收且 `message.isRead == false` 时在气泡右侧 8px `danger`;播放走既有 `_playVoiceMessage` + `_markMessageAsRead`,不另造状态。
- 浮层入场:150ms ease-out 透明度 0→1`Styles.motionOf` 接到 `AppMotion.reduce` / `AppDuration.overlay`;取消区保持 `rgba(0,0,0,0.7)` 黑卡,仅垃圾桶与提示改 `danger`;切换时长走 `AppDuration.overlaySwitch`
- 50s:计时改 `warning` 文案「还可说 N 秒」;60s:既有 `ChatRecordVoiceView` 中断→dispose→一次 `onCompleted`,toast「已达最长 60 秒,已自动发送」。实例级 `_completed` 避免重复发送;timer 在 dispose 取消。
- 输入框与「按住 说话」底色改为 `Styles.c_F2F3F5``AppColors.searchBg`,不再用 `c_F0F2F6`/`chatBg`
## 检查
- `dart format` / `flutter analyze` / Android debug+release**未跑。** 本环境 PATH 中无 `flutter`/`dart`/`java`,不推定通过。
- PC `npm run lint` / `vite build`**未跑。** 仓库内无 `pc-client/node_modules`,不推定通过
- 运行截图:无测试账号、无客户端进程,**未截图。**
- PC `npm run lint` / `vite build`B-189 未改 PC、未重跑。B-188 当时 `npm run build` 通过,见下节
- 运行截图:无 Flutter 工具链、无测试账号、无客户端进程,**未截图、未实测**未听红点/播放清除/取消手势/50–60s 倒计时/到限自动发送与 toast。不得推定通过
### B-188 定点返工检查(2026-08-20
@@ -51,8 +68,6 @@
- `src/pages/common/UserCardModal/index.tsx` TS2345
- `src/utils/imCommon.ts` TS2322 ×11`string | undefined``string`
本卡不自行宣布整批通过。
## 越界比对(对比 `e26abad`
零改动:`mobile/``pc-client/src/store/``pc-client/src/layout/MainContentWrap.tsx``pc-client/src/pages/chat/queryChat/ChatFooter/useSendMessage.ts``pc-client/src/pages/chat/queryChat/useHistoryMessageList.tsx``account-service/`
@@ -61,6 +76,8 @@
`pc-boundary.md` 已扩到与 B-90 / B-185 一致:登录窗、chat **展示**`AddColleague.tsx` 列入可改;发送/历史/store/SDK 初始化仍冻结。PC 聊天顶栏去掉「语音通话」入口;RTC 死代码未删。
B-189 改动限于 `mobile-next/openim_common` 语音/输入部件、Token 接线、`mobile-next/lib/pages/chat/chat_view.dart` 自定义语音气泡防双重气泡,以及本验收记录。
## 未验证(缺账号环境,禁止推定通过)
- HTTP 正确密码登录
@@ -68,9 +85,10 @@
- 服务端好友申请 `status=2`
- LiveKit / 语音通话(本阶段不迁、PC 不建设)
- 登录窗独立 360×480:受 electron 冻结限制,本批只改登录页展示,未改窗口尺寸
- B-189 全部录音/未听红点运行时表现
## 品牌
未换标。手机登录仍按开关保留 OpenIM 标识。不增删品牌资源。
功能质检与视觉审核须重新执行,本卡不自行宣布通过。
功能质检与视觉审核须重新执行,本卡不自行宣布整批通过。