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
@@ -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))