Browse Source

解决token失效时个人信息未清除完全问题

dev
congzc 2 years ago
parent
commit
a7fabf8cb0
4 changed files with 19 additions and 10 deletions
  1. +5
    -1
      src/layout/components/Navbar.vue
  2. +8
    -6
      src/store/modules/userInfo.js
  3. +0
    -1
      src/types/components.d.ts
  4. +6
    -2
      src/utils/request.js

+ 5
- 1
src/layout/components/Navbar.vue View File

@@ -16,7 +16,11 @@
<!--语言选择-->
<lang-select class="navItem" style="color: #ffffff" />

<div class="avatar" v-if="userInfoPinia.userInfo" @click="routerTo">
<div
class="avatar"
v-if="userInfoPinia.userInfo.avatarUrl"
@click="routerTo"
>
<img
:src="
userInfoPinia.userInfo.avatarUrl


+ 8
- 6
src/store/modules/userInfo.js View File

@@ -5,10 +5,10 @@ import {
} from "../../apis/myAccount";
export const userInfoModules = defineStore("userInfo", () => {
// state
const userInfo = ref(null)
function setEmail(params) {
email.value = params
}
const userInfo = ref({
avatarUrl: null
})
// 登录获取用户信息
async function getUserInfo() {
const res = await getUserInfoApi()
@@ -16,9 +16,11 @@ export const userInfoModules = defineStore("userInfo", () => {
}
// 退出清除用户信息
function loginOut(params) {
userInfo.value = null
userInfo.value = {
avatarUrl: null
}
}
return { userInfo, setEmail, getUserInfo, loginOut };
return { userInfo, getUserInfo, loginOut };
},
{
persist: true,

+ 0
- 1
src/types/components.d.ts View File

@@ -8,7 +8,6 @@ export {}
declare module '@vue/runtime-core' {
export interface GlobalComponents {
Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default']
copy: typeof import('./../components/myLoading copy.vue')['default']
ElAlert: typeof import('element-plus/es')['ElAlert']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']


+ 6
- 2
src/utils/request.js View File

@@ -1,12 +1,16 @@
import axios from 'axios'
import router from '@/router/index'
import { ElMessage } from 'element-plus'
ElMessage

// ElMessage
import { userInfoModules } from "@/store/modules/userInfo";
// import stores from '@/store/index'
import { store } from '@/store/index'; // 因为不是在setup环境而是js中,必须重新初始化加载store
const userInfoPinia = userInfoModules(store); //pinia
// 开发环境需以 "/api" 拼接,其他环境需以 "/C" 拼接
const env = process.env.NODE_ENV == 'development' ? "/api" : "/C"
// console.log(process.env.NODE_ENV, 'env')


/**
* @description:发送Axios请求
*/


Loading…
Cancel
Save