| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import { defineStore } from 'pinia'
- import { StaticUrl } from '@/config'
- interface userStroe {
- token: string
- /**
- * 重定向路由名称
- */
- redirectName: string
- /**
- * 用户登录信息
- */
- userInfo: Api.userInfo
- /**
- * 用户收货地址
- */
- addresses: Api.addressList[]
- /**
- * 星闪爆用户选择的收货地址
- *
- */
- selectedAddress: Api.addressList | null
- /**
- * 市民请集合购物车用户选中的收货地址
- */
- smqjhSelectedAddress: Api.addressList | null
- }
- export const useUserStore = defineStore('user', {
- state: (): userStroe => ({
- token: '',
- redirectName: '',
- userInfo: {
- id: 0,
- channelId: 0,
- channelName: '',
- },
- addresses: [],
- selectedAddress: null,
- smqjhSelectedAddress: null,
- }),
- getters: {
- getUserAvatar(): string {
- if (this.userInfo.avatarUrl) {
- return this.userInfo.avatarUrl
- }
- return `${StaticUrl}/avator.png`
- },
- },
- actions: {
- async getUserInfo() {
- if (this.token) {
- const { data } = await api.sys.userInfo({})
- this.userInfo = data
- await this.getuserAddresslist()
- this.getSelectedAddress()
- await useSmqjhCartStore().getCartList('XSB')
- const { getTotalNum } = storeToRefs(useSmqjhCartStore())
- useTabbar().setTabbarItem('smqjh-cart', getTotalNum.value)
- }
- },
- async updataUserInfo(data: Api.userInfo) {
- uni.showLoading({ mask: true })
- await Apis.sys.updateUserInfo({ pathParams: { memberId: data.id }, data })
- uni.hideLoading()
- useGlobalToast().show({ msg: '修改成功' })
- this.getUserInfo()
- },
- /**
- * 获取用户收货地址列表
- */
- async getuserAddresslist() {
- return new Promise((resolve, reject) => {
- uni.showLoading({ mask: true })
- Apis.sys.addresses({}).then((res) => {
- this.addresses = res.data || []
- resolve(res)
- }).catch(err => reject(err)).finally(() => uni.hideLoading())
- })
- },
- /**
- *
- * 更新用户选择的收货地址
- */
- updateSelectedAddress(address: Api.addressList) {
- this.selectedAddress = address
- },
- /**
- * 获取用户收货地址
- * @description 默认选择默认地址,如无默认地址则不选择
- */
- getSelectedAddress() {
- this.selectedAddress = this.addresses.find(it => it.defaulted === 1) ?? null
- },
- /**
- * 获取市民请集合购物车用户选择的收货地址
- * @description 默认选择默认地址,如无默认地址则不选择
- */
- getSmqjhSelectedAddress() {
- this.smqjhSelectedAddress = this.addresses.find(it => it.defaulted === 1) ?? null
- },
- /**
- * 更新市民请集合购物车用户选择的收货地址
- */
- updateSmqjhSelectedAddress(address: Api.addressList) {
- this.smqjhSelectedAddress = address
- },
- },
- })
|