推进活动系统最小成品闭环与游客体验
This commit is contained in:
@@ -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)}`,
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user