feat: 支持同卡种续卡叠加并修复过期登录态
支付成功后将次数或有效期叠加到已有会员卡,首页与详情页引导续卡;接口 401 时同步清掉本地登录态。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -5,8 +5,13 @@ import type {
|
||||
UserStatsResponse,
|
||||
MembershipWithCardType,
|
||||
} from '@mp-pilates/shared'
|
||||
import { UserRole, MembershipStatus } from '@mp-pilates/shared'
|
||||
import {
|
||||
UserRole,
|
||||
MembershipStatus,
|
||||
getMembershipRenewalHint,
|
||||
} from '@mp-pilates/shared'
|
||||
import { wxLogin, isLoggedIn, logout as authLogout } from '../utils/auth'
|
||||
import { setUnauthorizedHandler } from '../utils/session'
|
||||
import { get, put } from '../utils/request'
|
||||
import { ROUTES } from '../utils/routes'
|
||||
import { cacheSubscriptionMessageTemplateConfig, resetSubscriptionMessageTemplateCache } from '../utils/wechat-subscription'
|
||||
@@ -32,6 +37,7 @@ export const useUserStore = defineStore('user', () => {
|
||||
memberships.value.filter((m) => m.status === MembershipStatus.ACTIVE),
|
||||
)
|
||||
const hasValidMembership = computed(() => activeMemberships.value.length > 0)
|
||||
const renewalHint = computed(() => getMembershipRenewalHint(memberships.value))
|
||||
const inviteShareEligible = computed(() => !!user.value?.inviteShareEligible)
|
||||
|
||||
// Actions
|
||||
@@ -110,15 +116,21 @@ export const useUserStore = defineStore('user', () => {
|
||||
}
|
||||
}
|
||||
|
||||
function logout() {
|
||||
authLogout()
|
||||
resetSubscriptionMessageTemplateCache()
|
||||
function clearSession() {
|
||||
token.value = ''
|
||||
user.value = null
|
||||
stats.value = null
|
||||
memberships.value = []
|
||||
resetSubscriptionMessageTemplateCache()
|
||||
}
|
||||
|
||||
function logout() {
|
||||
authLogout()
|
||||
clearSession()
|
||||
}
|
||||
|
||||
setUnauthorizedHandler(clearSession)
|
||||
|
||||
return {
|
||||
user,
|
||||
stats,
|
||||
@@ -129,6 +141,7 @@ export const useUserStore = defineStore('user', () => {
|
||||
isAdmin,
|
||||
activeMemberships,
|
||||
hasValidMembership,
|
||||
renewalHint,
|
||||
inviteShareEligible,
|
||||
login,
|
||||
loginWithSetup,
|
||||
|
||||
Reference in New Issue
Block a user