/**axios封装
 * 请求拦截、相应拦截、错误统一处理
 */
 import axios from 'axios'; 
 import QS from 'qs';

 import store from '../store/index'

 import { Message   } from 'element-ui'
 
 // 环境的切换
 /* if (process.env.NODE_ENV == 'development') {
     axios.defaults.baseURL = '/api';
 } else if (process.env.NODE_ENV == 'debug') {
     axios.defaults.baseURL = '';
 } else if (process.env.NODE_ENV == 'production') {
     axios.defaults.baseURL = 'https://tj.jxlld.com/Wxapp/';
 } */
 
 // axios.defaults.baseURL = 'https://zxluma.jxdsy.cn/api/';
 
 axios.defaults.baseURL = 'https://luma.jxdsy.cn/api/';
 
 // 请求超时时间
 axios.defaults.timeout = 10000;
 
 // post请求头
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
 
 // 请求拦截器
 axios.interceptors.request.use(
     config => {
         // 每次发送请求之前判断是否存在token，如果存在，则统一在http请求的header都加上token，不用每次请求都手动添加了
         // 即使本地存在token，也有可能token是过期的，所以在响应拦截器中要对返回状态进行判断
        //  const token = store.state.token;
        //  token && (config.headers.Authorization = token);
 
         //rd3_sessionkey: MTU4ODM5NDk1Mmx6VnFWZEsxUDdJeW1NanJOejZt
         //console.info(config,"config");
 
         return config;
     },
     error => {
         return Promise.error(error);
     })
 
 // 响应拦截器
 axios.interceptors.response.use(
     response => {
         if (response.status === 200) {
             return Promise.resolve(response);
         } else {
             return Promise.reject(response);
         }
     },
     // 服务器状态码不是200的情况 
     error => {
         if (error.response.status) {
             switch (error.response.status) {
                 // 401: 未登录    
                 // 未登录则跳转登录页面，并携带当前页面的路径    
                 // 在登录成功后返回当前页面，这一步需要在登录页操作。    
                 case 401:
                     /* router.replace({
                         path: '/login',
                         query: { redirect: router.currentRoute.fullPath }
                     }); */
                     break;
                 // 403 token过期    
                 // 登录过期对用户进行提示    
                 // 清除本地token和清空vuex中token对象    
                 // 跳转登录页面    
                 case 403:
                    Message({
                         message: '登录过期，请重新登录',
                         type: 'warning'
                     });
                     // 清除token     
                     localStorage.removeItem('token');
                     store.commit('loginSuccess', null);
                     // 跳转登录页面，并将要浏览的页面fullPath传过去，登录成功后跳转需要访问的页面
                     setTimeout(() => {
                         /* router.replace({
                             path: '/login',
                             query: {
                                 redirect: router.currentRoute.fullPath
                             }
                         }); */
                     }, 1000);
                     break;
                 // 404请求不存在    
                 case 404:
                    Message({
                         message: '网络请求不存在',
                         type: 'warning',
                     });
                     break;
                 // 其他错误，直接抛出错误提示    
                 default:
                    Message({
                         message: error.response.data.message,
                         type: 'warning',
                     });
             }
             
             return Promise.reject(error.response);
         }
     }
 );
 /** 
  * get方法，对应get请求 
  * @param {String} url [请求的url地址] 
  * @param {Object} params [请求时携带的参数] 
  */
 export function get(url, params,isobj) {
     console.info(isobj);
     return new Promise((resolve, reject) => {
         axios.get(url, {
             params: params
         })
             .then(res => {
                 console.info("到这里了没");
                 resolve(res.data);
             })
             .catch(err => {
                console.info("到这里了没1");
                 reject(err.data)
             })
     });
 }
 /** 
  * post方法，对应post请求 
  * @param {String} url [请求的url地址] 
  * @param {Object} params [请求时携带的参数] 
  */
 export function post(url, params,isobj) {
     //params.rd3_sessionkey='MTU4ODM5NDk1Mmx6VnFWZEsxUDdJeW1NanJOejZt';
     let user = JSON.parse(sessionStorage.getItem('user'));
   // 已登录 
   if (user) { 
     params.rd3_sessionkey = user.rd3_skey;
   }
     
     console.info(isobj);
     return new Promise((resolve, reject) => {
         axios.post(url, QS.stringify(params))
             .then(res => {
                console.log(res,"res11");
                if(res.data.code!=0){
                    console.info("提示");
                    Message({
                         message: res.data.msg,
                         type: 'warning',
                     });
                }
                 resolve(res.data);
             })
             .catch(err => {
                 reject(err.data)
             })
     });
 }
 
 
 /** 
  * 上传图片的方法
  * 
  * 
  */
 export function uploadImg(url,img) { // img  =>  base64图片地址
 
     return new Promise((resolve, reject) => {
         ///resolve(res.data);
         //reject(err.data)
         let param = new FormData(); //创建form对象
         param.append('uploadFile', img);// base64 转  二进制流   multipartFile => 后端要求的参数
         axios.post({
         method: 'post',  // post 方式
         url: 'https://zxluma.jxdsy.cn/api/'+url,  // 接口地址
         headers: { // 设置请求头
             "Content-Type": "multipart/form-data"
         },
         data: param  // 参数
         }).then((res) => { // 成功
             resolve(res.data);
         }).catch((err) => { // 异常
             reject(err)
         })
     });
 
     
 }