实现租客成长等级并优化展示
This commit is contained in:
@@ -9,6 +9,16 @@ import {
|
||||
} from '@/shared/utils/authStorage'
|
||||
import { loginWithPassword, registerWithPassword } from '@/features/auth/api/auth'
|
||||
|
||||
function renterGrowthLevelName(level: string) {
|
||||
const map: Record<string, string> = {
|
||||
normal: '普通',
|
||||
platinum: '铂金',
|
||||
diamond: '钻石',
|
||||
peak: '巅峰',
|
||||
}
|
||||
return map[level] || '普通'
|
||||
}
|
||||
|
||||
export const useSessionStore = defineStore('session', {
|
||||
state: () => ({
|
||||
token: getAccessToken('user'),
|
||||
@@ -18,6 +28,8 @@ export const useSessionStore = defineStore('session', {
|
||||
nickname: localStorage.getItem('nickname') || '',
|
||||
avatarUrl: localStorage.getItem('avatar_url') || '',
|
||||
realnameStatus: localStorage.getItem('realname_status') || 'unknown',
|
||||
renterGrowthPoints: Number(localStorage.getItem('renter_growth_points') || 0),
|
||||
renterGrowthLevel: localStorage.getItem('renter_growth_level') || 'normal',
|
||||
_loadingMe: false, // 防止重复调用
|
||||
}),
|
||||
getters: {
|
||||
@@ -25,6 +37,7 @@ export const useSessionStore = defineStore('session', {
|
||||
displayName: state =>
|
||||
state.nickname || (state.phone ? `用户${state.phone.slice(-6)}` : `用户${state.userId || 0}`),
|
||||
avatarText: state => (state.nickname || state.phone || 'U').slice(0, 1),
|
||||
renterGrowthLevelName: state => renterGrowthLevelName(state.renterGrowthLevel),
|
||||
},
|
||||
actions: {
|
||||
async login(phone: string, code: string) {
|
||||
@@ -78,6 +91,8 @@ export const useSessionStore = defineStore('session', {
|
||||
this.nickname = ''
|
||||
this.avatarUrl = ''
|
||||
this.realnameStatus = 'unknown'
|
||||
this.renterGrowthPoints = 0
|
||||
this.renterGrowthLevel = 'normal'
|
||||
clearAuthStorage('user')
|
||||
},
|
||||
syncFromStorage() {
|
||||
@@ -88,6 +103,8 @@ export const useSessionStore = defineStore('session', {
|
||||
this.nickname = localStorage.getItem('nickname') || ''
|
||||
this.avatarUrl = localStorage.getItem('avatar_url') || ''
|
||||
this.realnameStatus = localStorage.getItem('realname_status') || 'unknown'
|
||||
this.renterGrowthPoints = Number(localStorage.getItem('renter_growth_points') || 0)
|
||||
this.renterGrowthLevel = localStorage.getItem('renter_growth_level') || 'normal'
|
||||
},
|
||||
applySession(user: AuthUser, accessToken: string, refreshToken: string) {
|
||||
this.token = accessToken
|
||||
@@ -111,6 +128,10 @@ export const useSessionStore = defineStore('session', {
|
||||
localStorage.setItem('avatar_url', user.avatar_url)
|
||||
this.realnameStatus = user.realname_status
|
||||
localStorage.setItem('realname_status', user.realname_status)
|
||||
this.renterGrowthPoints = Number(user.renter_growth_points || 0)
|
||||
localStorage.setItem('renter_growth_points', String(this.renterGrowthPoints))
|
||||
this.renterGrowthLevel = user.renter_growth_level || 'normal'
|
||||
localStorage.setItem('renter_growth_level', this.renterGrowthLevel)
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user