pages/tpl/style3/rankOverview.vue 交互流程与 API 分析pages/tpl/style3/rankOverview.vue 页面是赛事的总览界面,主要用于展示用户在特定赛事(或其分区、地图)中的个人成绩概况,并作为进入实际比赛路线的入口。
页面加载 (onLoad):
token、id (赛事ID ecId) 等参数。cardfunc.init() 进行卡片功能模块的初始化。firstEnterKey (首次进入引导)、rankKey (榜单数据指纹)、mapKey (地图选择)。mapKey 中加载用户上次选择的地图或分组 ID (ocaId),以恢复上次的查看状态。cardfunc.isNewUserQuery() 判断当前用户是否为新用户,这会影响后续的引导流程。cardfunc.getCardConfig() 加载页面相关的配置,包括布局、文案、路线列表 (pathList) 等。matchRsDetailQuery() 来获取赛事详情和用户成绩数据。cardfunc.warnMessageQuery() 检查是否有警告消息需要显示。页面展示与数据更新:
mcName) 和活动时间 (acttime)。midType0 或 midType1 模板) 展示用户的核心成绩数据,例如总场次 (regionTotalNum)、打点数 (regionTotalCp)、里程 (regionTotalDictance)、积分/百味豆 (regionTotalSysPoint) 和最快配速 (regionFastPace)。这些数据通过 matchRsDetailQuery 获取并实时更新。<e-select> 下拉选择器,允许用户在不同的地图或赛事分组之间切换。这部分数据通过 apiMapListQuery 获取。用户选择不同的地图会触发 eSelectChange 方法,更新 ocaId 并重新加载该地图下的成绩和路线。my-pathList 组件展示当前选定地图下的具体比赛路线列表。路线数据来自页面的配置。用户交互:
my-pathList 中的某个路线项来选定该路线。btnStartGame):
mcState == 1),会通过 tools.appAction() 调用原生 APP 接口 (action://to_detail/) 跳转到对应路线的比赛详情页面,开始游戏。mcState == 0) 或已经结束 (mcState == 2),则会弹出相应的提示信息。allowMcSignUp 为 true),用户可以点击“修改”按钮 (btnReGroup) 跳转到报名页面 (/pages/tpl/style3/signup),可能用于重新选择分组。btnInfo) 会弹出赛事规则弹窗 (mypopup)。btnHelp) 会弹出帮助信息弹窗 (mypopupHelp)。btnWarn) 会弹出警告弹窗 (mypopupWarn)。my-guide 组件显示新手引导。btnBack) 会跳转回 rankList 页面。该页面主要通过 uni.request 调用以下后端 API:
apiMapListQuery:
mcId (赛事ID)。mapList 用于填充 <e-select> 组件的下拉选项,允许用户选择不同的比赛地图或分组。在页面加载时,如果 ocaId 尚未设置,会默认选择第一个地图。apiMatchRsDetailQuery:
ocaId)的详细信息及用户的个人成绩数据。ecId (卡片ID), ocaId (选定地图/分组ID)。mcType (赛事类型), mcId (赛事ID), mcName (赛事名称), beginSecond (开始时间戳), endSecond (结束时间戳)。coiName (报名单位名称), nickName (用户昵称)。regionTotalNum (场次), regionTotalCp (打点数), regionTotalCpRankNum (打点排名), regionTotalSysPoint (百味豆/积分), regionTotalDictance (里程), regionFastPace (最快配速) 等。mcState),触发倒计时更新,并调用 isAllowMcSignUp 检查是否允许重新报名。apiIsAllowMcSignUp:
ecId (卡片ID)。allowSignUp 控制“修改”按钮的可见性。my-topbar: 顶部导航栏,提供返回、信息和标题显示。<e-select>: 用于地图/分组选择的下拉组件。my-pathList: 展示比赛路线列表的自定义组件,支持点击选择路线。my-popup: 通用弹窗组件,用于显示赛事规则、帮助信息和警告。my-guide: 新手引导弹窗组件,针对首次使用的用户。cardConfig 配置: 页面大量依赖 cardfunc.getCardConfig 返回的配置对象。例如:
config.pathList: 定义了可用的比赛路线及其详情。config.midType: 控制页面中部成绩展示区域的布局和样式。config.subTitle: 页面副标题。config.popupHelpList, config.popupWarnList, config.popupRuleList: 用于各类弹窗显示的内容。uni.getStorageSync, uni.setStorageSync)mapKey: 用于持久化存储用户当前选择的地图/分组 ID (ocaId),以便下次进入页面时自动加载。firstEnterKey: 记录用户是否首次进入该页面,用于触发新手引导弹窗。rankKey: 存储赛事数据的指纹,用于检查数据更新(尽管在本页面中主要是用于传递给其他页面,如 rankList)。