页面提交
This commit is contained in:
@@ -1,61 +1,40 @@
|
||||
import type { IUserInfoRes } from '@/api/types/login'
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref } from 'vue'
|
||||
import {
|
||||
getUserInfo,
|
||||
} from '@/api/login'
|
||||
import type { User } from '@/typings/mall'
|
||||
import { mockMember } from '@/mock/member'
|
||||
|
||||
// 初始化状态
|
||||
const userInfoState: IUserInfoRes = {
|
||||
userId: -1,
|
||||
username: '',
|
||||
nickname: '',
|
||||
avatar: '/static/images/default-avatar.png',
|
||||
}
|
||||
export const useUserStore = defineStore('user', {
|
||||
state: () => ({
|
||||
userInfo: {
|
||||
id: 'user_001',
|
||||
username: 'admin',
|
||||
nickname: '测试用户',
|
||||
avatar: 'https://picsum.photos/200/200?random=avatar',
|
||||
phone: '13800138000',
|
||||
creditLimits: [], // 实际应从 financeStore 获取或关联
|
||||
member: mockMember,
|
||||
} as User | null,
|
||||
isLogin: true, // 默认已登录
|
||||
}),
|
||||
|
||||
export const useUserStore = defineStore(
|
||||
'user',
|
||||
() => {
|
||||
// 定义用户信息
|
||||
const userInfo = ref<IUserInfoRes>({ ...userInfoState })
|
||||
// 设置用户信息
|
||||
const setUserInfo = (val: IUserInfoRes) => {
|
||||
console.log('设置用户信息', val)
|
||||
// 若头像为空 则使用默认头像
|
||||
if (!val.avatar) {
|
||||
val.avatar = userInfoState.avatar
|
||||
}
|
||||
userInfo.value = val
|
||||
}
|
||||
const setUserAvatar = (avatar: string) => {
|
||||
userInfo.value.avatar = avatar
|
||||
console.log('设置用户头像', avatar)
|
||||
console.log('userInfo', userInfo.value)
|
||||
}
|
||||
// 删除用户信息
|
||||
const clearUserInfo = () => {
|
||||
userInfo.value = { ...userInfoState }
|
||||
uni.removeStorageSync('user')
|
||||
}
|
||||
actions: {
|
||||
// 登录(模拟)
|
||||
login(data: any) {
|
||||
this.isLogin = true
|
||||
// ...
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*/
|
||||
const fetchUserInfo = async () => {
|
||||
const res = await getUserInfo()
|
||||
setUserInfo(res)
|
||||
return res
|
||||
}
|
||||
|
||||
return {
|
||||
userInfo,
|
||||
clearUserInfo,
|
||||
fetchUserInfo,
|
||||
setUserInfo,
|
||||
setUserAvatar,
|
||||
}
|
||||
// 退出登录
|
||||
logout() {
|
||||
this.isLogin = false
|
||||
this.userInfo = null
|
||||
},
|
||||
},
|
||||
{
|
||||
persist: true,
|
||||
|
||||
persist: {
|
||||
key: 'shop-toy-user',
|
||||
storage: {
|
||||
getItem: key => uni.getStorageSync(key),
|
||||
setItem: (key, value) => uni.setStorageSync(key, value),
|
||||
},
|
||||
},
|
||||
)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user