import axios from "axios";
import { Toast } from "vant";

let loading = null;

const service = axios.create({
  baseURL: "/shop-mall",
  timeout: 5000
});

service.interceptors.request.use(
  config => {
    const token = localStorage.getItem("token");
    config.headers["token"] = token;
    if (!config.loading) {
      loading = Toast.loading({
        forbidClick: true,
        message: "加载中..."
      });
    }
    return config;
  },
  error => {
    if (loading) Toast.clear();
    this.$toast.fail(error.response.data.error);
  }
);

service.interceptors.response.use(
  response => {
    if (loading) Toast.clear();
    const res = response.data;
    return res;
  },
  error => {
    if (loading) Toast.clear();
    return Promise.reject(error);
  }
);

export default service;