diff --git a/App.vue b/App.vue index bbcfb28..aa98ed1 100644 --- a/App.vue +++ b/App.vue @@ -3,12 +3,18 @@ import { useUserStore } from "./stores/user"; import { userOpenApp } from "./api/auth"; const openApp = async () => { - const res = await userOpenApp(); - if (res?.points && res.points > 0) { - uni.showToast({ - title: `每日登录 +${res.points} 积分`, - icon: "none", - }); + try { + const res = await userOpenApp(); + if (res?.points && res.points > 0) { + uni.showToast({ + title: `每日登录 +${res.points} 积分`, + icon: "none", + }); + const userStore = useUserStore(); + await userStore.fetchUserAssets(); + } + } catch (e) { + console.error("userOpenApp error", e); } }; diff --git a/components/LoginPopup/LoginPopup.vue b/components/LoginPopup/LoginPopup.vue index 9880cc9..f5809ef 100644 --- a/components/LoginPopup/LoginPopup.vue +++ b/components/LoginPopup/LoginPopup.vue @@ -210,6 +210,9 @@ const handleAlipayLogin = async () => { id: loginRes?.user?.id, isVip: loginRes?.isVip || false, vipExpireAt: loginRes?.vipExpireAt || null, + points: loginRes?.points || 0, + exp: loginRes?.exp || 0, + level: loginRes?.level || 0, }); userStore.setToken(loginRes.token); @@ -281,6 +284,9 @@ const confirmLogin = async () => { id: loginRes?.user?.id, isVip: loginRes?.isVip || false, vipExpireAt: loginRes?.vipExpireAt || null, + points: loginRes?.points || 0, + exp: loginRes?.exp || 0, + level: loginRes?.level || 0, }); userStore.setToken(loginRes.token); diff --git a/pages/avatar/download.vue b/pages/avatar/download.vue index bd1b1ad..6d146de 100644 --- a/pages/avatar/download.vue +++ b/pages/avatar/download.vue @@ -27,7 +27,7 @@ 当前积分: - {{ userScore }} + {{ userPoints }} @@ -123,7 +123,7 @@ const userStore = useUserStore(); const loginPopupRef = ref(null); const isLoggedIn = computed(() => !!userStore.userInfo.nickName); -const userScore = computed(() => userStore.userInfo.score || 0); +const userPoints = computed(() => userStore.userInfo.points || 0); const downloadCost = ref(20); const categories = ref([]); diff --git a/stores/user.js b/stores/user.js index cc7f18c..7e4876f 100644 --- a/stores/user.js +++ b/stores/user.js @@ -1,7 +1,7 @@ import { defineStore } from "pinia"; import { wxLogin, wxGetUserProfile } from "@/utils/login.js"; import { getPlatformProvider } from "@/utils/system"; -import { getUserInfo } from "@/api/auth.js"; +import { getUserInfo, getUserAsset } from "@/api/auth.js"; export const useUserStore = defineStore("user", { state: () => ({ @@ -55,6 +55,28 @@ export const useUserStore = defineStore("user", { console.error("fetchUserInfo error", e); } }, + async fetchUserAssets() { + try { + const res = await getUserAsset(); + if (res) { + const newInfo = { ...this.userInfo, ...res }; + if (res.points !== undefined) { + newInfo.points = res.points; + } + + if (res.exp !== undefined) { + newInfo.exp = res.exp; + } + + if (res.level !== undefined) { + newInfo.level = res.level; + } + this.setUserInfo(newInfo); + } + } catch (e) { + console.error("fetchUserAssets error", e); + } + }, logout() { this.userInfo = {}; this.token = "";