quanwei
18 hours ago c441dea81bd86bdfb12dff35821fed51f4cc91c2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import axios from 'axios';
import qs from 'qs';
import router from '@/router';
import store from '@/store';
import {
    Message,
    Loading
} from 'element-ui';
import {delCookie, deleteSessionStorage, setCookie, getCookie} from '@/utils/base.js';
 
//axios.defaults.timeout = 5000;                        //响应时间
axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; //配置请求头
axios.defaults.baseURL = '/index.php'; //配置接口地址
axios.defaults.withCredentials = true;
axios.defaults.responseType = 'json';
 
//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) =>
{
    // console.log(config);
    //在发送请求之前做某件事
    if (config.method === 'post' && config.url != '/region/file.upload/image') {
        config.data = qs.stringify(config.data);
    }
    return config;
}, (error) =>
{
    console.log('错误的传参')
    return Promise.reject(error);
});
 
//返回状态判断(添加响应拦截器)
axios.interceptors.response.use((res) =>
{
    //未成功处理
    if (res.data.code !== 1) {
        if (res.data.code === 0) {
            Message({
                showClose: true,
                message: res.data.msg,
                type: "error"
            });
            // 如果是登录失败,记录失败次数 by lyzflash
            if (res.config.url == '/region/passport/login') {
                let region_login_err_num = parseInt(getCookie('shop_login_err_num')) || 0;
                setCookie('shop_login_err_num', region_login_err_num + 1);
            }
            return Promise.reject(res.data);
        } else {
            delCookie('isLogin');
            delCookie('baseInfo');
            deleteSessionStorage('rolelist');
            deleteSessionStorage('authlist');
            /*删除stores数据*/
            store.commit('user/setState',{key:'roles',val:null});
            router.push({
                path: '/login',
                query: {}
            });
           return Promise.reject(res.data);
        }
    }
    return res.data;
}, (error) =>
{
    Message({
        showClose: true,
        message: '接口请求异常,请稍后再试~',
        type: "error"
    });
    return Promise.reject(error);
});
 
/**
 * 返回一个Promise(发送post请求)
 * errorback是否错误回调
 */
export function _post(url, params, errorback)
{
    return new Promise((resolve, reject) =>
    {
        axios.post(url, params)
            .then(response =>
            {
                resolve(response);
            })
            .catch((error) =>
            {
                reject(error);
            })
    })
}
 
/**
 * 返回一个Promise(发送get请求)
 * errorback是否错误回调
 */
export function _get(url, param, errorback)
{
    return new Promise((resolve, reject) =>
    {
        axios.get(url, {
            params: param
        })
            .then(response =>
            {
                resolve(response)
            })
            .catch((error) =>
            {
                reject(error);
            })
    })
}
 
/**
 * 返回一个Promise(发送上传请求)
 * errorback是否错误回调
 */
export function _upload(url, formData, errorback)
{
    return new Promise((resolve, reject) =>
    {
        /*let config = {
         headers: {
         'Content-Type': 'multipart/form-data'
         }
         */
        axios.post(url, formData, {"Content-Type": "multipart/form-data"})
            .then(response =>
            {
                resolve(response);
            })
            .catch((error) =>
            {
                reject(error);
            })
    })
}
 
export default {
    _post,
    _get,
    _upload,
}