axios.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import axios from 'axios';
  2. import { getToken } from '@/utils/storage/sessionToken';
  3. import { TOKEN } from '@/constant';
  4. import { createDiscreteApi } from 'naive-ui';
  5. import router from '../router';
  6. const { message, loadingBar } = createDiscreteApi(['message', 'loadingBar']);
  7. // 显示错误消息
  8. const showError = (res) => {
  9. if (res.Code === 201) {
  10. message.error('登录过期,请重新登录');
  11. window.sessionStorage.clear();
  12. router.replace('/login');
  13. } else if (res.Code !== 200 && res.Code !== 600 && res.Code !== 601) {
  14. message.error(res.Msg);
  15. }
  16. };
  17. const service = axios.create({
  18. timeout: 1000 * 60 * 8,
  19. });
  20. // 添加请求拦截器
  21. service.interceptors.request.use(
  22. function (config) {
  23. // 在发送请求之前做些什么
  24. loadingBar.start();
  25. const token = getToken();
  26. if (config.url !== '/VerifyTemplateMapData/Pu') {
  27. const formData = new FormData();
  28. if (
  29. config.url !== '/Login_Admin_verification' &&
  30. config.url !== '/Login_verification'
  31. ) {
  32. formData.append(TOKEN, token);
  33. }
  34. Object.entries(config.data).forEach(([key, value]) => {
  35. if (value === null || value === undefined) {
  36. formData.append(key, '');
  37. } else {
  38. formData.append(key, value);
  39. }
  40. });
  41. config.data = formData;
  42. } else {
  43. // config.headers[TOKEN] = token;
  44. }
  45. return config;
  46. },
  47. function (error) {
  48. // 对请求错误做些什么
  49. return Promise.reject(error);
  50. }
  51. );
  52. // 添加响应拦截器
  53. service.interceptors.response.use(
  54. function (response) {
  55. // 2xx 范围内的状态码都会触发该函数。
  56. // 对响应数据做点什么
  57. const { data: res } = response;
  58. showError(res);
  59. loadingBar.finish();
  60. return response;
  61. },
  62. function (error) {
  63. // 超出 2xx 范围的状态码都会触发该函数。
  64. // 对响应错误做点什么
  65. loadingBar.finish();
  66. return Promise.reject(error);
  67. }
  68. );
  69. export default service;