import axios from "axios";
// import { Toast } from 'mint-ui'
import { Toast } from "vant";
const https = require('https');


import context from '../../src/main.js'

const agent = new https.Agent({
  rejectUnauthorized: false  // 忽略证书验证
});

// create an axios instance
const service = axios.create({
  baseURL: process.env.BASE_API, // api的base_url
  timeout: 30000, // request timeout
  withCredentials: true,
  httpsAgent: agent,
});

var self = this;
// respone interceptor




service.interceptors.response.use(
  // response => response,
  response => {
    const res = response.data;
    if (res.state !== 1) {
      if (res.code === 20049) {
        // this.$router.replace("/")
        // this.$router.replace({ path: "/" });
        // window.location.href=window.location.href+
        // window.location.href = location.href+'?time='+((new Date()).getTime());
        // this.$router.go(0)
        // this.refresh()

        Toast("退出登录");
        context.$router.replace({ path: "/" })

        return
      } else if (res.code === 20035){
        Toast("你已经被管理员禁用,无法使用该系统");
        context.$router.replace({ path: "/" })
        return
      }else if(res.code === 6001){
        Toast("登录超时");
        context.$router.replace({ path: "/" })
        return
      }else if(res.code === 6002){
        Toast("登录信息丢失,正在刷新页面");
        context.$router.replace({ path: "/" })
        return

      }else {
        return response;
      }
    } else {
      return response;
    }
  },
  error => {
    if (error.message.includes("timeout")) {
      // 判断请求异常信息中是否含有超时timeout字符串
      return Promise.reject(error); // reject这个错误信息
    }
    return Promise.reject(error);
  }
);

// service.interceptors.request.use(
//   config => {
//     // 登录流程控制中，根据本地是否存在token判断用户的登录情况
//     // 但是即使token存在，也有可能token是过期的，所以在每次的请求头中携带token
//     // 后台根据携带的token判断用户的登录情况，并返回给我们对应的状态码
//     // 而后我们可以在响应拦截器中，根据状态码进行一些统一的操作。
//     let token = localStorage.getItem('token');
//     console.log("token=")
//     console.log(token)
//     token && (config.headers['KyToken'] = token);
//     return config
//   }
// );
export default service;
