推进活动系统最小成品闭环与游客体验

This commit is contained in:
2026-04-07 19:05:18 +08:00
parent 1a6008449e
commit 6cd16f08dd
102 changed files with 16087 additions and 3556 deletions

View File

@@ -5,9 +5,13 @@ import type { GameLaunchEnvelope } from '../../utils/gameLaunch'
type ResultPageData = {
sessionId: string
eventId: string
guestMode: boolean
statusText: string
sessionTitleText: string
sessionSubtitleText: string
activitySummaryText: string
listButtonText: string
rows: Array<{ label: string; value: string }>
}
@@ -95,9 +99,13 @@ function loadPendingResultLaunchEnvelope(): GameLaunchEnvelope | null {
Page({
data: {
sessionId: '',
eventId: '',
guestMode: false,
statusText: '准备加载结果',
sessionTitleText: '结果页',
sessionSubtitleText: '未加载',
activitySummaryText: '你可以查看本局结果,也可以回到活动继续查看详情。',
listButtonText: '查看历史结果',
rows: [],
} as ResultPageData,
@@ -131,6 +139,16 @@ Page({
statusText: '正在加载结果',
sessionTitleText: snapshot.title,
sessionSubtitleText: snapshot.subtitle,
guestMode: !getAccessToken(),
eventId: pendingLaunchEnvelope && pendingLaunchEnvelope.business && pendingLaunchEnvelope.business.eventId
? pendingLaunchEnvelope.business.eventId
: '',
activitySummaryText: pendingLaunchEnvelope && pendingLaunchEnvelope.business && pendingLaunchEnvelope.business.eventId
? (!getAccessToken()
? '本局游客体验已结束,你可以回到活动继续查看,或返回地图体验。'
: '本局结果已生成,你可以继续查看详情,或回到活动页。')
: (!getAccessToken() ? '本局游客体验已结束,你可以返回地图体验。' : '本局结果已生成,你可以继续查看历史结果。'),
listButtonText: getAccessToken() ? '查看历史结果' : '返回地图体验',
rows: appendRuntimeRows([
{ label: snapshot.heroLabel, value: snapshot.heroValue },
...snapshot.rows.map((row) => ({
@@ -152,7 +170,11 @@ Page({
async loadSingleResult(sessionId: string) {
const accessToken = getAccessToken()
if (!accessToken) {
wx.redirectTo({ url: '/pages/login/login' })
this.setData({
guestMode: true,
statusText: '游客模式当前不加载后端单局结果,先展示本地结果摘要',
listButtonText: '返回地图体验',
})
return
}
@@ -169,8 +191,12 @@ Page({
const pendingLaunchEnvelope = loadPendingResultLaunchEnvelope()
this.setData({
statusText: '单局结果加载完成',
eventId: result.session.eventId || '',
sessionTitleText: result.session.eventName || result.session.eventDisplayName || result.session.eventId || result.session.id || result.session.sessionId,
sessionSubtitleText: `${result.session.status || result.session.sessionStatus} / ${result.result.status} / ${formatRouteSummary(result.session)}`,
activitySummaryText: result.session.eventId
? '你可以继续查看这场活动的详情,或回看历史结果。'
: '你可以继续回看历史结果。',
rows: appendRuntimeRows([
{ label: '赛道版本', value: formatRouteSummary(result.session) },
{ label: '最终得分', value: formatValue(result.result.finalScore) },
@@ -199,8 +225,27 @@ Page({
},
handleBackToList() {
if (this.data.guestMode) {
wx.redirectTo({
url: '/pages/experience-maps/experience-maps',
})
return
}
wx.redirectTo({
url: '/pages/results/results',
})
},
handleBackToEvent() {
if (!this.data.eventId) {
wx.showToast({
title: '当前结果未关联活动',
icon: 'none',
})
return
}
wx.redirectTo({
url: `/pages/event/event?eventId=${encodeURIComponent(this.data.eventId)}`,
})
},
})