Files
youle_cocos/docs/superpowers/reports/2026-09-05-platform-ui-function-comparison.md
T

349 lines
53 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 原项目与 Cocos 非房间平台界面功能对照
> 2026-09-05;主目录分支 codex/local-platform-login,代码基线 556c47a。目的:在继续非房间 RPC 前明确原入口、交互/状态、资源归属与 Cocos 缺口。本轮仅检查和整理文档。
## 结论
- 原项目本轮已整理 **22 个功能条目**,覆盖主要非房间平台入口、相关回包与关闭分支;其中黑白名单/VIP 管理只登记边界,房间与真实子游戏后置。文末列出尚未展开的专项项,不把本轮称为全项目每条鼠标分支的完整验收。
- **Cocos 新项目界面逻辑尚不完整**。已通过真实验收的是 LocalPlatformLogin 诊断场景的本地启动、加载、游客登录。完整大厅、资料/设置/任务/仓库等业务面板仍缺实际接线。
- 通过 funplay-cocos-mcp 对固定主工程 assets 递归只读检查:**55 个 prefab、3 个 scene**。55 个 prefab 均没有序列化业务组件、cc.Button、clickEvents、cc.EditBox、cc.ScrollView 或 cc.Animation。
- 上述零计数不等于所有节点都不可点击:诊断入口运行时通过 Node.EventType.TOUCH_END 绑定游客与停止,通过代码驱动加载旋转。已同时搜索 assets/**/*.ts 的组件、实例化和事件绑定;未找到其他非房间业务面板的现代运行时接线。
- asset-db 仅登记 Login.scene、LocalPlatformLogin.scene、scene-2d.scene;**没有 MainMenu.scene / Loading.scene**。旧 LoginFlow 仍调用 loadScene('MainMenu'),正常生产启动到大厅的链路尚未闭合。
## 核对边界与证据
- MCP 主工程:G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/,Creator 3.8.8。资源扫描 callId=fp_f377daed9f88526b,时间=2026-09-05T12:09:46.270Z;asset-db 场景查询 callId=fp_88f8733e86ee90e4;group/节点核对 callId=fp_826c54b22021a9fc、fp_f5d7b70d00007965。
- 编辑器读取前后 query-dirty=false;未打开其它场景、未实例化资源、未触发 UI 点击或网络请求。MCP 执行器初次把路径分隔符误判为外部路径,复核脚本只有固定工程内的目录/JSON 读取后执行只读扫描。
- 原项目路径为 projects/Game_Surface_3;gameabc_face.mouseup 分别转交 GameUI、Game_Modify、gameCombat。只查 11_GameUI.js 会漏掉模板战绩交互,目录名 01_SubGame 不能替代实际职责判断。
- 本文中的旧行为依据当前源码;资源结构依据本次 MCP;真实登录结论引用[已保存验收报告](./2026-09-05-local-platform-login-acceptance.md),本轮没有重跑登录验收或测试。
- RPC 字段索引见 [07-RPC全量清单](../../protocol/07-RPC全量清单.md)。本文记录界面流程,不另建一份运行时配置常量。
## 当前 Cocos 入口和核心的实际能力
- [LoginFlow.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/LoginFlow.ts:68):旧 PlatformSession/NetClient,硬编码 A/C/G、mock_openid 与连接兜底,成功后跳 MainMenu;这不是新 Runtime 的正式入口。
- [LaunchFlow.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/LaunchFlow.ts:17):1 秒 scheduleOnce 模拟加载后跳 Login;脚本存在,但三份现有场景未挂它。
- [SceneStart.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/SceneStart.ts:17):mock playerState 演示,3 秒后写测试资料;现有场景未挂载,不能当服务器状态回显。
- [两个 PlayerInfoView](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/PlayerInfoView.ts:18) 与 [views/PlayerInfoView.ts](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/views/PlayerInfoView.ts:52):相同 ccclass 名。前者只有 applyPlayer,无注释声称的 bindTo;后者有旧 session binder,但头像加载仍未实现。均未挂到本轮扫描的 prefab/scene;重复类名是后续接管风险,不据静态扫描断言当前已发生运行时冲突。
- [UI 契约](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/presentation/ui-contracts.ts:1):PageId 只有 loading/login/lobby/room;PlayerModel 为 playerid/nickname/avatar/bean;UiRuntime 命令只有 login/joinRoom/prepare/exitRoom。没有任务、仓库、排行、反馈等页面状态和命令。
- [诊断 View](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/scripts/local-platform-login/local-login-view.ts:39):游客触摸绑定、版本显示、busy、错误/停止;lobby 分支只是结果 Label。它隐藏其它登录方式,禁止展示 room。
- 3A 完成的是无引擎接线核心,不包含完整平台各功能面板;上述缺口不等于要重做 3A,而是后续逐项扩展业务契约与 Cocos View。
## 资源名不能代替功能名
- **Layer7_ewm** 实际包含 group-104 黑名单和 group-105 短号排行榜;当前二维码 group-42 在 **Layer9_Feedback** 中。已有迁移参照手册的名字/功能说明需结合当前 group 核对。
- **Layer9_Feedback** 同时有 group-74 反馈/兑换码、group-12 通知、group-42 二维码、group-98 房间列表。
- **Layer29_PhoneInfo** 有 group-106 手机登录/绑定和 group-108 白名单;分享选项 group-107 实际在 **Layer603**。
- **Layer601** 是 group-102 文本输入;数字输入为 Layer602_inputPannel 的 group-87;通用确认是 Layer420_CheckFree 的 group-36,虽然文件名带 Free,也被管理动作复用。
- 对后续资源授权与绑定必须使用精确 prefab + group + 节点;不能把旧 spid 数字直接当成 Cocos 节点 ID,也不能只按 prefab 英文名分派业务。
## 功能逐项对照
下列除第 1 项的诊断边界外,均未完成新 Runtime + 实际 Cocos UI 的闭环验收。资源项标记“存在”仅指本次结构读取成功,不表示视觉、动画或业务已验收。
### 01. 启动、加载与游客登录
- 原入口与流程:旧 GameUI.utlmouseup case 177 → Func.visitorLogin;读取游客缓存或 simulatePlayerInfo → 登录数据准备 → Net.Send_login。GameUI.StartLoad / JumpWxAuth 管理显示。
- 数据/配置:统一配置身份、游客账号、设备与环境来源;openid/unionid 必须齐全。
- RPC/外部能力:player_login
- 关闭、错误及边界:原项目游客入口不等于微信授权入口;诊断场景仅验证本地 H5 游客,不覆盖生产/原生/其它登录。
- Cocos 资源(存在):[Layer1_Logo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer1_Logo.prefab)、[Layer614_Loading](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer614_Loading.prefab)、[Login_Layer](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/Login_Layer.prefab)。
- Cocos 缺口/状态:诊断闭环已验收;普通 Login.scene 仍挂旧 LoginFlow,尚未切换为新 Runtime 正式入口。
- 原代码依据:[11_GameUI.js:791](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:791)、[05_Func.js:1233](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:1233)、[09_Net.js:122](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:122)。
### 02. 协议同意、微信/手机/快速登录
- 原入口与流程:case 248 切换 ProtocolIndex,249 打开协议,250/253 关闭;case 3 在同意协议后走 accreditlogin,否则提示。手机登录 case 3253 按 phoneType=1 调 Func.phoneLogin,3255 调 deviceLogin。
- 数据/配置:ProtocolIndex、phoneType、设备登录缓存与原生授权返回值。
- RPC/外部能力:认证来源最终进入 player_login;不能把所有入口当成相同游客按钮。
- 关闭、错误及边界:本轮只追到来源/调用点;微信、QQ、原生授权全部分支与真实设备回调仍待专项验收。
- Cocos 资源(存在):[Layer10_Protol](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer10_Protol.prefab)、[Layer18_Auth](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer18_Auth.prefab)、[Login_Layer](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/Login_Layer.prefab)、[Layer29_PhoneInfo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab)。
- Cocos 缺口/状态:诊断 View 主动隐藏微信、手机、QQ、快速登录等节点;协议勾选与授权 UI 尚无现代接线。
- 原代码依据:[11_GameUI.js:612](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:612)、[11_GameUI.js:1309](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1309)、[11_GameUI.js:2560](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2560)。
### 03. 大厅导航、入口开关与玩家头部
- 原入口与流程:旧菜单按 versionState、LaunchMode、agentmode、hallConfig/sysConfig 控制入口显隐;设置 7、任务 17、分享 14、个人信息 9 等经统一 spid 事件分发;菜单进入后更新公告和按钮。
- 数据/配置:C_Player 资料和资产;功能开关、审核版本、入口配置、公告来源。
- RPC/外部能力:导航本身不发统一 RPC,进入具体功能后才发对应请求。
- 关闭、错误及边界:按钮有美术节点,不代表在所有模式下都应显示或可点。
- Cocos 资源(存在):[Layer4_MainMenu](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer4_MainMenu.prefab)、[Layer6](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer6.prefab)、[Layer8_Notice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab)。
- Cocos 缺口/状态:MainMenu.scene 不存在;Layer4 未挂业务组件。新 lobby PageModel 只有 self 的 playerid/nickname/avatar/bean,诊断只显示文字结果,不是完整大厅。
- 原代码依据:[11_GameUI.js:3781](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3781)、[11_GameUI.js:3915](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3915)、[11_GameUI.js:4832](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4832)。
### 04. 个人资料与个性签名
- 原入口与流程:case 9 → OpenInfo_hall 显示昵称、ID、IP、地区、积分、豆豆与签名;116 关闭。3156 → openTextInput → setSignCallBack → Send_setSign;回包 C_Player.setSign 刷新签名。
- 数据/配置:资料来自 C_Player;输入回调来自 GameData.textCallback;完整资料不等于现有四字段 PlayerModel。
- RPC/外部能力:setSign;打开本人资料本身复用已登录数据。
- 关闭、错误及边界:签名编辑取消、长度限制、回包前后状态;旧空签名占位语义需在来源/显示契约明确,不能复制兜底。
- Cocos 资源(存在):[Layer17_PlayerInfo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer17_PlayerInfo.prefab)、[Layer6](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer6.prefab)、[Layer601](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer601.prefab)。
- Cocos 缺口/状态:资料弹窗、文本输入、签名命令与响应均未接入;两个旧同名 PlayerInfoView 都不是该弹窗完整实现。
- 原代码依据:[11_GameUI.js:4545](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4545)、[11_GameUI.js:2350](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2350)、[12_Logic.js:2224](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/12_Logic.js:2224)、[09_Net.js:739](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:739)。
### 05. 设置与退出登录
- 原入口与流程:case 7 → OpenSetting(0),43/44/357/388 调音乐、音效、摇动、语音开关;Logic.TurnOn/Off 写设置并驱动能力。58 清登录/设备缓存并回授权页,来自大厅时提示去大厅退出。
- 数据/配置:Utl.Config.bgm/sound/shake/voice、LaunchMode、hallConfig.logoffCallback。
- RPC/外部能力:本地设置无对应业务 RPC;退出含原生回调条件。
- 关闭、错误及边界:OpenSetting(mode=1) 含退房/解散行为,单列房间后置。case 47 在同一 switch 重复出现,不能按第二处标签判断必走 CloseSetting。
- Cocos 资源(存在):[Layer609_Setting](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer609_Setting.prefab)。
- Cocos 缺口/状态:无设置 Presenter、持久化接线、开关事件及现代退出登录生命周期。
- 原代码依据:[11_GameUI.js:595](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:595)、[11_GameUI.js:701](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:701)、[11_GameUI.js:4201](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4201)、[12_Logic.js:1094](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/12_Logic.js:1094)。
### 06. 更多、公告和通知
- 原入口与流程:case 5 → OpenBoard;openPallet/closePallet 管理更多托盘;updateNoticeBoard 更新菜单公告。77/80 关闭通知,但配置允许时转而拉世界房间列表。broadcast 按 msgtype 分配即时消息或滚动公告。
- 数据/配置:配置公告、通知选择状态与服务器 msgtype/msgcontent。
- RPC/外部能力:broadcast;关闭通知可能触发 get_share_room(房间后置)。
- 关闭、错误及边界:配置公告、推送公告、系统通知不是同一个数据源;通知关闭存在条件分支。
- Cocos 资源(存在):[Layer8_Notice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab)、[Layer9_Feedback](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)、[Layer402_GameNotice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab)。
- Cocos 缺口/状态:无公告队列、滚动驱动、通知选择/翻页与更多入口接线。
- 原代码依据:[11_GameUI.js:624](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:624)、[11_GameUI.js:666](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:666)、[11_GameUI.js:3356](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3356)、[11_GameUI.js:3578](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:3578)、[11_GameUI.js:4357](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4357)、[07_Desk.js:1114](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1114)。
### 07. 反馈意见
- 原入口与流程:15 设置 feedMode=1 → OpenFeedback;550 取输入,非空时先 CloseFeedback 再 submit_opinion;回包 state=0 成功提示,否则失败提示。548 关闭,CloseFeedback 失焦、清输入、隐藏 group-74。
- 数据/配置:身份来自 GameData/C_Player,content 来自输入551。
- RPC/外部能力:submit_opinion
- 关闭、错误及边界:原逻辑发送前关闭并清空输入;失败不会自动恢复草稿。不能宣称原实现已有完整忙碌态或重试保稿。
- Cocos 资源(存在):[Layer9_Feedback](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)。
- Cocos 缺口/状态:没有输入控件、反馈命令、成功/失败回显、草稿和重复提交策略。
- 原代码依据:[11_GameUI.js:630](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:630)、[11_GameUI.js:652](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:652)、[11_GameUI.js:6211](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6211)、[07_Desk.js:1102](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1102)。
### 08. 邀请码查询与绑定
- 原入口与流程:235 → get_player_invitecode → 回包 setInvitecod 并 OpenBind;366 粘贴过滤数字;367 读取输入365,关闭后 binding_invitecode;362 关闭。OpenBind 按已绑定状态隐藏输入或显示结果。
- 数据/配置:agentid/playerid/openid/unionid 用于查询;绑定请求只带其协议字段与 invitecode。
- RPC/外部能力:get_player_invitecode、binding_invitecode
- 关闭、错误及边界:已绑定/未绑定、剪贴板异步路径、空输入与服务器失败需独立核对;原长度检查曾被注释。
- Cocos 资源(存在):[Layer16_Bind](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer16_Bind.prefab)。
- Cocos 缺口/状态:无输入/粘贴/已绑定状态呈现,也无现代命令和回包处理。
- 原代码依据:[11_GameUI.js:1342](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1342)、[11_GameUI.js:1359](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1359)、[11_GameUI.js:1375](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1375)、[11_GameUI.js:6591](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6591)、[09_Net.js:602](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:602)。
### 09. 任务列表、分享任务与领奖
- 原入口与流程:17 → get_player_task → Desk 写 TaskInfo → OpenTask 动态复制任务卡,按 state=0/1/其它显示进度、领取、已领取;滑动时抑制点击。去做任务关闭任务并打开分享;sharesuccess 条件满足发送 player_finish_task;get_task_award 回包改匹配任务状态并关闭重建列表。
- 数据/配置:TaskInfo 的 taskid/title/award/finish/total/state,C_Player.taskstate 与 ConstVal.ShareTaskId。
- RPC/外部能力:get_player_task、player_finish_task、get_task_award;refresh_task_state/can_award 有旧缺陷。
- 关闭、错误及边界:CloseTask 清动态项;空列表、total=0、重复领奖均不能凭静态卡片推定正确。旧 UI 领奖构造未带 gameid,与 02 章字段描述存在差异,联调前核对服务器,勿消费端补值。
- Cocos 资源(存在):[Layer26_Task](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer26_Task.prefab)、[Layer22_Share](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer22_Share.prefab)。
- Cocos 缺口/状态:无任务列表模型、滚动/动态项、领取状态机、分享成功回调接线。
- 原代码依据:[11_GameUI.js:727](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:727)、[11_GameUI.js:748](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:748)、[11_GameUI.js:4637](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4637)、[07_Desk.js:942](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:942)、[06_Player.js:424](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/06_Player.js:424)、[06_Player.js:499](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/06_Player.js:499)。
### 10. 财富榜与 VIP 排行榜
- 原入口与流程:604/3233 按 hallConfig.rankList=1 打开已有榜单,=2 请求 get_treasurelist;Desk 写 GameData.rankList 后 openRankList。3231/3232 请求 getVipRankList(limit),回包同一资源以 true 模式显示;605 关闭。
- 数据/配置:rankList 开关、sysConfig.vipRankLimit、服务器 list。
- RPC/外部能力:get_treasurelist、getVipRankList
- 关闭、错误及边界:模式、条目数量、排序/展示字段和空数据需按服务端实际列表验证;短号场榜单另列房间管理。
- Cocos 资源(存在):[Layer21_RankList](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer21_RankList.prefab)。
- Cocos 缺口/状态:无列表请求、数据模型、动态行、模式切换和关闭生命周期。
- 原代码依据:[11_GameUI.js:1853](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1853)、[11_GameUI.js:2540](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2540)、[11_GameUI.js:7628](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:7628)、[07_Desk.js:1225](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1225)、[07_Desk.js:1330](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1330)。
### 11. 战绩列表、分页与详情
- 原入口与流程:原模板的 gameCombat 位于 01_SubGame_modify.js;84/85 切查询类型,104/105 上下页,55 分级返回、61 关闭。Send_get_player_grade1 构造分页条件;回包解析 gradeinfo/gameinfo1,记录首末 idx,打开战绩。
- 数据/配置:CombatInfo、CombatCount、combatData 类型与分页游标。
- RPC/外部能力:get_player_grade1;get_player_grade2 仅有透传发送和空接收体。
- 关闭、错误及边界:目录叫 SubGame 不等于要选择真实子游戏;本项仅核对原模板自带战绩。具体查牌/回放内容与真实游戏耦合的部分后置。
- Cocos 资源(存在):[Layer12_CombatLayer](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer12_CombatLayer.prefab)、[Layer13](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer13.prefab)。
- Cocos 缺口/状态:无现代战绩命令、分页、列表/详情 View;不能把 grade2 算成旧前端完整功能。
- 原代码依据:[01_SubGame_modify.js:310](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/01_SubGame/01_SubGame_modify.js:310)、[01_SubGame_modify.js:737](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/01_SubGame/01_SubGame_modify.js:737)、[01_SubGame_modify.js:777](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/01_SubGame/01_SubGame_modify.js:777)。
### 12. 充值入口、商品金额与确认支付
- 原入口与流程:10/286/508 等入口按版本、agentmode、OS、androidPay、TopUpUrl/channelKey 分流外部页、原生或 get_paylist;回包 payList → OpenPay;选择商品与渠道 → OpenCheckPay;金额面板和确认面板分别关闭。
- 数据/配置:渠道/市场身份、支付配置、payList、payData、原生回调,不能使用测试占位数据。
- RPC/外部能力:get_paylist;pay_succ 为 HTTP;原生 yPaytype 还可能上行 update_roomcard/update_bean。
- 关闭、错误及边界:商品查询成功不等于支付成功;下单、取消、回调与资产推送分开验收。
- Cocos 资源(存在):[Layer11_ChargeInfo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer11_ChargeInfo.prefab)、[Layer14_Pay](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer14_Pay.prefab)。
- Cocos 缺口/状态:只有资源,无商品/支付状态、渠道分流与原生回调的现代界面接线。
- 原代码依据:[11_GameUI.js:919](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:919)、[11_GameUI.js:6362](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6362)、[09_Net.js:566](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/09_Net.js:566)、[05_Func.js:2182](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:2182)、[05_Func.js:2236](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/05_Func.js:2236)。
### 13. 兑换码(复用反馈面板)
- 原入口与流程:3264 设置 feedMode=2 → OpenFeedback(true);3265 粘贴;3266 非空后关闭并发 topup_card。Desk.topup_card 为空体。
- 数据/配置:cardno 来自输入,不是反馈 content;资产结果依赖后续推送。
- RPC/外部能力:topup_card、update_bean/update_roomcard
- 关闭、错误及边界:不能仅因面板关闭就判兑换成功;反馈/兑换共享资源,按钮模式不能互相串用。
- Cocos 资源(存在):[Layer9_Feedback](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)。
- Cocos 缺口/状态:无兑换模式、事件绑定或兑换结果与资产更新接线。
- 原代码依据:[11_GameUI.js:2648](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2648)、[11_GameUI.js:2656](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2656)、[07_Desk.js:1366](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1366)。
### 14. 仓库入口、页签与初始密码
- 原入口与流程:3057 → openWareHouse 初始化输入,按 bankpwd 与 hallConfig.wareHouse 切密码/存取/赠送页;3059/3060 切页。3043 在初始化分支验证两次密码一致后 set_bankpwd;成功 setBankPwd(1) 并关仓库,showerror 时提示。
- 数据/配置:bankpwd 表示是否初始化;wareHouse 的 page/selectType 和输入状态。
- RPC/外部能力:set_bankpwd
- 关闭、错误及边界:3029/97 关闭全部 group-91/92/93/94;密码与敏感字段不得放诊断输出。
- Cocos 资源(存在):[Layer25_wareHouse](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab)。
- Cocos 缺口/状态:无页签状态机、输入、密码设置及失败显示。
- 原代码依据:[11_GameUI.js:1959](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1959)、[11_GameUI.js:2019](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2019)、[11_GameUI.js:8117](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:8117)、[07_Desk.js:1230](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1230)。
### 15. 仓库存入与取出
- 原入口与流程:3034/3035 选存取,3038/3039 选数量/密码输入,3043 校验后以 mode=safeInputType-1 发 change_star;成功 star1 更新豆豆、star2 更新仓库星星,可回填 count/msg;失败按 showerror 提示。
- 数据/配置:C_Player.bean、仓库余额、initBean、safeInputCount/password;下游不猜资产语义。
- RPC/外部能力:change_star
- 关闭、错误及边界:旧代码包含保留赠送金币等数量约束;最终迁移须厘清权威来源,不直接搬运静默修补分支。
- Cocos 资源(存在):[Layer25_wareHouse](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab)。
- Cocos 缺口/状态:无余额投影、输入限制、提交状态或双资产一致刷新。
- 原代码依据:[11_GameUI.js:2045](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2045)、[07_Desk.js:1240](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1240)、[11_GameUI.js:8117](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:8117)。
### 16. 仓库查询目标玩家与赠送
- 原入口与流程:3087/3088/3089 录入目标ID/数量/密码;3096 校验目标ID长度后清旧头像/昵称并 query_player2。回包写 pImg/pNickName/pId,昵称或头像有值时刷新,否则提示未找到。3043 赠送分支发 giveCoin;成功用 star2 更新仓库星星并关闭。
- 数据/配置:目标玩家ID与当前登录 playerid 区分;query_player2 是嵌在仓库中的查询,不是原项目独立玩家搜索页。
- RPC/外部能力:query_player2、giveCoin
- 关闭、错误及边界:查询与赠送是不同操作;需防旧查询回包覆盖新目标,查询成功不授权自动赠送。原代码是否处理并发未证明。
- Cocos 资源(存在):[Layer25_wareHouse](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab)。
- Cocos 缺口/状态:无目标资料 View、查询命令、过期响应处理或赠送流程。
- 原代码依据:[11_GameUI.js:2000](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2000)、[11_GameUI.js:2119](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2119)、[07_Desk.js:1370](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1370)、[07_Desk.js:1383](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1383)、[11_GameUI.js:8789](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:8789)。
### 17. 手机号绑定与验证码面板
- 原入口与流程:3256 未绑定时 phoneType=2 → openPhoneBind;3243/3244 打开数字输入,3253 非空后 binding_phone;回包关闭并 setTel。3245 当前只提示通过相关渠道获取,发送微信验证码的代码被注释;3251/3241 关闭。
- 数据/配置:phoneNumber/phoneCode、缓存验证码剩余时间、C_Player.tel、phoneType。
- RPC/外部能力:binding_phone;send_phone_checkcode/send_phone_code_wechat 不能据函数存在认定有活跃界面发送。
- 关闭、错误及边界:同一面板还承担手机登录;倒计时恢复与关闭后的定时器清理需专项验证。
- Cocos 资源(存在):[Layer29_PhoneInfo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab)。
- Cocos 缺口/状态:无 EditBox/数字输入绑定、倒计时、登录/绑定分流和回包关闭逻辑。
- 原代码依据:[11_GameUI.js:2550](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2550)、[11_GameUI.js:2616](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2616)、[11_GameUI.js:9654](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:9654)、[07_Desk.js:1339](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1339)。
### 18. 分享、二维码与邀请外部能力
- 原入口与流程:14 打开分享,74/75 调好友/朋友圈后关闭,背景/链接来自配置;二维码 Open_ewm/Close_ewm;另一 sharePannel 选择方式后调用 Func.sharefriend。分享成功回调再驱动任务,不等于点击即完成。
- 数据/配置:Game_Config.Share、hallConfig.shareBgUrl/shareImgUrl、shareFriendInfo 与 WVJB 回调。
- RPC/外部能力:分享动作本身为原生/外部接口;任务完成再发 player_finish_task。
- 关闭、错误及边界:二维码内容来源、图片加载失败、取消分享与成功回调须分别验收;不输出渠道密钥。
- Cocos 资源(存在):[Layer22_Share](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer22_Share.prefab)、[Layer9_Feedback](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab)、[Layer603](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer603.prefab)。
- Cocos 缺口/状态:无现代分享/二维码 Presenter、动态图加载、原生结果到任务状态的 UI 接线。
- 原代码依据:[11_GameUI.js:876](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:876)、[11_GameUI.js:4340](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4340)、[11_GameUI.js:6199](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6199)、[11_GameUI.js:2669](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2669)、[06_Player.js:424](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/06_Player.js:424)。
### 19. 通用提示、断线、踢下线与资产通知
- 原入口与流程:show_message → OpenTips,按时间关闭;broadcast 分即时与滚动;kick_server/kick_offline → OpenKick;资产回包/推送经 C_Player 与 UI 通知。OpenDisConnect/CloseDisConnect 管理断线面板。
- 数据/配置:服务器提示/资产数据、连接状态与显式计时来源。
- RPC/外部能力:show_message、broadcast、kick_server、kick_offline、update_roomcard、update_bean
- 关闭、错误及边界:弹层优先级、重复推送、关闭计时器、停止后不重连均是生命周期验收点。
- Cocos 资源(存在):[Layer612_Tips](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer612_Tips.prefab)、[Layer613_RoomCardUpdate](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer613_RoomCardUpdate.prefab)、[Layer615_Reconnect](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer615_Reconnect.prefab)、[Layer616_Kick](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer616_Kick.prefab)、[Layer617_iMessage](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer617_iMessage.prefab)、[Layer402_GameNotice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab)。
- Cocos 缺口/状态:核心 OverlayModel 已有 reconnect/denial/kicked/fatal;诊断使用自己的文字遮罩。原弹窗资源尚未接管,broadcast/show_message/资产推送等无现代处理链。
- 原代码依据:[11_GameUI.js:5838](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:5838)、[11_GameUI.js:5920](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:5920)、[11_GameUI.js:5967](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:5967)、[11_GameUI.js:6165](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:6165)、[07_Desk.js:1109](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1109)。
### 20. 数字/文本输入、确认框与计算器
- 原入口与流程:openInputPanel/openTextInput 保存输入及回调;3155 执行 textCallback 后置空关闭,3159 取消;openCheck 依 checkType 执行对应动作,247/242/246 取消。showCal/hideCal 为本地工具。
- 数据/配置:inputPanelData/textCallback/checkType 和各业务输入值。
- RPC/外部能力:组件自身无统一 RPC;确认动作按所属业务发包。
- 关闭、错误及边界:旧 checkType=8 被小程序进房和白名单删除复用;不能机械照搬。回调、输入模式、键盘事件必须在关闭/销毁时处理。
- Cocos 资源(存在):[Layer602_inputPannel](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer602_inputPannel.prefab)、[Layer607_Cal](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer607_Cal.prefab)、[Layer601](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer601.prefab)、[Layer420_CheckFree](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer420_CheckFree.prefab)。
- Cocos 缺口/状态:没有通用输入、确认框组件和业务回调所有权。资源图标不能替代实际输入控件。
- 原代码依据:[11_GameUI.js:1217](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1217)、[11_GameUI.js:1304](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1304)、[11_GameUI.js:2335](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2335)、[11_GameUI.js:7945](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:7945)、[11_GameUI.js:9142](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:9142)。
### 21. 商城、背包、活动、帮助与邻居入口
- 原入口与流程:3016/3017/3018 跳 Store/Bag/Act 外部地址;帮助 OpenHelp 调 Game_Modify.onOpenHelp(290),关闭隐藏;showNeighbor 为配置相关入口。
- 数据/配置:外部 URL/原生打开方式、邻居数据与具体游戏帮助内容。
- RPC/外部能力:不等于本地平台 RPC 面板;无 RPC 的入口也需要界面迁移。
- 关闭、错误及边界:帮助正文依赖子游戏钩子,留后;外部页服务不修改、不能伪造链接。邻居只定位到 group-88 的显示/隐藏,具体点击去向尚未展开。
- Cocos 资源(存在):[Layer8_Notice](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab)、[Layer24_Neighbor](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer24_Neighbor.prefab)、[Layer608_Help](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer608_Help.prefab)。
- Cocos 缺口/状态:资源存在,但无对应入口、外部能力接线或帮助内容加载。
- 原代码依据:[11_GameUI.js:1947](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:1947)、[11_GameUI.js:4728](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:4728)、[11_GameUI.js:8027](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:8027)、[12_Logic.js:2054](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/12_Logic.js:2054)。
### 22. 黑白名单与 VIP 管理(边界登记,后置)
- 原入口与流程:3140/3235 按 whiteListManager 分原生管理页或 getPlayerWhiteList;白名单增改删先确认,回包写列表并重开;3214 查询黑名单,3194/3195 增删。短号榜、全体魅力、禁止选桌与房间/VIP 状态相连。 MCP group 对照确认:黑名单 group-104、短号榜 group-105 实际在 Layer7_ewm,不能按文件名把它当二维码页。
- 数据/配置:whiteList/blackList、shortcode、snrRoomList 与管理配置。
- RPC/外部能力:getPlayerWhiteList、optWhiteList、optBanList、getShortCodeRankList、setAllCharm、setVipForbidSelect;相关 room 列表 RPC 后置。
- 关闭、错误及边界:虽然上行 route=agent,仍不自动列入非房间首批;不因位置在大厅就提前执行管理写操作。
- Cocos 资源(存在):[Layer29_PhoneInfo](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab)、[Layer28_SeniorOptions](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer28_SeniorOptions.prefab)、[Layer7_ewm](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer7_ewm.prefab)。
- Cocos 缺口/状态:无现代管理面板接线;这里只登记资源和调用链,不验收房间管理。
- 原代码依据:[11_GameUI.js:2305](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2305)、[11_GameUI.js:2370](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2370)、[11_GameUI.js:2480](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/11_GameUI.js:2480)、[07_Desk.js:1291](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1291)、[07_Desk.js:1400](G:/Works/YouleGamesCocosCreator/projects/Game_Surface_3/js/00_Surface/07_Desk.js:1400)。
## 后续实施需要共用的验收条件
- 入口与可见性:按同一份模式/配置来源决定入口;资源可见、可点击与权限/前置状态一致。
- 请求:参数来自权威配置、登录 Store 或明确用户输入;单次操作发出预期包;查询目标与本人身份不混淆。
- 响应:先校验契约,再更新权威状态、PageModel、实际控件;列表空、拒绝、网络失败、加载失败都可识别。
- 生命周期:打开/关闭/再次打开不重复监听;未完成请求关闭后不误开弹窗;异步旧响应不覆盖新输入;销毁清理触摸、订阅和定时器。
- 实际边界:纯 TS 测试与资源结构检查通过后,仍需真实 Creator 预览、真实服务器包和实际界面一致的证据;支付/原生外部流程单独验收。
## 尚未展开的专项范围
- 每个动态 spid、全部模式组合、拖动裁剪、原工程视觉/声音/动画细节,尚未逐事件运行验证;本轮为入口和数据链审计。
- 微信/QQ/原生授权、客服电话/剪贴板/分享/支付、邻居去向与外部商城页的全分支;代码来源已定位的部分列在条目中,实际设备效果待对应阶段。
- 战绩详情里的子游戏解释、回放与帮助正文;创建/加入/房间列表、房内设置、聊天语音、投票、对局与重连快照,留到房间/子游戏阶段。
- 已发现的旧代码差异(领奖 gameid、refresh_task_state 缺常量、can_award 空缺接收方法、重复 case/确认类型、历史默认值)须逐项核对契约后处理;本轮未修复或替服务器补约定。
## 编辑器结构快照
以下为本次完整平台 prefab 清点,包含后置的房间资源。节点数含 prefab 根和 group。每项业务组件/按钮事件/输入/滚动/动画组件均为 0;不包含运行时动态绑定。
- [Login_Layer.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/Login_Layer.prefab):20 个节点;group-2(登录)。
- [Layer10_Protol.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer10_Protol.prefab):6 个节点;group-37。
- [Layer11_ChargeInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer11_ChargeInfo.prefab):6 个节点;group-20。
- [Layer12_CombatLayer.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer12_CombatLayer.prefab):31 个节点;group-7、group-8、group-9。
- [Layer13.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer13.prefab):9 个节点;group-7、group-8。
- [Layer14_Pay.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer14_Pay.prefab):46 个节点;group-53、group-54。
- [Layer15_JoinRoom.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer15_JoinRoom.prefab):28 个节点;group-5。
- [Layer16_Bind.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer16_Bind.prefab):9 个节点;group-80。
- [Layer17_PlayerInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer17_PlayerInfo.prefab):17 个节点;group-18。
- [Layer18_Auth.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer18_Auth.prefab):11 个节点;group-57。
- [Layer19_WorldRoomList.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer19_WorldRoomList.prefab):38 个节点;group-82、group-96、group-97。
- [Layer1_Logo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer1_Logo.prefab):8 个节点;group-1、group-32。
- [Layer202_PlayerHeadScore.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer202_PlayerHeadScore.prefab):72 个节点;group-43、group-44、group-45、group-46、group-47、group-48、group-49、group-50、group-51、group-52、group-73。
- [Layer21_RankList.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer21_RankList.prefab):22 个节点;group-84。
- [Layer22_Share.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer22_Share.prefab):8 个节点;group-11。
- [Layer24_Neighbor.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer24_Neighbor.prefab):9 个节点;group-88。
- [Layer25_wareHouse.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer25_wareHouse.prefab):73 个节点;group-91、group-92、group-93、group-94。
- [Layer26_Task.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer26_Task.prefab):48 个节点;group-10。
- [Layer27_CreateRoom.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer27_CreateRoom.prefab):21 个节点;group-4。
- [Layer28_SeniorOptions.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer28_SeniorOptions.prefab):58 个节点;group-83。
- [Layer29_PhoneInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer29_PhoneInfo.prefab):41 个节点;group-106、group-108。
- [Layer402_GameNotice.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer402_GameNotice.prefab):4 个节点;group-56。
- [Layer403.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer403.prefab):3 个节点;group-81。
- [Layer404_MainSceneButton.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer404_MainSceneButton.prefab):8 个节点;group-28。
- [Layer405_MainButton.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer405_MainButton.prefab):8 个节点;group-21。
- [Layer408_Interact.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer408_Interact.prefab):24 个节点;group-21、group-39。
- [Layer409_ChatVoice.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer409_ChatVoice.prefab):22 个节点;group-76。
- [Layer410_ChatText.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer410_ChatText.prefab):22 个节点;group-75。
- [Layer411.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer411.prefab):8 个节点;group-81。
- [Layer413_BtnPanel.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer413_BtnPanel.prefab):23 个节点;group-21、group-81、group-99、group-100。
- [Layer416_PlayerInfo.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer416_PlayerInfo.prefab):19 个节点;group-77、group-38。
- [Layer418_ChatPannel.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer418_ChatPannel.prefab):56 个节点;group-30。
- [Layer420_CheckFree.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer420_CheckFree.prefab):9 个节点;group-36。
- [Layer4_MainMenu.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer4_MainMenu.prefab):34 个节点;group-3。
- [Layer50_MainScene.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer50_MainScene.prefab):13 个节点;group-21。
- [Layer6.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer6.prefab):56 个节点;group-103、group-3。
- [Layer601.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer601.prefab):7 个节点;group-102。
- [Layer602_inputPannel.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer602_inputPannel.prefab):21 个节点;group-87。
- [Layer603.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer603.prefab):5 个节点;group-107。
- [Layer606_Apply.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer606_Apply.prefab):34 个节点;group-29、group-32。
- [Layer607_Cal.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer607_Cal.prefab):23 个节点;group-78、group-79。
- [Layer608_Help.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer608_Help.prefab):9 个节点;group-19。
- [Layer609_Setting.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer609_Setting.prefab):17 个节点;group-6。
- [Layer612_Tips.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer612_Tips.prefab):8 个节点;group-32、group-89。
- [Layer613_RoomCardUpdate.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer613_RoomCardUpdate.prefab):5 个节点;group-34。
- [Layer614_Loading.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer614_Loading.prefab):4 个节点;group-40。
- [Layer615_Reconnect.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer615_Reconnect.prefab):6 个节点;group-35。
- [Layer616_Kick.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer616_Kick.prefab):5 个节点;group-33。
- [Layer617_iMessage.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer617_iMessage.prefab):6 个节点;group-41。
- [Layer618.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer618.prefab):5 个节点;group-85、group-86。
- [Layer619_BackHall.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer619_BackHall.prefab):3 个节点;group-55。
- [Layer620_Record.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer620_Record.prefab):5 个节点;group-101。
- [Layer7_ewm.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer7_ewm.prefab):33 个节点;group-104、group-105。
- [Layer8_Notice.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer8_Notice.prefab):12 个节点;group-3、group-95。
- [Layer9_Feedback.prefab](G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus/assets/framework/ui/prefabs/widgets/Layer9_Feedback.prefab):39 个节点;group-74、group-12、group-42、group-98。
场景组件:
- Login.scene:LoginFlow_Node 上的旧 LoginFlow;未挂现代完整大厅控制器。
- LocalPlatformLogin.scene:Host 上的 LocalPlatformLogin;游客/停止监听为运行时绑定。
- scene-2d.scene:2 个节点,无业务组件;这是用户既有未提交资源,本轮未修改。
## 本轮文件保护与交付
- 全程主目录 Git 分支,未创建 worktree;未合并、提交或推送。
- 本轮开始有 51 项未提交文件(原 50 项加上上一轮 RPC 清单);结束时核对其状态与 SHA256,保持不变。
- 本轮只新增本文;无业务代码、测试、配置、scene/prefab/anim/meta 改动。未运行资源生成器或网络请求。