tanghaolin
2022-09-13 9ed8c3086f82aa1af3b5b287ea7be151b2a40dbb
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
import axios from 'axios'
 
class axiosHelper {
    /**
     * @description  
        version: 1,//API版本
        lang: ,//语言
        isAddLangParam: "false",是否添加语言参数, 不加设置为false,否则null
        isAddUrlSoftType: "true",是否添加软件类型/web/, 不加设置为true,否则null
        controller: API中控制器名
        action: API中操作名
        data: {}, 除了Lang的其他参数
        apiUrlType: 接口类型 "main","user",为空就用"main"
     */
    static get(params) {
        /*return (() => axios(
            {
                url:axiosHelper.buildFullUrl(params),
                method: "get",
                params:axiosHelper.buildFullData(params)
            }))();*/
 
        return axios(
            {
                url: axiosHelper.buildFullUrl(params),
                method: "get",
                params: axiosHelper.buildFullData(params)
            });
 
        // return (() => axios.get(axiosHelper.buildFullUrl(params), {"Lang": 0}))();
    }
 
    static post(params) {
        return axios(
            {
                url: axiosHelper.buildFullUrl(params),
                method: "post",
                data: axiosHelper.buildFullData(params)
            });
    }
 
    static put(params) {
        return axios(
            {
                url: axiosHelper.buildFullUrl(params),
                method: "put",
                data: axiosHelper.buildFullData(params)
            });
    }
 
    static delete(params) {
        return axios(
            {
                url: axiosHelper.buildFullUrl(params),
                method: "delete",
                params: axiosHelper.buildFullData(params)
            });
    }
 
 
    static buildFullUrl(params) {
        //外部输入了完整Url就不用拼接路径了
        if (params.url != null)
            return window.globalConfig.WebApiUrl.MainUrl + params.url;
 
        var baseUrl = "";
        //接口版本
        if (params.version)
            baseUrl = "v" + params.version;
        else
            baseUrl = "v1";
 
        //判断是否添加语言参数
        var isAddUrlSoftType = true;
        if (params.isAddUrlSoftType != null) {
            if (params.isAddUrlSoftType == "false")//用字符型
                isAddUrlSoftType = false;
        }
        if (isAddUrlSoftType)
            baseUrl = baseUrl + "/Mobile/" + params.controller + "/" + params.action;
        else
            baseUrl = baseUrl + "/" + params.controller + "/" + params.action;
 
        // var fullUrl = window.globalConfig.WebApiUrl.MainUrl + baseUrl;
        // console.log(fullUrl)
 
        if (params.apiUrlType) {
            if (params.apiUrlType == "main") {
                return window.globalConfig.WebApiUrl.MainUrl + baseUrl;
            }
            else if (params.apiUrlType == "use") {
                return window.globalConfig.WebApiUrl.UserUrl + baseUrl;
            }
            else {
                return window.globalConfig.WebApiUrl.MainUrl + baseUrl;
            }
        }
        else {
            return window.globalConfig.WebApiUrl.MainUrl + baseUrl;
        }
    }
 
    static buildFullData(params) {
        var post_data = params.data;
 
        //判断是否添加语言参数
        var isAddLangParam = true;
        if (params.isAddLangParam) {
            if (params.isAddLangParam == "false")//用字符型
                isAddLangParam = false;
        }
 
        //
        if (isAddLangParam) {
            if (post_data == null)
                post_data = {};
            if (params.lang != null && post_data.Lang == null)
                post_data.Lang = params.lang;
        }
        else {
            //判断是否是空对象
            if (JSON.stringify(post_data) == "{}" == {})
                return null;
        }
 
        //console.log(post_data)
        return post_data;
    }
 
}
 
export default axiosHelper