登录页开发,控制台页面开发,页面跳转逻辑调整

This commit is contained in:
sswiki
2024-12-24 22:50:32 +08:00
parent e9f1c3b5cf
commit 91bad1a059
24 changed files with 1020 additions and 111 deletions

View File

@@ -1,4 +1,5 @@
import axios from 'axios';
import router from '@/routes.js'
import {ElMessageBox, ElMessage} from 'element-plus';
const service = axios.create({
@@ -24,7 +25,6 @@ service.interceptors.request.use((config) => {
return Promise.reject(error);
}
);
let lastToastLoginTime = new Date().getTime();
service.interceptors.response.use(
(response) => {
if (!!response.message) {
@@ -33,13 +33,9 @@ service.interceptors.response.use(
if (!response.config.needValidateResult || response.data.errCode === 200) {
return response.data;
} else if (response.data.errCode === 400) {
// 两秒钟只提示一次
if (new Date().getTime() - lastToastLoginTime > 2000) {
ElMessage.warning('请先登录');
lastToastLoginTime = new Date().getTime();
}
let href = encodeURIComponent(window.location.href);
window.location = import.meta.env.VITE_APP_BASE_API + '#/user/login?redirect=' + href;
let redirectUrl = getRedirectUrl();
router.push({path: `/user/login`, query: {redirect: redirectUrl}});
return Promise.reject(response.data);
} else if (response.data.errCode !== 200) {
ElMessage.error(response.data.errMsg || '未知错误');
}
@@ -51,4 +47,16 @@ service.interceptors.response.use(
return Promise.reject(error);
}
);
function getRedirectUrl() {
let redirectUrl = '';
let locationHref = window.location.href;
if (locationHref.indexOf('?') >= 0) {
let reg = new RegExp('(^|&)redirect=([^&]*)(&|$)', 'i');
let r = locationHref.substring(locationHref.indexOf('?') + 1).match(reg);
if (r != null) {
redirectUrl = unescape(r[2]);
}
}
return redirectUrl || encodeURIComponent(window.location.href);
}
export default service