Api.js 5.08 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")
    {
fukai committed
68 69
        let token = window.sessionStorage.token
        let userId =  window.sessionStorage.userId
fukai committed
70
        let headers = {userId,token,"terminal":"WEB"};
fukai committed
71 72
        if(url!= `${BASE_URI}login` && token)
            headers.token = token;
73 74 75
        if (typeof data === "function") {
          data = await data()
        }
fukai committed
76 77 78 79
        return new Promise( (resolve, reject) =>{
            axios.post(url,data,{
                headers,
                method,
fukai committed
80
                timeout: 50000,
fukai committed
81 82 83
            })
            .then(response=>{
                const {data} = response;
fukai committed
84
                if(data && data[CODE_KEY] != SUCCESS)
fukai committed
85
                {
fukai committed
86
                    console.log("错误码:"+data[CODE_KEY]+" 错误信息:"+data[MESSAGE_KEY])
fukai committed
87
                }
fukai committed
88
                if(data && data[CODE_KEY] == 'L0003'){		
fukai committed
89 90
                    window.sessionStorage.removeItem("token")
                    window.sessionStorage.removeItem("userId")				
fukai committed
91
					          MessageBox.alert({
fukai committed
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
                            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
110
                  resolve({[CODE_KEY]:'500',[MESSAGE_KEY]:error.response.status});
fukai committed
111 112 113 114 115
                } 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
116
                  resolve({[CODE_KEY]:'501'});
fukai committed
117 118 119
                } else {
                  // Something happened in setting up the request that triggered an Error
                  console.log('Error', error.message);
fukai committed
120
                  resolve({[CODE_KEY]:'502',[MESSAGE_KEY]:error.message});
fukai committed
121 122 123 124 125 126 127
                }
                console.log(error.config);
              });
            });
    }
    static _get(url,data)
    {
128 129
        // return this._post(url,data,"get");
        return requestManager.pushRequest(this._post.bind(this, BASE_URI+url, data, "get"))
fukai committed
130 131 132
    }
    static post(url,data)
    {
133 134
      // return this._post(BASE_URI+url,data)
      return requestManager.pushRequest(this._post.bind(this, BASE_URI+url, data))
fukai committed
135 136 137 138
    }

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