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

@@ -44,52 +44,7 @@ Sprint 目标:
## 2. 待做
### S1-08 [H5] 对局页信息架构与页面拆分方案
## 背景
当前 `App.vue` 是原型操作台,已经能跑主流程,但信息和状态都堆在单页里。后续如果不先定义页面结构,动作系统一扩展,前端会迅速失控。
## 目标
输出 H5 正式对局页拆分方案,明确:
- 房间页、对局页、复盘页的职责
- 对局页内的信息分区
- 私有教学面板和动作面板层级
- 公共事件区与私有区边界
## 范围
- 页面职责定义
- 组件拆分建议
- 状态归属建议
- 移动端布局区块说明
## 非范围
- 不在本任务里实现完整 UI
- 不在本任务里处理所有视觉细节
## 依赖
- `S1-05`
## 产出物
- 页面拆分文档
- 信息架构草图说明
- 下一轮前端任务拆分建议
## 验收标准
- 下一轮前端改造可以按本文档直接开始
- 公共区、私有区、动作区职责清楚
## 验证方式
- 文档评审
- 与当前 H5 要求、周计划和阶段看板一致
当前无新增待做项。下一轮若继续前端方向,建议从 `GamePageContainer / RoomPage` 拆分继续推进。
---
@@ -293,6 +248,35 @@ Sprint 目标:
- 当前定缺和出牌流程未被破坏
- `npm run build` 已通过
### S1-08 [H5] 对局页信息架构与页面拆分方案
## 已完成内容
- 新增文档 `docs/H5_GAME_PAGE_ARCHITECTURE.md`
- 明确了 `HomePage / RoomPage / GamePage / ReviewPage` 的职责边界
- 明确了正式对局页内的六个信息分区:
- 顶部概览区
- 自己手牌与当前动作区
- 响应动作区
- 私有教学区
- 公共桌面区
- 公共事件与最近结算区
- 明确了页面容器与子组件的状态归属边界
- 前端已完成最小拆分准备:
- 共享类型抽到 `frontend/src/types/game.ts`
- UI 格式化工具抽到 `frontend/src/utils/gameUi.ts`
- 展示组件拆出:
- `GameActionDock.vue`
- `GameMessageStack.vue`
- `PublicEventTimeline.vue`
- 当前重构保持原有动作提交流程、WebSocket 订阅逻辑和 H5 操作路径不变
## 验收结果
- 下一轮前端可以按文档与当前骨架继续拆页
- 公共区、私有区、动作区职责已经固定
- `npm run build` 已通过
### S1-06 [研究] 响应优先级裁决规则澄清
## 已完成内容