text: import axios from 'axios';
  import qs from 'qs';
  
  import { BASE_URL, TIMEOUT } from './config';
  import { showLoading, hideLoading } from '@/common/util/loadings';
  
  const instance = axios.create({
    baseURL: BASE_URL,
    timeout: TIMEOUT,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
  });
  
  instance.interceptors.request.use(
    (config) => {
      // 1. 发送网络请求时, 在界面的中间位置显示Loading的组件
      showLoading();
  
      // 2. 某一些请求要求用户必须携带token, 如果没有携带, 那么直接跳转到登录页面
  
      // 3. params/data序列化的操作
      return config;
    },
    (err) => {}
  );
  
  instance.interceptors.request.use(
    (config) => {
      if (
        config.headers['Content-Type'] === 'application/x-www-form-urlencoded'
      ) {
        config.data = qs.stringify(config.data);
      }
      return config;
    },
    (error) => Promise.error(error)
  );
  
  instance.interceptors.response.use(
    (res) => {
      hideLoading();
      return res.data;
    },
    (err) => {
      hideLoading();
      if (err instanceof Error) {
        console.log(err);
      } else if (err && err.response) {
        switch (err.response.status) {
          case 400:
            console.log('请求错误');
            break;
          case 401:
            console.log('未授权访问');
            break;
          default:
            console.log('其他错误信息');
        }
      }
      return {
        data: [],
      };
    }
  );
  
  const batch = (requests, callback) => {
    axios.all(requests).then(axios.spread(callback));
  };
  
  export { instance, batch };
  