# 功能描述

利用axios实现前端与后端的交互。
源码路径: node_modules/sei-ui/src/utils/http.js。

# 方法Methods

export default {
    /**
     * 同步请求数据,获得服务器的返回值
     * @param method: POST 或 GET方法
     * @param url: 服务器URL
     * @param parm: JSON格式数据
     * @param loading: 是否需要动画,默认为false(无进度条动画)
     * @param message: 是否显示执行结果提示框,默认为false(不提示)
     * @param contentType: 提交类型,默认为: application/json;charset=utf-8
     * @returns {any}
     */
    asyncAjax(method = "POST", url, parm, loading, message, contentType);

    /**
     * 同步POST请求数据,获得服务器的返回值
     * @param url: 地址
     * @param parm: JSON格式数据
     * @param config: 参数如下
     * {
     *    loading: 是否需要动画,默认为false(无进度条动画)
     *    closeLoading: 是否需要关闭动画,默认为true(关闭进度条动画)
     *    message: Boolean | String 显示执行结果提示框,默认为false(不提示),如果为true则按服务器返回信息提示,否则为用户设置的字符串提示
     *    method: 默认为POST
     *    contentType: 提交类型,默认为: application/json;charset=utf-8
     * }
     */
    asyncAjax2 (url, parm, config = {});

    /**
     * POST方式异步提交请求
     * @param url: 地址
     * @param params: JSON格式数据
     * @param loading: 是否需要动画,默认为:false(无进度条动画)
     * @param message: 是否显示执行结果提示框,默认为:false(不提示)
     * @param contentType: 提交类型,默认为: application/json;charset=utf-8
     * @param timeout: 超时时长,默认为:1分钟
     * @param go: 未登陆时是否进行跳转
     * @returns {Promise<any | never>}
     */
    post (url, params, loading, message, contentType, timeout);
    
    /**
     * POST方式异步提交请求
     * @param url: 地址
     * @param params: JSON格式数据
     * @param config: 参数如下
     * {
     *     loading: 是否需要动画,默认为false(无进度条动画)
     *     closeLoading: 是否需要关闭动画,默认为true(关闭进度条动画)
     *     message: Boolean | String 显示执行结果提示框,默认为false(不提示),如果为true则按服务器返回信息提示,否则为用户设置的字符串提示
     *     timeout: 超时时长,默认为1分钟
     *     contentType: 提交类型,默认为: application/json;charset=utf-8
     * }
     * @returns {*}
     */
    post2 (url, params, config = {});

    /**
     * GET方式提交请求
     * @param url: 地址
     * @param params: JSON格式数据
     * @param isLoading: 是否需要动画,默认为:false(无进度条动画)
     * @param isMessage: 是否显示执行结果提示框,默认为:false(不提示)
     * @param contentType: 提交类型,默认为: application/json;charset=utf-8
     * @param timeout: 超时时长,默认为:1分钟
     * @returns {Promise<undefined|*>}
     */
    get (url, params, loading, message, contentType, timeout);

    /**
     * GET方式提交请求
     * @param url: 地址
     * @param params: JSON格式数据
     * @param config: 参数如下
     * {
     *     loading: 是否需要动画,默认为false(无进度条动画)
     *     closeLoading: 是否需要关闭动画,默认为true(关闭进度条动画)
     *     message: Boolean | String 显示执行结果提示框,默认为false(不提示),如果为true则按服务器返回信息提示,否则为用户设置的字符串提示
     *     timeout: 超时时长,默认为1分钟
     *     contentType: 提交类型,默认为: application/json;charset=utf-8
     * }
     * @returns {*}
     */
    get2 (url, params, config = {});

    /**
     * 文件上传
     * @param url: 地址,默认为:/api/file/public/upload
     * @param params: JSON格式数据
     * @param loading: 是否需要动画,默认为:false(无进度条动画)
     * @param message: 是否显示执行结果提示框,默认为:false(不提示)
     * @param timeout: 超时时间
     * @returns {Promise<AxiosResponse<any>>}
     */
    fileUpload (url, params, loading, message, timeout = 1500000);

    /**
     * 文件上传
     * @param url: 上传地址,默认为:/api/file/public/upload
     * @param params: JSON格式数据
     * @param config: 参数如下
     * {
     *     loading: 是否需要动画,默认为:false(无进度条动画)
     *     closeLoading: 是否需要关闭动画,默认为:true(关闭进度条动画)
     *     message: Boolean | String 显示执行结果提示框,默认为false(不提示),如果为true则按服务器返回信息提示,否则为用户设置的字符串提示
     *     method:方法,默认为:POST
     *     headers:头部,默认为:multipart/form-data;
     * }
     * @returns {Promise<AxiosResponse<any>>}
     */
    fileUpload2 (url, params, config = {});

    /**
     * 文件下载
     * @param url: 下载地址,默认为:/api/file/public/down
     * @param param: json格式参数
     * @param loading: 是否需要动画,默认为false(无进度条动画)
     * @param saveFileName: 保存的文件名称
     * @param timeout: 超时时长
     * @returns {Promise<AxiosResponse<any>>}
     */
    fileDown (url, param, loading, saveFileName, timeout = 360000);

    /**
     * 下载文件
     * @param url: 下载地址,默认为:/api/file/public/down
     * @param params: 数据
     * @param config: 参数如下
     * {
     *     saveFileName: 要保存的文件名,默认为:服务器传回的文件名
     *     loading: 是否需要动画,默认为:false(无进度条动画)
     *     closeLoading: 是否需要关闭动画,默认为:true(关闭进度条动画)
     *     timeout: 超时时长,默认为1小时
     *     headers: 提交类型,默认为: application/json;charset=utf-8
     *     responseType: 类型,默认为:blob
     * }
     * @returns {Promise<AxiosResponse<any>>}
     */
    fileDown2 (url, params, config = {});

    /**
     * 环境设置
     * @param config: 参数
     */
    setDefaultEvn(config = {});

    /**
     * 设置路由实体
     * @param router: 路由实体
     */
    setRouter(router);
}

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
146
147
148
149
150
151
152
153