perf(我的)

This commit is contained in:
Ankkaya 2024-08-26 18:33:26 +08:00
parent bfe36ac0e8
commit b58fe9df30
2 changed files with 110 additions and 105 deletions

View File

@ -14,9 +14,9 @@
<view class="description ss-font-26">{{ userInfo.mobile }}</view> <view class="description ss-font-26">{{ userInfo.mobile }}</view>
</view> </view>
</view> </view>
<view> <!-- <view>
<text style="color: #fff; font-size: 20px" class="cicon-settings-o"></text> <text style="color: #fff; font-size: 20px" class="cicon-settings-o"></text>
</view> </view> -->
</view> </view>
<view class="statistic ss-m-t-24"> <view class="statistic ss-m-t-24">
@ -51,6 +51,7 @@
<script setup> <script setup>
import { ref, computed } from 'vue' import { ref, computed } from 'vue'
import { onShow } from '@dcloudio/uni-app'
import AuthUtil from '@/peach/api/member/auth' import AuthUtil from '@/peach/api/member/auth'
import peach from '@/peach' import peach from '@/peach'
@ -113,6 +114,9 @@ function logOut() {
}, },
}) })
} }
onShow(() => {
peach.$store('user').updateUserData()
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>

View File

@ -1,125 +1,126 @@
import { ref } from "vue"; import { ref } from 'vue'
import { defineStore } from "pinia"; import { defineStore } from 'pinia'
import $share from "@/peach/platform/share"; import $share from '@/peach/platform/share'
import $router from "@/peach/router"; import $router from '@/peach/router'
import UserUtil from "@/peach/api/member/user"; import UserUtil from '@/peach/api/member/user'
import { isEmpty, cloneDeep, clone } from "lodash"; import { isEmpty, cloneDeep, clone } from 'lodash'
// 默认用户信息 // 默认用户信息
const defaultUserInfo = { const defaultUserInfo = {
avatar: "", // 头像 avatar: '', // 头像
nickname: "", // 昵称 nickname: '', // 昵称
mobile: "", // 手机号 mobile: '', // 手机号
point: 0, // 积分 point: 0, // 积分
particulars: null, particulars: null,
}; }
// 默认钱包信息 // 默认钱包信息
const defaultWallet = { const defaultWallet = {
balance: 0, // 余额 balance: 0, // 余额
totalExpense: 0, // 总消费 totalExpense: 0, // 总消费
totalRecharge: 0, // 总充值 totalRecharge: 0, // 总充值
}; }
// 默认订单信息 // 默认订单信息
const defaultNumData = { const defaultNumData = {
unusedCouponCount: 0, unusedCouponCount: 0,
orderCount: { orderCount: {
allCount: 0, allCount: 0,
unpaidCount: 0, unpaidCount: 0,
undeliveredCount: 0, undeliveredCount: 0,
deliveredCount: 0, deliveredCount: 0,
uncommentedCount: 0, uncommentedCount: 0,
afterSaleCount: 0, afterSaleCount: 0,
}, },
}; }
const useUserStore = defineStore( const useUserStore = defineStore(
"user", 'user',
() => { () => {
const userInfo = ref(cloneDeep(defaultUserInfo)); const userInfo = ref(cloneDeep(defaultUserInfo))
const userWallet = ref(clone(defaultWallet)); const userWallet = ref(clone(defaultWallet))
const userNumData = ref(cloneDeep(defaultNumData)); const userNumData = ref(cloneDeep(defaultNumData))
const isLogin = ref(!!uni.getStorageSync("token")); const isLogin = ref(!!uni.getStorageSync('token'))
const lastUpdateTime = ref(0); const lastUpdateTime = ref(0)
const lastRoutePage = ref(null); const lastRoutePage = ref(null)
async function getUserInfo() { async function getUserInfo() {
let res = await UserUtil.getUserInfo(); let res = await UserUtil.getUserInfo()
userInfo.value = res.data; userInfo.value = res.data
} }
async function getWallet() { async function getWallet() {
let res = await UserUtil.getWalletInfo(); let res = await UserUtil.getWalletInfo()
userWallet.value = res.data; userWallet.value = res.data
} }
function getNumData() {} function getNumData() {}
function setToken(token, refreshToken) { function setToken(token, refreshToken) {
if (token === "") { if (token === '') {
isLogin.value = false; isLogin.value = false
uni.removeStorageSync("token"); uni.removeStorageSync('token')
uni.removeStorageSync("refresh-token"); uni.removeStorageSync('refresh-token')
} else { } else {
isLogin.value = true; isLogin.value = true
uni.setStorageSync("token", token); uni.setStorageSync('token', token)
uni.setStorageSync("refresh-token", refreshToken); uni.setStorageSync('refresh-token', refreshToken)
// 成功后处理 // 成功后处理
loginAfter(); loginAfter()
} }
return isLogin.value; return isLogin.value
} }
function resetUserData() { function resetUserData() {
setToken(""); setToken('')
userInfo.value = cloneDeep(defaultUserInfo); userInfo.value = cloneDeep(defaultUserInfo)
userWallet.value = clone(defaultWallet); userWallet.value = clone(defaultWallet)
userNumData.value = cloneDeep(defaultNumData); userNumData.value = cloneDeep(defaultNumData)
} }
async function updateUserData() { async function updateUserData() {
const nowTime = new Date().getTime(); const nowTime = new Date().getTime()
if (lastUpdateTime.value + 5000 > nowTime) { if (lastUpdateTime.value + 5000 > nowTime) {
return; return
} }
lastUpdateTime.value = nowTime; lastUpdateTime.value = nowTime
await Promise.all([getUserInfo(), getWallet(), getNumData()]); await Promise.all([getUserInfo(), getWallet(), getNumData()])
return userInfo.value; return userInfo.value
} }
async function loginAfter() { async function loginAfter() {
await updateUserData(); await updateUserData()
$share.getShareInfo(); $share.getShareInfo()
$router.go("/pages/index/index"); $router.go('/pages/index/index')
} }
function logOut() { function logOut() {
resetUserData(); resetUserData()
return !isLogin.value; return !isLogin.value
} }
return { return {
userInfo, userInfo,
userWallet, userWallet,
isLogin, isLogin,
lastRoutePage, lastRoutePage,
setToken, setToken,
logOut, logOut,
loginAfter, loginAfter,
getWallet, getWallet,
}; updateUserData,
}, }
{
persist: {
enabled: true,
strategies: [
{
key: "user-store",
},
],
}, },
} {
); persist: {
enabled: true,
strategies: [
{
key: 'user-store',
},
],
},
}
)
export default useUserStore; export default useUserStore