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 29 * @description: getUserInfo
30 30 */
31 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 35 export function getPermCode() {
... ...
src/store/modules/user.ts
... ... @@ -15,6 +15,7 @@ import { usePermissionStore } from &#39;/@/store/modules/permission&#39;;
15 15 import { RouteRecordRaw } from 'vue-router';
16 16 import { PAGE_NOT_FOUND_ROUTE } from '/@/router/routes/basic';
17 17 import { isArray } from '/@/utils/is';
  18 +import { h } from 'vue';
18 19  
19 20 interface UserState {
20 21 userInfo: Nullable<UserInfo>;
... ... @@ -64,7 +65,7 @@ export const useUserStore = defineStore({
64 65 this.roleList = roleList;
65 66 setAuthCache(ROLES_KEY, roleList);
66 67 },
67   - setUserInfo(info: UserInfo) {
  68 + setUserInfo(info: UserInfo | null) {
68 69 this.userInfo = info;
69 70 this.lastUpdateTime = new Date().getTime();
70 71 setAuthCache(USER_INFO_KEY, info);
... ... @@ -117,11 +118,12 @@ export const useUserStore = defineStore({
117 118 router.addRoute(PAGE_NOT_FOUND_ROUTE as unknown as RouteRecordRaw);
118 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 123 return userInfo;
123 124 },
124   - async getUserInfoAction(): Promise<UserInfo> {
  125 + async getUserInfoAction(): Promise<UserInfo | null> {
  126 + if (!this.getToken) return null;
125 127 const userInfo = await getUserInfo();
126 128 const { roles = [] } = userInfo;
127 129 if (isArray(roles)) {
... ... @@ -138,7 +140,7 @@ export const useUserStore = defineStore({
138 140 * @description: logout
139 141 */
140 142 async logout(goLogin = false) {
141   - if (this.token) {
  143 + if (this.getToken) {
142 144 try {
143 145 await doLogout();
144 146 } catch {
... ... @@ -147,6 +149,7 @@ export const useUserStore = defineStore({
147 149 }
148 150 this.setToken(undefined);
149 151 this.setSessionTimeout(false);
  152 + this.setUserInfo(null);
150 153 goLogin && router.push(PageEnum.BASE_LOGIN);
151 154 },
152 155  
... ... @@ -158,8 +161,8 @@ export const useUserStore = defineStore({
158 161 const { t } = useI18n();
159 162 createConfirm({
160 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 166 onOk: async () => {
164 167 await this.logout(true);
165 168 },
... ...