import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '../store/index'
import { getToken } from '@/utils/auth';
import QS from 'qs'
// 创建axios实例
const service = axios.create({
  // 'http://127.0.0.1:9788'  process.env.VUE_APP_BASE_API 'sf.sgjyun.com'
    // baseURL: process.env.VUE_APP_BASE_API , //URL地址   环境变量文件 
    baseURL: 'http://127.0.0.1:9788',
    timeout: 5000 ,//超时
    withCredentials: true,  //跨域时若要发生cookie,需要设置该选项
})
console.log('service',process.env.VUE_APP_BASE_API);
// 请求拦截器
service.interceptors.request.use(
  
    config => {
      // sessionStorage.setItem('username',userInfo.account)
      // sessionStorage.setItem('password',userInfo.password)
      const username = window.sessionStorage.getItem('username')
      const password = window.sessionStorage.getItem('password')
      // console.log('sessionStorage.getItem',username,password,config.url);
     
      if (config.method == 'post' ) {
        config.data = {
          ...config.data,
          account : username ,
          password : password
        }
        // 需要将数据格式化，否则传到后台就错了
        config.data = QS.stringify(config.data)
      }else if (config.method == 'get' && config.url !='/admin/api/login/pwd') {
        config.params = {
          ...config.params,
          account : username,
          password : password
        }
      }
        return config
    },
    // error => {
    //     return Promise.reject(error)
    // }
)

// 相应拦截
service.interceptors.response.use(
    // 通过自定义code 判定响应状态 也可以通过HTTP状态码判断
    response =>{
      // const role_type = sessionStorage.getItem('role_type')
      // console.log('role_type',role_type);
      // if(role_type != ''){
      //   console.log('44444444',res);
      // }
      const res = response.data
      // console.log('44444444',res)
        // code 不为0 则判断为一个错误
        if(res.state !== 1){
            // Message({
            //     message: res.msg || "Error",
            //     type: 'error',
            //     duration: 5*1000
            // })
        

            // 假设 10008 非法令牌  10012 其他客户端已经登陆
            // if(res.code === 10008 || res.code === 10012){
            //     // 重新登陆
            //     MessageBox.confirm(
            //         '登陆状态异常,请重新登陆',
            //         "确认登陆信息",
            //         {
            //             confirmButtonText: '重新登陆',
            //             cancelButtonText: '取消',
            //             type: 'warning'
            //         }
            //     ).then(()=>{
            //         store.dispatch('user/resetToken')
            //             .then(()=>{
            //                 // location.reload()
            //             })
            //     })
            // }

            // return Promise.reject(new Error(res.message || 'Error'));
            return Promise.reject('error')
        }else{
            return res;
        }
    },
    error =>{
      console.log('oooooo',error.message);
        Message({
            message: error.message,
            type: 'error',
            duration: 7*1000
        })
    }
)
console.log('33333');
export default service;