Files
hupeng d0b337c596 v1.0
2023-10-11 11:27:47 +08:00

62 lines
1.7 KiB
JavaScript

import { defineStore } from 'pinia'
import cookie from '@/utils/cookie'
import { getUserInfo } from '@/api/user'
import { getAddressDel, getAddressDefault, getAddressAddAndEdit, getAddressList, getAddressCityList } from '@/api/address'
import { navigateTo } from '@/utils/router'
export const useMainStore = defineStore('main', {
state: () => ({
user: null,
address: [],
areaList: [],
selectAddress: null,
}),
getters: {
defaultAddress(state) {
return state.address?.filter(item => item.isDefault)?.[0]
},
},
actions: {
setAccessToken(user) {
cookie.set('accessToken', user)
return getUserInfo()
},
setSelectAddress(id) {
console.log('--> % setSelectAddress % id:\n', id)
this.selectAddress = this.address.filter(item => item.id == id)[0]
},
async getUserInfo(user) {
let res = await getUserInfo()
this.user = res
return res
},
async getAddressList(user) {
let res = await getAddressList()
this.selectAddress = res.filter(item => item.isDefault)[0]
this.address = res
// console.log('--> % getUserInfo % res:\n', res)
},
async getAddressCityList() {
let res = await getAddressCityList()
this.areaList = res
// console.log("--> % getAddressCityList % this:\n", this)
// console.log('--> % getAddressCityList % res:\n', res)
},
init() {
let accessToken = cookie.get('accessToken')
if (accessToken) {
return getUserInfo()
}
return null
},
logout() {
this.user = null
this.address = []
this.areaList = []
this.selectAddress = null
navigateTo('/pages/login/login')
},
},
})