qingyiay
2023-03-28 e7b0b34176549cfec809c6b89c4cab0999e488b9
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
import {
    fetch
} from '@/api/request.js';
 
const typeObj = {
    headerGET: {
        "Content-type": 'application/x-www-from-urlencoded'
    },
    headerPOST: {
        "Content-type": 'application/x-www-from-urlencoded'
    },
    jsonPOST: {
        "Content-type": 'application/json'
    },
    utfPOSt: {
        'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
    }
}
 
// 通用接口请求
export const reqAll = (url, params, opt = {}) => {
    opt.data = params;
    opt.header = typeObj['headerPOST'];
    return fetch(url, opt)
}
 
// get请求
// urlParam是拼接路径的参数
export const reqGet = (url, params, opt = {}) => {
    opt.header = typeObj['headerGET'];
    opt.method = "GET";
    opt.data = params;
    return fetch(url, opt)
}
 
// post请求
// urlType是指定拼接路径还是传json格式参数
export const reqPost = (url, params, urlType, opt = {}) => {
    opt.method = "POST";
    if (urlType == 'params') {
        Object.keys(params).map(item => {
            // 这里面不能用params.item,点运算符加标识符的形式取值,因为item是Object.keys生成的每一项键都是字符串,不是标识符,可以用[]的形式访问
            if (params[item] == null) {
                params[item] = '';
            }
        })
        opt.params = params;
        opt.header = typeObj['headerPOST'];
    } else if (urlType == 'json') {
        opt.header = typeObj['jsonPOST'];
        opt.data = params;
    } else if (urlType == 'utf8') {
        opt.header = typeObj['utfPOSt'];
        opt.data = params;
    } else {
        opt.data = params;
        opt.header = typeObj['headerPOST'];
    }
    return fetch(url, opt, urlType)
}