axios.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import AxiosError from 'axios/lib/core/AxiosError';
  2. export default function ({ $axios, $auth, $userAgent, query, redirect }) {
  3. // $axios.defaults.dataKey = 'data';
  4. $axios.onRequest((config) => {
  5. if ($userAgent.isSzx && $userAgent.isAndroid) {
  6. config.headers.client = 1;
  7. } else if ($userAgent.isSzx && $userAgent.isIos) {
  8. config.headers.client = 2;
  9. } else if ($userAgent.isMiniProgram) {
  10. config.headers.client = 5;
  11. } else if (query.type === 'pc') {
  12. config.headers.client = 3;
  13. } else {
  14. config.headers.client = 7;
  15. }
  16. config.headers.versionname = '5.9.2';
  17. return config;
  18. });
  19. $axios.onResponse(async (response) => {
  20. // console.log("🚀 ~ file: axios.js ~ line 11 ~ $axios.onResponse ~ response", response)
  21. if (Object.prototype.toString.call(response.data) === '[object Object]') {
  22. if ([6013, 6014].includes(response.data.status)) {
  23. // await $auth.logout();
  24. await $auth.reset();
  25. // await $auth.setUserToken(null);
  26. }
  27. if (response.data.status !== 0 && !response.data.repCode) {
  28. // const err = new Error(
  29. // response.data.msg || response.data.data || '未知错误',
  30. // );
  31. // Object.assign(err, response);
  32. // return Promise.reject(err);
  33. // if (response.data.status === 502) {
  34. // }
  35. throw new AxiosError(
  36. response.data.msg || response.data.data || '未知错误',
  37. null,
  38. response.config,
  39. response.request,
  40. response,
  41. );
  42. }
  43. }
  44. // else if (response.config.dataKey) {
  45. // response.data = response.data[response.config.dataKey];
  46. // return response;
  47. // }
  48. return response;
  49. });
  50. // $axios.onError((error) => {
  51. // const code = parseInt(error.response && error.response.status);
  52. // if (code === 400) {
  53. // redirect('/400');
  54. // }
  55. // });
  56. // globalThis.$axios = $axios;
  57. }