feat: add agreement-gated login state
This commit is contained in:
@@ -1,11 +1,8 @@
|
||||
<template>
|
||||
<view class="bookings-page">
|
||||
<StatePanel
|
||||
<UnauthLoginPanel
|
||||
v-if="!session.isLoggedIn"
|
||||
primary-text="微信一键登录"
|
||||
type="login"
|
||||
:show-mark="false"
|
||||
@primary="login"
|
||||
@login="login"
|
||||
/>
|
||||
|
||||
<block v-else>
|
||||
@@ -44,7 +41,7 @@ import { ticketApi } from '@/modules/comprehensive/api/ticket'
|
||||
import { useComprehensiveSessionStore } from '@/modules/comprehensive/stores/session'
|
||||
import { formatDateTime, formatTimeRange } from '@/modules/comprehensive/utils/date'
|
||||
import VenueTabBar from '@/components/VenueTabBar.vue'
|
||||
import StatePanel from '@/components/ice/StatePanel.vue'
|
||||
import UnauthLoginPanel from '@/components/UnauthLoginPanel.vue'
|
||||
|
||||
const session = useComprehensiveSessionStore()
|
||||
const businessType = ref('course')
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
<template>
|
||||
<view class="profile-page container">
|
||||
<StatePanel
|
||||
<UnauthLoginPanel
|
||||
v-if="!session.isLoggedIn"
|
||||
primary-text="微信一键登录"
|
||||
type="login"
|
||||
:show-mark="false"
|
||||
@primary="login"
|
||||
@login="login"
|
||||
/>
|
||||
|
||||
<block v-else>
|
||||
@@ -68,6 +65,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<AgreementLinks v-if="session.isLoggedIn" class="profile-agreement-links" compact />
|
||||
<VenueTabBar venue="comprehensive" active="profile" />
|
||||
</view>
|
||||
</template>
|
||||
@@ -76,7 +74,8 @@
|
||||
import { computed, onMounted } from 'vue'
|
||||
import { useComprehensiveSessionStore } from '@/modules/comprehensive/stores/session'
|
||||
import VenueTabBar from '@/components/VenueTabBar.vue'
|
||||
import StatePanel from '@/components/ice/StatePanel.vue'
|
||||
import AgreementLinks from '@/components/AgreementLinks.vue'
|
||||
import UnauthLoginPanel from '@/components/UnauthLoginPanel.vue'
|
||||
|
||||
const session = useComprehensiveSessionStore()
|
||||
const avatarInitial = computed(() => (session.member?.nickname || '用户').slice(0, 1))
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -148,6 +145,7 @@ import { onPullDownRefresh, onShow } from '@dcloudio/uni-app'
|
||||
import { cardApi } from '@/modules/ice/api/card'
|
||||
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 card = ref({
|
||||
id: null,
|
||||
|
||||
@@ -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
|
||||
@@ -137,6 +134,7 @@ import { cardApi } from '@/modules/ice/api/card'
|
||||
import { authStorage } from '@/modules/ice/api/member'
|
||||
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 cards = ref([])
|
||||
const isLoading = ref(false)
|
||||
|
||||
@@ -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
|
||||
@@ -101,6 +98,7 @@ import { ref } from 'vue'
|
||||
import { onShow } from '@dcloudio/uni-app'
|
||||
import { errorMessage, getMemberSession, loginAndStoreToken, SESSION_STATUS } from '@/modules/ice/api/session'
|
||||
import StatePanel from '@/components/ice/StatePanel.vue'
|
||||
import UnauthLoginPanel from '@/components/UnauthLoginPanel.vue'
|
||||
|
||||
const member = ref({
|
||||
name: '',
|
||||
|
||||
@@ -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
|
||||
@@ -212,6 +208,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
<AgreementLinks v-if="isLoggedIn" class="profile-agreement-links" compact />
|
||||
<VenueTabBar venue="ice" active="profile" />
|
||||
</view>
|
||||
</template>
|
||||
@@ -223,6 +220,8 @@ import { api, authStorage } from '@/modules/ice/api/member'
|
||||
import { errorMessage, getMemberSession, loginAndStoreToken, SESSION_STATUS } from '@/modules/ice/api/session'
|
||||
import VenueTabBar from '@/components/VenueTabBar.vue'
|
||||
import StatePanel from '@/components/ice/StatePanel.vue'
|
||||
import AgreementLinks from '@/components/AgreementLinks.vue'
|
||||
import UnauthLoginPanel from '@/components/UnauthLoginPanel.vue'
|
||||
|
||||
const isLoggedIn = ref(false)
|
||||
const isBound = ref(false)
|
||||
|
||||
Reference in New Issue
Block a user