From d6d7dadab7a15641715dc9ce1060dae3013abddf Mon Sep 17 00:00:00 2001 From: Hooray Hu <304327508@qq.com> Date: Tue, 25 Apr 2023 00:37:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=BB=E9=A1=B5?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=BC=95=E5=85=A5=E8=AF=B7=E6=B1=82=20api=20?= =?UTF-8?q?=E5=B9=B6=E4=BD=BF=E7=94=A8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/index.ts | 14 +------------- src/layouts/components/Tools/index.vue | 6 +----- src/store/modules/user.ts | 9 ++++++++- src/views/personal/edit.password.vue | 9 +-------- 4 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/api/index.ts b/src/api/index.ts index aef2637b..66528a9b 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -2,20 +2,8 @@ import axios from 'axios' // import qs from 'qs' import { ElMessage } from 'element-plus' -import router from '@/router/index' import useUserStore from '@/store/modules/user' -function toLogin() { - useUserStore().logout().then(() => { - router.push({ - path: '/login', - query: { - redirect: router.currentRoute.value.path !== '/login' ? router.currentRoute.value.fullPath : undefined, - }, - }) - }) -} - const api = axios.create({ baseURL: (import.meta.env.DEV && import.meta.env.VITE_OPEN_PROXY === 'true') ? '/proxy/' : import.meta.env.VITE_APP_API_BASEURL, timeout: 1000 * 60, @@ -58,7 +46,7 @@ api.interceptors.response.use( } } else { - toLogin() + useUserStore().logout() } return Promise.resolve(response.data) }, diff --git a/src/layouts/components/Tools/index.vue b/src/layouts/components/Tools/index.vue index 4ba45874..6a182df0 100644 --- a/src/layouts/components/Tools/index.vue +++ b/src/layouts/components/Tools/index.vue @@ -28,11 +28,7 @@ function userCommand(command: 'home' | 'setting' | 'hotkeys' | 'logout') { eventBus.emit('global-hotkeys-intro-toggle') break case 'logout': - userStore.logout().then(() => { - router.push({ - name: 'login', - }) - }) + userStore.logout() break } } diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index 4090d389..7615c34f 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -1,5 +1,6 @@ import useRouteStore from './route' import useMenuStore from './menu' +import router from '@/router' import apiUser from '@/api/modules/user' const useUserStore = defineStore( @@ -38,7 +39,7 @@ const useUserStore = defineStore( failure_time.value = res.data.failure_time } // 登出 - async function logout() { + async function logout(redirect = router.currentRoute.value.fullPath) { localStorage.removeItem('account') localStorage.removeItem('token') localStorage.removeItem('failure_time') @@ -47,6 +48,12 @@ const useUserStore = defineStore( failure_time.value = '' routeStore.removeRoutes() menuStore.setActived(0) + router.push({ + name: 'login', + query: { + ...(router.currentRoute.value.path !== '/' && router.currentRoute.value.name !== 'login' && { redirect }), + }, + }) } // 获取我的权限 async function getPermissions() { diff --git a/src/views/personal/edit.password.vue b/src/views/personal/edit.password.vue index 2b6e9973..71e48edc 100644 --- a/src/views/personal/edit.password.vue +++ b/src/views/personal/edit.password.vue @@ -52,14 +52,7 @@ function onSubmit() { type: 'success', message: '模拟修改成功,请重新登录', }) - userStore.logout().then(() => { - router.push({ - name: 'login', - query: { - redirect: route.fullPath, - }, - }) - }) + userStore.logout() }) } })