request.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import axios, { AxiosInstance } from "axios";
  2. import { layer } from "@layui/layui-vue";
  3. const BASEURL = import.meta.env.VITE_API_BASE_URL;
  4. const checkStatus = (response: any) => {
  5. if (response.status >= 200 && response.status < 300) {
  6. if (response.data.code === 200 || !response.data.code) {
  7. return response.data;
  8. } else {
  9. layer.msg(`${response.data.msg}`, { time: 1000, icon: 2 });
  10. return response.data;
  11. }
  12. }
  13. };
  14. class HttpRequest {
  15. // 请求拦截
  16. interceptors(instance: AxiosInstance) {
  17. instance.interceptors.request.use(
  18. (config) => {
  19. console.log(config);
  20. // 添加全局的loading..
  21. // 请求头携带token
  22. return config;
  23. },
  24. (error: any) => {
  25. return Promise.reject(error);
  26. }
  27. );
  28. //响应拦截
  29. instance.interceptors.response.use(
  30. (res) => {
  31. //返回数据
  32. const { data } = res;
  33. console.log("返回数据处理", res);
  34. return data;
  35. },
  36. (error: any) => {
  37. console.log("error==>", error);
  38. return Promise.reject(error);
  39. }
  40. );
  41. }
  42. request(url: string, method: string, data: any, responseType?: any) {
  43. // const token = window.sessionStorage.getItem("_4L_TOKEN") || "";
  44. switch (method) {
  45. case "get":
  46. data = { params: data };
  47. break;
  48. default:
  49. data = { data };
  50. }
  51. const instance = axios.create({
  52. headers: {
  53. Accept: "application/json",
  54. "Content-Type": "application/json;charset=UTF-8",
  55. auth: "43626546liangjiang",
  56. },
  57. timeout: 50000,
  58. baseURL: BASEURL,
  59. responseType: responseType,
  60. });
  61. return instance({ url, method, ...data })
  62. .then(checkStatus)
  63. .then((data) => data)
  64. .catch((err) => {
  65. console.log(err);
  66. });
  67. }
  68. }
  69. const http = new HttpRequest();
  70. export default http;