Files
cashier-web/src/utils/request-import-php.js

132 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import axios from "axios";
import router from "@/router";
import { getDouyinToken, getToken } from "@/utils/auth";
// 创建axios实例
const service = axios.create({
baseURL: import.meta.env.VITE_APP_API_PHP_IMPORT_URL, // api 的 base_url
// baseURL: "/import_api", // api 的 base_url
timeout: 1000 * 20, // 请求超时时间
});
// request拦截器
service.interceptors.request.use(
(config) => {
if (getToken()) {
config.headers["token"] = getToken();
}
if (!config.headers["Content-Type"]) {
config.headers["Content-Type"] = "application/json";
}
return config;
},
(error) => {
// 确保错误回调返回Promise避免状态异常
return Promise.reject(error);
}
);
// response 拦截器
service.interceptors.response.use(
(response) => {
const data = response.data;
console.log(data);
if (data.code == 0) {
ElNotification.error({
title: data.msg,
duration: 5000,
});
return;
}
if (data.code == 439 || data.code == 303) {
ElNotification.error({
title: "请登录",
duration: 5000,
});
return;
}
if (data.code == 4399) {
ElNotification.error({
title: data.msg,
duration: 5000,
});
return data;
}
// if (data.code == 1 && !data.data) {
// ElNotification.success({
// title: data.msg,
// duration: 5000
// })
// return true;
// }
return data.data;
},
(error) => {
console.log(error);
if (axios.isCancel(error)) {
console.log("请求已取消");
ElNotification.error({
title: "请求已取消",
duration: 5000,
});
return Promise.reject("请求已取消");
}
// 兼容blob下载出错json提示
if (
error.response.data instanceof Blob &&
error.response.data.type.toLowerCase().indexOf("json") !== -1
) {
const reader = new FileReader();
reader.readAsText(error.response.data, "utf-8");
reader.onload = function (e) {
const errorMsg = JSON.parse(reader.result).message;
ElNotification.error({
title: errorMsg,
duration: 5000,
});
};
} else {
let code = 0;
try {
code = error.response.data.status;
} catch (e) {
if (error.toString().indexOf("Error: timeout") !== -1) {
ElNotification.error({
title: "网络请求超时",
duration: 5000,
});
return Promise.reject(error);
}
}
console.log(code);
if (code) {
if (code === 401) {
// store.dispatch("LogOut").then(() => {
// // 用户登录界面提示
// Cookies.set("point", 401);
// location.reload();
// });
} else if (code === 403) {
router.push({ path: "/401" });
} else {
const errorMsg = error.response.data.message;
if (errorMsg !== undefined) {
ElNotification.error({
title: errorMsg,
duration: 5000,
});
}
}
} else {
ElNotification.error({
title: "接口请求失败",
duration: 5000,
});
}
}
return Promise.reject(error);
}
);
export default service;