Commit b3307fe2836fb6f9806d602d5bdb7e540c49f1b0

Authored by 无木
1 parent 73dc492b

fix: warning in logout action

修复退出登录相关代码中的警告
src/api/sys/user.ts
@@ -29,7 +29,7 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') @@ -29,7 +29,7 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal')
29 * @description: getUserInfo 29 * @description: getUserInfo
30 */ 30 */
31 export function getUserInfo() { 31 export function getUserInfo() {
32 - return defHttp.get<GetUserInfoModel>({ url: Api.GetUserInfo }); 32 + return defHttp.get<GetUserInfoModel>({ url: Api.GetUserInfo }, { errorMessageMode: 'none' });
33 } 33 }
34 34
35 export function getPermCode() { 35 export function getPermCode() {
src/store/modules/user.ts
@@ -15,6 +15,7 @@ import { usePermissionStore } from &#39;/@/store/modules/permission&#39;; @@ -15,6 +15,7 @@ import { usePermissionStore } from &#39;/@/store/modules/permission&#39;;
15 import { RouteRecordRaw } from 'vue-router'; 15 import { RouteRecordRaw } from 'vue-router';
16 import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic'; 16 import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
17 import { isArray } from '/@/utils/is'; 17 import { isArray } from '/@/utils/is';
  18 +import { h } from 'vue';
18 19
19 interface UserState { 20 interface UserState {
20 userInfo: Nullable<UserInfo>; 21 userInfo: Nullable<UserInfo>;
@@ -64,7 +65,7 @@ export const useUserStore = defineStore({ @@ -64,7 +65,7 @@ export const useUserStore = defineStore({
64 this.roleList = roleList; 65 this.roleList = roleList;
65 setAuthCache(ROLES_KEY, roleList); 66 setAuthCache(ROLES_KEY, roleList);
66 }, 67 },
67 - setUserInfo(info: UserInfo) { 68 + setUserInfo(info: UserInfo | null) {
68 this.userInfo = info; 69 this.userInfo = info;
69 this.lastUpdateTime = new Date().getTime(); 70 this.lastUpdateTime = new Date().getTime();
70 setAuthCache(USER_INFO_KEY, info); 71 setAuthCache(USER_INFO_KEY, info);
@@ -117,11 +118,12 @@ export const useUserStore = defineStore({ @@ -117,11 +118,12 @@ export const useUserStore = defineStore({
117 router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw); 118 router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
118 permissionStore.setDynamicAddedRoute(true); 119 permissionStore.setDynamicAddedRoute(true);
119 } 120 }
120 - goHome && (await router.replace(userInfo.homePath || PageEnum.BASE_HOME)); 121 + goHome && (await router.replace(userInfo?.homePath || PageEnum.BASE_HOME));
121 } 122 }
122 return userInfo; 123 return userInfo;
123 }, 124 },
124 - async getUserInfoAction(): Promise<UserInfo> { 125 + async getUserInfoAction(): Promise<UserInfo | null> {
  126 + if (!this.getToken) return null;
125 const userInfo = await getUserInfo(); 127 const userInfo = await getUserInfo();
126 const { roles = [] } = userInfo; 128 const { roles = [] } = userInfo;
127 if (isArray(roles)) { 129 if (isArray(roles)) {
@@ -138,7 +140,7 @@ export const useUserStore = defineStore({ @@ -138,7 +140,7 @@ export const useUserStore = defineStore({
138 * @description: logout 140 * @description: logout
139 */ 141 */
140 async logout(goLogin = false) { 142 async logout(goLogin = false) {
141 - if (this.token) { 143 + if (this.getToken) {
142 try { 144 try {
143 await doLogout(); 145 await doLogout();
144 } catch { 146 } catch {
@@ -147,6 +149,7 @@ export const useUserStore = defineStore({ @@ -147,6 +149,7 @@ export const useUserStore = defineStore({
147 } 149 }
148 this.setToken(undefined); 150 this.setToken(undefined);
149 this.setSessionTimeout(false); 151 this.setSessionTimeout(false);
  152 + this.setUserInfo(null);
150 goLogin && router.push(PageEnum.BASE_LOGIN); 153 goLogin && router.push(PageEnum.BASE_LOGIN);
151 }, 154 },
152 155
@@ -158,8 +161,8 @@ export const useUserStore = defineStore({ @@ -158,8 +161,8 @@ export const useUserStore = defineStore({
158 const { t } = useI18n(); 161 const { t } = useI18n();
159 createConfirm({ 162 createConfirm({
160 iconType: 'warning', 163 iconType: 'warning',
161 - title: t('sys.app.logoutTip'),  
162 - content: t('sys.app.logoutMessage'), 164 + title: () => h('span', t('sys.app.logoutTip')),
  165 + content: () => h('span', t('sys.app.logoutMessage')),
163 onOk: async () => { 166 onOk: async () => {
164 await this.logout(true); 167 await this.logout(true);
165 }, 168 },