1
0
Code Issues Pull Requests Packages Projects Releases Wiki Activity GitHub Gitee

后台管理 登陆权限问题解决

This commit is contained in:
2023-03-28 14:01:13 +08:00
parent 614e04ed1b
commit 880e4f8941
13 changed files with 498 additions and 386 deletions

View File

@@ -1,52 +1,67 @@
import request from './request';
import settings from './settings';
async function send_request(url, method = "POST", params, callback) {
if (!url) {
return false;
}
let returnData = await request({
baseURL: settings.backendHost,
url: url,
method: method,
withCredentials: true,
// POST 请求参数
data: method.toUpperCase() == "POST" ? params : null,
// GET 请求参数
params: method.toUpperCase() == "GET" ? params : null,
}).then((response) => {
let result = response.data;
// 判断后端是否处理成功
if (!result.isSuccess) {
// 用户未登录情况
if (result.data && result.data.errCode == 20003) {
ElMessage.error(result?.data?.errMsg || "用户未登录");
localStorage.clear();
// window.location.reload();
// 如果同时发出多个请求可能会多次进来第二次及之后进入时hash已经变成 #/login 了
if (!window.location.hash.includes("/login")) {
let newUrl = '/#/login?redirectTo=' + encodeURIComponent(window.location.hash.substring(1).split('?')[0])
console.log("newUrl", newUrl)
window.location.href = newUrl;
}
} else {
ElMessage.error(result?.data?.errMsg || "服务器错误");
}
return false;
}
let data = result.data;
if (typeof (callback) === "function") {
callback(data);
}
return true;
}).catch((err) => {
console.error(err);
ElMessage.error(err.message);
// ElMessage.error('请求超时,请检查网络连接');
return false;
})
return returnData;
}
export default send_request;
import request from './request';
import settings from './settings';
import { ElMessage, ElLoading } from 'element-plus';
import qs from 'qs';
async function send_request({ url, method = "POST", params, useQS = false, callback }) {
if (!url) {
return false;
}
const loading = ElLoading.service({
lock: true,
text: '请稍候',
background: 'rgba(0, 0, 0, 0.7)',
});
let opt = {
baseURL: settings.backendHost,
url: url,
method: method,
withCredentials: true,
}
if (method.toUpperCase() == "POST") {
// POST 请求参数
opt.headers = { 'content-type': 'application/x-www-form-urlencoded' }
opt.data = useQS ? qs.stringify(params) : params
} else if (method.toUpperCase() == "GET") {
// GET 请求参数
opt.params = params
}
return request(opt).then((response) => {
let result = response.data;
// 判断后端是否处理成功
if (!result.success) {
// 用户未登录情况
// if (result.data && result.data.errCode == 20003) {
// ElMessage.error(result?.data?.msg || "用户未登录");
// localStorage.clear();
// // window.location.reload();
// // 如果同时发出多个请求可能会多次进来第二次及之后进入时hash已经变成 #/login 了
// if (!window.location.hash.includes("/login")) {
// let newUrl = '/#/login?redirectTo=' + encodeURIComponent(window.location.hash.substring(1).split('?')[0])
// console.log("newUrl", newUrl)
// window.location.href = newUrl;
// }
// } else {
ElMessage.error(result?.data?.msg || "服务器错误");
// }
return null;
}
let data = result.data;
if (typeof (callback) === "function") {
callback(data);
}
return data;
}).catch((err) => {
console.error(err);
ElMessage.error(err.message);
return false;
}).finally(() => {
loading.close();
})
}
export default send_request;