mirror of
https://github.com/vbenjs/vben-admin-thin-next.git
synced 2025-02-02 18:08:40 +08:00
feat(project-setting): added sessionTimeoutProcessing project configuration item,fix #772
This commit is contained in:
parent
b6d5b0796d
commit
0d0708409c
@ -17,6 +17,7 @@
|
||||
- **Setup** 新增引导页示例
|
||||
- **Tests** 添加 jest 测试套件,暂不支持 Vue 组件单测
|
||||
- **Axios** 新增`authenticationScheme`配置,用于指定认证方案
|
||||
- **Setting** 新增 `sessionTimeoutProcessing` 项目配置项,用于配置会话超时如何处理
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
|
@ -20,6 +20,11 @@ export enum SettingButtonPositionEnum {
|
||||
FIXED = 'fixed',
|
||||
}
|
||||
|
||||
export enum SessionTimeoutProcessingEnum {
|
||||
ROUTE_JUMP,
|
||||
PAGE_COVERAGE,
|
||||
}
|
||||
|
||||
/**
|
||||
* 权限模式
|
||||
*/
|
||||
|
@ -7,6 +7,7 @@ import {
|
||||
ThemeEnum,
|
||||
RouterTransitionEnum,
|
||||
SettingButtonPositionEnum,
|
||||
SessionTimeoutProcessingEnum,
|
||||
} from '/@/enums/appEnum';
|
||||
import { SIDE_BAR_BG_COLOR_LIST, HEADER_PRESET_BG_COLOR_LIST } from './designSetting';
|
||||
import { primaryColor } from '../../build/config/themeConfig';
|
||||
@ -28,6 +29,9 @@ const setting: ProjectConfig = {
|
||||
// Permission-related cache is stored in sessionStorage or localStorage
|
||||
permissionCacheType: CacheTypeEnum.LOCAL,
|
||||
|
||||
// Session timeout processing
|
||||
sessionTimeoutProcessing: SessionTimeoutProcessingEnum.ROUTE_JUMP,
|
||||
|
||||
// color
|
||||
themeColor: primaryColor,
|
||||
|
||||
|
@ -4,10 +4,12 @@ import { useI18n } from '/@/hooks/web/useI18n';
|
||||
// import router from '/@/router';
|
||||
// import { PageEnum } from '/@/enums/pageEnum';
|
||||
import { useUserStoreWidthOut } from '/@/store/modules/user';
|
||||
import projectSetting from '/@/settings/projectSetting';
|
||||
import { SessionTimeoutProcessingEnum } from '/@/enums/appEnum';
|
||||
|
||||
const { createMessage, createErrorModal } = useMessage();
|
||||
|
||||
const error = createMessage.error!;
|
||||
const stp = projectSetting.sessionTimeoutProcessing;
|
||||
|
||||
export function checkStatus(
|
||||
status: number,
|
||||
@ -27,8 +29,12 @@ export function checkStatus(
|
||||
// Return to the current page after successful login. This step needs to be operated on the login page.
|
||||
case 401:
|
||||
errMessage = t('sys.api.errMsg401');
|
||||
userStore.setToken(undefined);
|
||||
userStore.setSessionTimeout(true);
|
||||
if (stp === SessionTimeoutProcessingEnum.PAGE_COVERAGE) {
|
||||
userStore.setToken(undefined);
|
||||
userStore.setSessionTimeout(true);
|
||||
} else {
|
||||
userStore.logout(true);
|
||||
}
|
||||
break;
|
||||
case 403:
|
||||
errMessage = t('sys.api.errMsg403');
|
||||
|
3
types/config.d.ts
vendored
3
types/config.d.ts
vendored
@ -5,6 +5,7 @@ import {
|
||||
ThemeEnum,
|
||||
RouterTransitionEnum,
|
||||
SettingButtonPositionEnum,
|
||||
SessionTimeoutProcessingEnum,
|
||||
} from '/@/enums/appEnum';
|
||||
|
||||
import { CacheTypeEnum } from '/@/enums/cacheEnum';
|
||||
@ -89,6 +90,8 @@ export interface ProjectConfig {
|
||||
settingButtonPosition: SettingButtonPositionEnum;
|
||||
// Permission mode
|
||||
permissionMode: PermissionModeEnum;
|
||||
// Session timeout processing
|
||||
sessionTimeoutProcessing: SessionTimeoutProcessingEnum;
|
||||
// Website gray mode, open for possible mourning dates
|
||||
grayMode: boolean;
|
||||
// Whether to turn on the color weak mode
|
||||
|
Loading…
Reference in New Issue
Block a user