feat: add agreement-gated login state

This commit is contained in:
gqt
2026-06-10 11:46:39 +08:00
parent 11fe7399f3
commit 0d5fe7d1cf
14 changed files with 662 additions and 61 deletions
@@ -7,24 +7,21 @@
type="loading"
/>
<StatePanel
<UnauthLoginPanel
v-else-if="sessionStatus === SESSION_STATUS.GUEST"
title="登录后查看预约详情"
description="请先登录并完善会员资料。"
primary-text="微信一键登录"
type="login"
:loading="isLoginSubmitting"
@primary="onWechatLogin"
@login="onWechatLogin"
/>
<StatePanel
<UnauthLoginPanel
v-else-if="sessionStatus === SESSION_STATUS.EXPIRED"
title="登录状态已过期"
description="为了保护会员资料,请重新登录后继续查看。"
primary-text="重新登录"
type="expired"
:loading="isLoginSubmitting"
@primary="onWechatLogin"
@login="onWechatLogin"
/>
<StatePanel
@@ -147,6 +144,7 @@ import { onShow } from '@dcloudio/uni-app'
import { bookingApi } from '@/modules/ice/api/booking'
import { errorMessage, getMemberSession, loginAndStoreToken, sessionStatusFromError, SESSION_STATUS } from '@/modules/ice/api/session'
import StatePanel from '@/components/ice/StatePanel.vue'
import UnauthLoginPanel from '@/components/UnauthLoginPanel.vue'
const booking = ref({
id: null,
+5 -8
View File
@@ -7,23 +7,19 @@
type="loading"
/>
<StatePanel
<UnauthLoginPanel
v-else-if="sessionStatus === SESSION_STATUS.GUEST"
primary-text="微信一键登录"
type="login"
:show-mark="false"
:loading="isLoginSubmitting"
@primary="onWechatLogin"
@login="onWechatLogin"
/>
<StatePanel
<UnauthLoginPanel
v-else-if="sessionStatus === SESSION_STATUS.EXPIRED"
title="登录状态已过期"
description="为了保护会员资料,请重新登录后继续查看预约行程。"
primary-text="重新登录"
type="expired"
:loading="isLoginSubmitting"
@primary="onWechatLogin"
@login="onWechatLogin"
/>
<StatePanel
@@ -123,6 +119,7 @@ import { authStorage } from '@/modules/ice/api/member'
import { errorMessage, getMemberSession, loginAndStoreToken, sessionStatusFromError, SESSION_STATUS } from '@/modules/ice/api/session'
import VenueTabBar from '@/components/VenueTabBar.vue'
import StatePanel from '@/components/ice/StatePanel.vue'
import UnauthLoginPanel from '@/components/UnauthLoginPanel.vue'
const isLoggedIn = ref(false)
const isLoginSubmitting = ref(false)