diff --git a/src/stores/userStore.ts b/src/stores/userStore.ts index 4d86ed6..ef40012 100644 --- a/src/stores/userStore.ts +++ b/src/stores/userStore.ts @@ -1,18 +1,20 @@ import { defineStore } from "pinia"; -import { ref, onMounted } from "vue"; +import { ref,reactive, onMounted } from "vue"; export const useUserStore = defineStore("user", () => { - const token = ref(""); + const token = ref(localStorage.getItem("token")||""); const isLoggedIn = ref(false); + const mobilePhone = ref(localStorage.getItem("mobilePhone")||""); - const setToken = (newToken: string) => { - token.value = newToken; + const setToken = (data:any) => { + token.value = data; isLoggedIn.value = true; const expiryTime = Date.now() + 31536000 * 1000; // 当前时间 + 1 年 - localStorage.setItem("token", newToken); + localStorage.setItem("token", data); localStorage.setItem("tokenExpiry", expiryTime.toString()); // 保存过期时间 }; const setMobilePhone = (phone: string) => { + mobilePhone.value = phone; localStorage.setItem("mobilePhone", phone); }; const removeMobilePhone=()=>{ @@ -25,6 +27,7 @@ export const useUserStore = defineStore("user", () => { try { token.value = ""; isLoggedIn.value = false; + localStorage.removeItem("userInfo"); localStorage.removeItem("token"); localStorage.removeItem("tokenExpiry"); // 删除过期时间 } catch (error) { @@ -65,6 +68,7 @@ export const useUserStore = defineStore("user", () => { return { token, isLoggedIn, + mobilePhone, setToken, clearToken, setMobilePhone, diff --git a/src/views/HeadMenu.vue b/src/views/HeadMenu.vue index 2f115ed..938378e 100644 --- a/src/views/HeadMenu.vue +++ b/src/views/HeadMenu.vue @@ -100,26 +100,18 @@ const userStore = useUserStore(); // 从 userStore 中获取登录状态 const isLoggedIn = ref(userStore.isLoggedIn); -const mobile = ref(""); const approval_status = ref(-1); +const token = ref(userStore.token); +const mobile = ref(userStore.mobilePhone); + +watch(userStore, (newVal)=>{ + token.value = newVal.token + mobile.value = newVal.mobilePhone.replace(/(^\d{3})(\d+)(\d{4})/g, "$1****$2") + isLoggedIn.value = !!token.value; +}) // 每次页面加载时检查 token onMounted(() => { - const storedToken = localStorage.getItem("token"); - const mobilePhone = localStorage.getItem("mobilePhone"); - - console.log(mobilePhone); - - if (mobilePhone) { - mobile.value = mobilePhone.replace(/(^\d{3})(\d+)(\d{4})/g, "$1****$2"); - } - - if (storedToken) { - userStore.setToken(storedToken); // 如果有 token,设置 token 并更新登录状态 - } - - isLoggedIn.value = userStore.isLoggedIn; // 更新登录状态 - getApproval_status().then((res) => { if (res.code === 0 && res.status === 200) { approval_status.value = res.data.approval_status; diff --git a/src/views/index/slider.vue b/src/views/index/slider.vue index 8f2930d..7c1777e 100644 --- a/src/views/index/slider.vue +++ b/src/views/index/slider.vue @@ -81,7 +81,7 @@