acdr-ui/dist/dev/mp-weixin/sheep/store/user.js.map

1 line
7.0 KiB
Plaintext
Raw Normal View History

2024-09-19 07:20:14 +08:00
{"version":3,"file":"user.js","sources":["../../../../../src/sheep/store/user.js"],"sourcesContent":["import { defineStore } from 'pinia'\r\nimport $share from '@/sheep/platform/share'\r\nimport { clone, cloneDeep } from 'lodash-es'\r\nimport cart from './cart'\r\nimport app from './app'\r\nimport { showAuthModal } from '@/sheep/hooks/useModal'\r\nimport UserApi from '@/sheep/api/member/user'\r\nimport PayWalletApi from '@/sheep/api/pay/wallet'\r\nimport OrderApi from '@/sheep/api/trade/order'\r\nimport CouponApi from '@/sheep/api/promotion/coupon'\r\n\r\n// 默认用户信息\r\nconst defaultUserInfo = {\r\n avatar: '', // 头像\r\n nickname: '', // 昵称\r\n gender: 0, // 性别\r\n mobile: '', // 手机号\r\n point: 0, // 积分\r\n}\r\n\r\n// 默认钱包信息\r\nconst defaultUserWallet = {\r\n balance: 0, // 余额\r\n}\r\n\r\n// 默认订单、优惠券等其他资产信息\r\nconst defaultNumData = {\r\n unusedCouponCount: 0,\r\n orderCount: {\r\n allCount: 0,\r\n unpaidCount: 0,\r\n undeliveredCount: 0,\r\n deliveredCount: 0,\r\n uncommentedCount: 0,\r\n afterSaleCount: 0,\r\n },\r\n}\r\n\r\nconst user = defineStore({\r\n id: 'user',\r\n state: () => ({\r\n userInfo: clone(defaultUserInfo), // 用户信息\r\n userWallet: clone(defaultUserWallet), // 用户钱包信息\r\n isLogin: !!uni.getStorageSync('token'), // 登录状态\r\n numData: cloneDeep(defaultNumData), // 用户其他数据\r\n lastUpdateTime: 0, // 上次更新时间\r\n }),\r\n\r\n actions: {\r\n // 获取用户信息\r\n async getInfo() {\r\n const { code, data } = await UserApi.getUserInfo()\r\n if (code !== 0) {\r\n return\r\n }\r\n this.userInfo = data\r\n return Promise.resolve(data)\r\n },\r\n\r\n // 获得用户钱包\r\n async getWallet() {\r\n const { code, data } = await PayWalletApi.getPayWallet()\r\n if (code !== 0) {\r\n return\r\n }\r\n this.userWallet = data\r\n },\r\n\r\n // 获取订单、优惠券等其他资产信息\r\n getNumData() {\r\n OrderApi.getOrderCount().then((res) => {\r\n if (res.code === 0) {\r\n this.numData.orderCount = res.data\r\n }\r\n })\r\n CouponApi.getUnusedCouponCount().then((res) => {\r\n if (res.code === 0) {\r\n this.numData.unusedCouponCount = res.data\r\n }\r\n })\r\n },\r\n\r\n // 设置 token\r\n setToken(token = '', refreshToken = '') {\r\n if (token === '') {\r\n this.isLogin = false\r\n uni.removeStorageSync('token')\r\n uni.removeStorageSync('refresh-token')\r\n } else {\r\n this.isLogin = true\r\n uni.setStorageSync('token', token)\r\n uni.setStorageSync('refresh-token', refreshToken)\r\n this.loginAfter()\r\n }\r\n return this.isLogin\r\n },\r\n\r\n // 更新用户相关信息 (手动限流5 秒之内不刷新)\r\n async updateUserData() {\r\n if (!this.isLogin) {\r\n this.resetUserData()\r\n return\r\n }\r\n // 防抖5 秒之内不刷新\r\n const nowTime = new Date().getTime()\r\n if (this.lastUpdateTime + 5000 > nowTime) {\r\n return\r\n }\r\n this.lastUpdateTime = nowTime\r\n\r\n // 获取最新信息\r\n await this.getInfo()\r\n this.getWallet()\r\n this.getNumData()\r\n return this.userInfo\r\n },\r\n\r\n // 重置用户默认数据\r\n resetUserData() {\r\n // 清空 token\r\n this.setToken()\r\n // 清空用户相关的缓存\r\n this.userInfo = clone(defaultUserInfo)\r\n this.userWallet = clone(defaultUserWallet)\r\n this.numData = cloneDeep(defaultNumData)\r\n // 清空购物车的缓存\r\n cart().emptyList()\r\n },\r\n\r\n // 登录后,加载各种信息\r\n // TODO 芋艿:整理下;\r\n async loginAfter() {\r\n await this.updateUserData()\r\n\r\n // 加载购物车\r\n cart().getList()\r\n // 登录后设置全局分享参数\r