feat(教学): 扩展教学建议链路以支持候选牌列表

扩展教学建议链路,在 PrivateTeachingMessage 中增加 candidates 字段,支持前端展示候选牌、评分和原因标签。同时优化前端组件结构,抽离共享类型和工具函数,为后续页面拆分做准备。

- 后端:在 GameSessionService 和 GameMessagePublisher 中透传候选牌列表
- 前端:新增 GameMessageStack 组件展示教学候选,优化手牌区推荐牌高亮
- 测试:补充 GameMessagePublisherTest 验证候选牌消息结构
- 文档:更新 DEVELOPMENT_PLAN 和 H5_GAME_PAGE_ARCHITECTURE 说明当前前端结构
This commit is contained in:
hujun
2026-03-20 15:54:05 +08:00
parent 6bcdf26fca
commit 905565e7c4
17 changed files with 1325 additions and 433 deletions

View File

@@ -278,12 +278,21 @@ ws WebSocket 配置与消息发布
### 6.2 当前前端结构
当前前端仍以单页面原型为主,但已经承担三类职责:
当前前端仍以 `App.vue` 作为页面容器,但已经从“单文件原型”开始向“可继续拆页的正式骨架”演进,当前承担三类职责:
- H5 房间流操作
- 对局状态展示
- WebSocket 消息接收与展示
同时,已完成第一轮最小拆分准备:
- 共享类型:`frontend/src/types/game.ts`
- UI 格式化工具:`frontend/src/utils/gameUi.ts`
- 展示组件:
- `frontend/src/components/GameActionDock.vue`
- `frontend/src/components/GameMessageStack.vue`
- `frontend/src/components/PublicEventTimeline.vue`
后续建议按页面拆分为:
- `HomePage`
@@ -337,11 +346,15 @@ ws WebSocket 配置与消息发布
- WebSocket 私有动作订阅
- WebSocket 私有教学订阅
- `/api``/ws` 代理配置
- 正式动作面板与响应动作面板联调
- 公共事件时间线与最近结算卡片
- 教学推荐高亮与候选建议列表
- 对局页信息架构文档与最小组件拆分基础
### 7.3 当前进行中
- 动作系统从“定缺 + 出牌”扩展到真正的麻将动作系统
- H5 原型页向正式对局页演进的规划和拆解
- H5 页面容器继续向 `RoomPage / GamePage / ReviewPage` 拆分
### 7.4 当前已完成的文档治理