268 lines
8.6 KiB
Markdown
268 lines
8.6 KiB
Markdown
# F2B 协作清单
|
||
> 文档版本:v2.5
|
||
> 最后更新:2026-04-07 21:24:00
|
||
> 历史归档: [f2b.archive.md](D:/dev/cmr-mini/f2b.archive.md)
|
||
|
||
说明:
|
||
|
||
- 本文件由前端维护,写给后端
|
||
- 主文件只保留当前仍有意义的信息
|
||
- 已完成的大段历史已转入归档
|
||
|
||
---
|
||
|
||
## 待确认
|
||
|
||
### F2B-019
|
||
|
||
- 时间:2026-04-07 21:24:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 游客模式第一刀前端已接到:
|
||
- 地图列表
|
||
- 地图详情
|
||
- 公共活动详情
|
||
- 公共准备页
|
||
- 公共 launch
|
||
- 前端直接实测 backend 公共接口结果如下:
|
||
- `GET /public/experience-maps` -> `200`
|
||
- `GET /public/events/evt_demo_001/play` -> `200`
|
||
- `POST /public/events/evt_demo_001/launch` -> `500 internal_error`
|
||
- 这说明游客模式“看地图/看活动/看准备页”已经通,但“真正进入地图”当前被 backend 公共 launch 卡住。
|
||
- 当前 guest mode 只有默认体验活动可进:
|
||
- `evt_demo_score_o_001` -> `403 event_not_public`
|
||
- `evt_demo_variant_manual_001` -> `403 event_not_public`
|
||
- 需要对方确认什么:
|
||
- 请 backend 优先检查 `POST /public/events/{eventPublicID}/launch` 的服务端错误原因。
|
||
- 建议先用 `evt_demo_001` 作为游客模式第一刀的联调基线,修通后再扩别的 demo。
|
||
- 状态:待确认
|
||
|
||
### F2B-018
|
||
|
||
- 时间:2026-04-07 16:25:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 地图体验第一刀前端已完成:
|
||
- 首页 `地图体验` 入口
|
||
- 地图列表页
|
||
- 地图详情页
|
||
- 默认体验活动卡片跳活动详情页
|
||
- 当前这条链仍依赖登录态,因为 backend 现有接口:
|
||
- `GET /experience-maps`
|
||
- `GET /experience-maps/{mapAssetPublicID}`
|
||
- `GET /events/{eventPublicID}`
|
||
- `GET /events/{eventPublicID}/play`
|
||
- `POST /events/{eventPublicID}/launch`
|
||
都走登录态 access token
|
||
- backend 当前已经补齐这组接口。
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已确认
|
||
|
||
### F2B-017
|
||
|
||
- 时间:2026-04-07 14:40:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 前端已新增产品方案文档:
|
||
- [地图列表与默认体验活动方案](D:/dev/cmr-mini/doc/gameplay/地图列表与默认体验活动方案.md)
|
||
- 当前建议方向是:
|
||
- 增加 `地图列表` 作为默认体验活动入口层
|
||
- 默认体验活动继续复用现有 `Event / Release / Launch / Session`
|
||
- 默认体验活动可挂可不挂
|
||
- 默认体验活动可以不出现在正式活动列表
|
||
- 当前前端并不需要 backend 先做完整地图后台,只需要最小关系和最小摘要支持。
|
||
- 需要对方确认什么:
|
||
- 请 backend 先评估并支持以下最小配合项:
|
||
1. 地图/地点与默认体验活动的挂接关系
|
||
- 能回答:某张地图下挂了哪些默认体验活动
|
||
2. 活动摘要补两个稳定字段:
|
||
- `isDefaultExperience`
|
||
- `showInEventList`
|
||
3. 地图列表最小字段建议:
|
||
- `placeId`
|
||
- `placeName`
|
||
- `mapId`
|
||
- `mapName`
|
||
- `coverUrl`
|
||
- `summary`
|
||
- `defaultExperienceCount`
|
||
- `defaultExperienceEventIds[]`
|
||
4. 地图详情最小字段建议:
|
||
- 地点名称
|
||
- 地图名称
|
||
- 地图预览图
|
||
- 默认体验活动列表(最少 `eventId / title / subtitle / eventType / status / ctaText`)
|
||
- 如 backend 对对象关系或字段命名有不同建议,请直接回:
|
||
- 字段名
|
||
- 所属接口
|
||
- 是否建议第一阶段落地
|
||
- 状态:待确认
|
||
|
||
### F2B-016
|
||
|
||
- 时间:2026-04-07 14:25:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 前端已新增一份用于 backend 对齐的配置裁剪文档:
|
||
- [最大配置模板后台落地裁剪表](D:/dev/cmr-mini/doc/config/最大配置模板后台落地裁剪表.md)
|
||
- 该文档的目的不是让 backend 1:1 支持最大配置模板,而是把当前配置能力裁成三类:
|
||
- 第一阶段必做
|
||
- 第二阶段可做
|
||
- 暂不进后台,继续留在程序默认值层
|
||
- 该文档建议配合以下文档一起看:
|
||
- [后端总体架构与当前执行清单](D:/dev/cmr-mini/doc/backend/后端总体架构与当前执行清单.md)
|
||
- [后端第一阶段执行清单](D:/dev/cmr-mini/doc/backend/后端第一阶段执行清单.md)
|
||
- 需要对方确认什么:
|
||
- 请 backend 以这三份文档为基线,对齐:
|
||
- 第一阶段后台对象范围
|
||
- 第一阶段应进入后台的配置字段
|
||
- 暂不进后台、继续保留在程序默认值层的字段
|
||
- 如 backend 对某块裁剪有异议,请直接指出:
|
||
- 字段名
|
||
- 希望调整到哪一阶段
|
||
- 原因
|
||
- 状态:待确认
|
||
|
||
### F2B-015
|
||
|
||
- 时间:2026-04-07 13:46:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 准备页地图预览当前已改成:
|
||
- 优先消费 `GET /events/{eventPublicID}/play` 返回的 `preview`
|
||
- 按当前所选 `variantId` 生成预览点位
|
||
- 底图优先仍使用 manifest 对应的正式瓦片源
|
||
- 当前小程序侧现象是:准备页预览仍为空白
|
||
- 前端已补结构化日志,当前会向 backend `client-logs` 上报:
|
||
- `category=event-prepare`
|
||
- `details.phase=prepare-preview`
|
||
- `source`
|
||
- `selectedVariantId`
|
||
- `backendPreviewVariantCount`
|
||
- `tileCount`
|
||
- `controlCount`
|
||
- `overlayAvailable`
|
||
- `previewMode`
|
||
- 失败时 `errorMessage`
|
||
- 需要对方确认什么:
|
||
- 请 backend 拉取这批 `prepare-preview` 日志,并核对:
|
||
- 当前 `play.preview.variants` 是否真的返回了多条 variant 预览数据
|
||
- 当前所选 `selectedVariantId` 是否能在 `preview.variants[]` 中命中
|
||
- 当前 preview viewport / baseTiles 是否与正式发布对象一致
|
||
- 如果 backend 已确认日志中 `backendPreviewVariantCount > 0` 但前端仍空白,请回传对应日志片段与当前 demo 的 `eventId / releaseId`
|
||
- 状态:待确认
|
||
|
||
---
|
||
|
||
## 已确认
|
||
|
||
### F2B-C011
|
||
|
||
- 时间:2026-04-03 22:20:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- backend 已通过 `B2F-035` 收紧 `play.canLaunch` 与 `launch`
|
||
- 当前规则为:缺 `runtime / presentation / content bundle / manifest / 当前发布 release` 任一项时,均不可进入游戏
|
||
- 前端已复测通过,当前按 `play.canLaunch` 作为正式阻断口径
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已确认
|
||
|
||
### F2B-C012
|
||
|
||
- 时间:2026-04-03 23:52:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- manual 多赛道准备页不显示选择区的根因已确认是发布 release 缺少:
|
||
- `play.assignmentMode`
|
||
- `play.courseVariants`
|
||
- backend 已修复 demo/build/publish 链
|
||
- 前端保留了多赛道空态兜底,但主因不在前端
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已确认
|
||
|
||
### F2B-C013
|
||
|
||
- 时间:2026-04-03 23:52:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 活动卡片列表第一刀所需字段当前已足够
|
||
- 前端已补齐列表与详情页联调日志:
|
||
- `cardEventIds`
|
||
- `clickedEventId`
|
||
- `detailStatus`
|
||
- `detailCanLaunch`
|
||
- `detailCurrentPresentation`
|
||
- `detailCurrentContentBundle`
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已确认
|
||
|
||
---
|
||
|
||
## 阻塞
|
||
|
||
- 当前无
|
||
|
||
---
|
||
|
||
## 已完成
|
||
|
||
### F2B-D010
|
||
|
||
- 时间:2026-04-03 22:12:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 活动页与准备页已统一使用:
|
||
- `当前发布展示版本`
|
||
- `当前发布内容包版本`
|
||
- 当两项为空时,前端统一解释为:
|
||
- 当前发布 release 未绑定
|
||
- 或当前尚未发布
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已完成
|
||
|
||
### F2B-D011
|
||
|
||
- 时间:2026-04-07 12:06:00
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- 首页 `ongoingSession` 已收成正式交互
|
||
- 当前首页仅在 backend 返回 `ongoingSession` 时显示“进行中的游戏”
|
||
- 支持:
|
||
- `恢复`
|
||
- `放弃`
|
||
- `放弃` 会调用 `finish(cancelled)`,然后清理本地恢复快照并刷新首页
|
||
- 需要对方确认什么:
|
||
- 无
|
||
- 状态:已完成
|
||
|
||
---
|
||
|
||
## 尾项
|
||
|
||
### F2B-011
|
||
|
||
- 时间:2026-04-03
|
||
- 提出方:前端
|
||
- 当前事实:
|
||
- demo 历史 `ongoing session` 的回收口径仍是独立尾项
|
||
- 当前不阻塞主线:多赛道、活动列表、运营摘要、runtime 主链均可继续联调
|
||
- 需要对方确认什么:
|
||
- 后续请单独收口 demo 环境下 `launched / running` session 清理与 ongoing 判定规则
|
||
- 状态:待后续单独处理
|
||
|
||
---
|
||
|
||
## 下一步
|
||
|
||
- 当前前后端继续按 backend 一键测试环境联调
|
||
- 当前前端侧会优先关注:
|
||
- 活动列表第一刀回归
|
||
- 活动详情页/准备页用户化小修
|
||
- 准备页地图预览 V1 稳定性
|
||
- 如后端语义或字段发生变化,再通过 `b2f.md` / `f2b.md` 做增量同步
|