// api/request.js  
import axios from 'axios';
import { Toast } from 'vant';
// 创建请求实例  
let quqe = 0;
let $toast;
const instance = axios.create({
  // baseURL: 'http://47.101.145.23/tianzong', // 设置接口基础路径  
  // baseURL: process.env.VUE_APP_BASE_API, // 设置接口基础路径  
  timeout: 50000 // 设置请求超时时间  
});

// 设置请求拦截器  
instance.interceptors.request.use(
  config => {
    if (config.emulateJSON) {
      config.headers["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8"
    }
    if (quqe === 0 && config.loading) {
      $toast = Toast.loading({
        message: config.message ? config.message : '加载中...',
        forbidClick: true,
        duration: 0
      })
      quqe++;
    } else if (config.loading && $toast) {
      $toast.message = config.message ? config.message : '加载中...';
    }
    // 在请求发送前进行一些操作，如设置请求头、处理请求参数等  
    return config;
  },
  error => {
    // 对请求错误进行处理  
    return Promise.reject(error);
  }
);

// 设置响应拦截器  
instance.interceptors.response.use(
  response => {
    if (quqe > 0) {
      quqe = quqe - 1;
      if (quqe === 0 && $toast) {
        $toast.clear()
        $toast = null
      }
    }
    // 对接口返回的数据进行处理，如统一处理错误码、格式化数据等  
    return response.data;
  },
  error => {
    // 对响应错误进行处理  
    return Promise.reject(error);
  }
);

export default instance;
