1 line
7.0 KiB
Plaintext
1 line
7.0 KiB
Plaintext
{"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\n $share.getShareInfo()\r\n\r\n // 提醒绑定手机号\r\n if (app().platform.bind_mobile && !this.userInfo.mobile) {\r\n showAuthModal('changeMobile')\r\n }\r\n\r\n // 绑定推广员\r\n $share.bindBrokerageUser()\r\n },\r\n\r\n // 登出系统\r\n async logout() {\r\n this.resetUserData()\r\n return !this.isLogin\r\n },\r\n },\r\n persist: {\r\n enabled: true,\r\n strategies: [\r\n {\r\n key: 'user-store',\r\n },\r\n ],\r\n },\r\n})\r\n\r\nexport default user\r\n"],"names":["defineStore","clone","uni","cloneDeep","UserApi","PayWalletApi","OrderApi","CouponApi","cart","$share","app","showAuthModal"],"mappings":"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"} |