Api.js 5.09 KB
Newer Older
fukai committed
1 2
import axios from 'axios'
import { MessageBox } from 'element-ui'
3
import RequestManager from './RequestManager.js';
fukai committed
4

潘际乾 committed
5
export const BASE_HOST = "/gjjs"
fukai committed
6
export const BASE_URI=BASE_HOST+"";
fukai committed
7 8 9 10 11 12 13

const instance = axios.create({
    baseURL: BASE_URI,
    timeout: 5000,
    method: 'post',
  });

fukai committed
14 15 16
const CODE_KEY = "respCode"
const MESSAGE_KEY = "respMsg"

17 18
const requestManager = new RequestManager()

fukai committed
19 20
export default class Api 
{
傅凯 committed
21
    static pget(url,data)
fukai committed
22
    {
傅凯 committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
        let token = window.sessionStorage.token
        let userId =  window.sessionStorage.userId
        let headers = {userId,token,"terminal":"WEB"};
        if(url!= `${BASE_URI}login` && token)
            headers.token = token;
        return new Promise( (resolve, reject) =>{
            axios.get(url,data,{
                headers,
                
                timeout: 50000,
            })
            .then(response=>{
                const {data} = response;
                resolve(data)
            })
            .catch(error=> {
                if (error.response) {
                  // The request was made and the server responded with a status code
                  // that falls out of the range of 2xx
                  console.log(error.response.data);
                  console.log(error.response.status);
                  console.log(error.response.headers);
                  resolve(error.response.status);
                } else if (error.request) {
                  // The request was made but no response was received
                  // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
                  // http.ClientRequest in node.js
                  console.log(error.request);
                  resolve('error.request');
                } else {
                  // Something happened in setting up the request that triggered an Error
                  console.log('Error', error.message);
                  resolve(error.message);
                }
                console.log(error.config);
              });
            
        })
fukai committed
61
    }
62
  	static logout(){
fukai committed
63 64 65
        console.log('asdasdasdasdasd')
        window.location.href="#/login";
    }
66 67
    static async _post(url,data,method="post")
    {
wanggang_yf committed
68
        //debugger
fukai committed
69 70
        let token = window.sessionStorage.token
        let userId =  window.sessionStorage.userId
fukai committed
71
        let headers = {userId,token,"terminal":"WEB"};
fukai committed
72 73
        if(url!= `${BASE_URI}login` && token)
            headers.token = token;
74 75 76
        if (typeof data === "function") {
          data = await data()
        }
fukai committed
77 78 79 80
        return new Promise( (resolve, reject) =>{
            axios.post(url,data,{
                headers,
                method,
fukai committed
81
                timeout: 50000,
fukai committed
82 83 84
            })
            .then(response=>{
                const {data} = response;
fukai committed
85
                if(data && data[CODE_KEY] != SUCCESS)
fukai committed
86
                {
fukai committed
87
                    console.log("错误码:"+data[CODE_KEY]+" 错误信息:"+data[MESSAGE_KEY])
fukai committed
88
                }
fukai committed
89
                if(data && data[CODE_KEY] == 'L0003'){		
fukai committed
90 91
                    window.sessionStorage.removeItem("token")
                    window.sessionStorage.removeItem("userId")				
fukai committed
92
					          MessageBox.alert({
fukai committed
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
                            title:'会话超时',
                            message:'即将退出,请重新登录',
                            showClose:false,
							callback:()=>{
                                window.location.href= "/?#/"+"login"
                            }
                    })
                    return ;
                }
                resolve(data)
            })
            .catch(error=> {
                if (error.response) {
                  // The request was made and the server responded with a status code
                  // that falls out of the range of 2xx
                  console.log(error.response.data);
                  console.log(error.response.status);
                  console.log(error.response.headers);
fukai committed
111
                  resolve({[CODE_KEY]:'500',[MESSAGE_KEY]:error.response.status});
fukai committed
112 113 114 115 116
                } else if (error.request) {
                  // The request was made but no response was received
                  // `error.request` is an instance of XMLHttpRequest in the browser and an instance of
                  // http.ClientRequest in node.js
                  console.log(error.request);
fukai committed
117
                  resolve({[CODE_KEY]:'501'});
fukai committed
118 119 120
                } else {
                  // Something happened in setting up the request that triggered an Error
                  console.log('Error', error.message);
fukai committed
121
                  resolve({[CODE_KEY]:'502',[MESSAGE_KEY]:error.message});
fukai committed
122 123 124 125 126 127 128
                }
                console.log(error.config);
              });
            });
    }
    static _get(url,data)
    {
129
        // return this._post(url,data,"get");
fukai committed
130
        return requestManager.pushRequest(this._post.bind(this, url, data, "get"))
fukai committed
131 132 133
    }
    static post(url,data)
    {
134 135
      // return this._post(BASE_URI+url,data)
      return requestManager.pushRequest(this._post.bind(this, BASE_URI+url, data))
fukai committed
136 137 138 139
    }

    static get(url,data)
    {
140
      return this._get(BASE_HOST+url,data)
fukai committed
141 142
    }
}