diff --git a/src/router/index.ts b/src/router/index.ts index 55e86fa7..c8801941 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -114,7 +114,6 @@ const router = createRouter({ */ export function resetRouter() { router.replace({ path: "/login" }); - location.reload(); } export default router; diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 9e39254a..72d806d5 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -1,20 +1,20 @@ -import { defineStore } from 'pinia'; +import { defineStore } from "pinia"; -import { loginApi, logoutApi } from '@/api/auth'; -import { getUserInfo } from '@/api/user'; -import { resetRouter } from '@/router'; -import { store } from '@/store'; +import { loginApi, logoutApi } from "@/api/auth"; +import { getUserInfo } from "@/api/user"; +import { resetRouter } from "@/router"; +import { store } from "@/store"; -import { LoginData } from '@/api/auth/types'; -import { UserInfo } from '@/api/user/types'; +import { LoginData } from "@/api/auth/types"; +import { UserInfo } from "@/api/user/types"; -import { useStorage } from '@vueuse/core'; +import { useStorage } from "@vueuse/core"; -export const useUserStore = defineStore('user', () => { +export const useUserStore = defineStore("user", () => { // state - const token = useStorage('accessToken', ''); - const nickname = ref(''); - const avatar = ref(''); + const token = useStorage("accessToken", ""); + const nickname = ref(""); + const avatar = ref(""); const roles = ref>([]); // 用户角色编码集合 → 判断路由权限 const perms = ref>([]); // 用户权限编码集合 → 判断按钮权限 @@ -27,12 +27,12 @@ export const useUserStore = defineStore('user', () => { function login(loginData: LoginData) { return new Promise((resolve, reject) => { loginApi(loginData) - .then(response => { + .then((response) => { const { tokenType, accessToken } = response.data; - token.value = tokenType + ' ' + accessToken; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx + token.value = tokenType + " " + accessToken; // Bearer eyJhbGciOiJIUzI1NiJ9.xxx.xxx resolve(); }) - .catch(error => { + .catch((error) => { reject(error); }); }); @@ -44,10 +44,10 @@ export const useUserStore = defineStore('user', () => { getUserInfo() .then(({ data }) => { if (!data) { - return reject('Verification failed, please Login again.'); + return reject("Verification failed, please Login again."); } if (!data.roles || data.roles.length <= 0) { - reject('getUserInfo: roles must be a non-null array!'); + reject("getUserInfo: roles must be a non-null array!"); } nickname.value = data.nickname; avatar.value = data.avatar; @@ -55,7 +55,7 @@ export const useUserStore = defineStore('user', () => { perms.value = data.perms; resolve(data); }) - .catch(error => { + .catch((error) => { reject(error); }); }); @@ -68,9 +68,10 @@ export const useUserStore = defineStore('user', () => { .then(() => { resetRouter(); resetToken(); + location.reload(); // 清空路由 resolve(); }) - .catch(error => { + .catch((error) => { reject(error); }); }); @@ -78,9 +79,9 @@ export const useUserStore = defineStore('user', () => { // 重置 function resetToken() { - token.value = ''; - nickname.value = ''; - avatar.value = ''; + token.value = ""; + nickname.value = ""; + avatar.value = ""; roles.value = []; perms.value = []; } @@ -93,7 +94,7 @@ export const useUserStore = defineStore('user', () => { login, getInfo, logout, - resetToken + resetToken, }; });