text: import axios from 'axios'
  import { MessageBox, Message } from 'element-ui'
  import store from '@/store'
  import { getToken, setToken } from '@/utils/auth'
  import router from '../router'
  // 创建一个axios实例
  const service = axios.create({
    baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
    withCredentials: true, // 当跨域请求时发送cookie
    timeout: 50000, // request timeout
    // headers: {'Access-Control-Allow-Origin': '*'}
  })
  
  // 请求拦截器
  service.interceptors.request.use(
    config => {
      // 在发送请求之前做些什么
      if (store.getters.token) {
        // 让每个请求携带令牌
        // ['X-Token']是一个自定义头键
        // 请根据实际情况修改
        // console.log('token====',store.getters.token)
        // config.headers['X-Token'] = getToken()
      }
      // console.log(config, '请求拦截器/////')
      return config
    },
    error => {
      // 处理请求错误
      console.log(error) // for debug
      return Promise.reject(error)
    }
  )
  
  // 响应拦截器
  service.interceptors.response.use(
    /**
     * 如果您想获得http信息，例如头信息或状态信息
     * Please return  response => response
    */
    /**
     * 通过自定义代码确定请求状态
     * 这里只是一个例子
     * 你也可以通过HTTP状态码来判断状态
     */
    response => {
      const res = response.data
      // 如果自定义代码不是1，则判断为错误。
      // console.log(res, 'res')
      if (res.status === 2) {
        setToken('')
        router.push('/login')
      } else if (res.status !== 1 && res.status !== 2) {
        Message({
          message: res.info || 'Error',
          type: 'error',
          duration: 5 * 1000
        })
  
        // 50008:非法令牌;50012:其他客户登录;50014:令牌过期;
        if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
          // to re-login
          MessageBox.confirm('您已经注销，您可以取消以停留在此页面，或再次登录', '确认注销', {
            confirmButtonText: 'Re-Login',
            cancelButtonText: 'Cancel',
            type: 'warning'
          }).then(() => {
            store.dispatch('user/resetToken').then(() => {
              location.reload()
            })
          })
        }
        return Promise.reject(new Error(res.info || 'Error'))
      } else {
        return res
      }
    },
    error => {
      console.log('err' + error) // for debug
      Message({
        message: error.message,
        type: 'error',
        duration: 5 * 1000
      })
      return Promise.reject(error)
    }
  )
  
  export default service
  