1 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
2 |
|
3 |
|
4 | import axios from 'axios';
|
5 |
|
6 |
|
7 |
|
8 | axios.defaults.headers.post['Content-Type'] = 'application/jsoncharset=UTF-8';
|
9 |
|
10 |
|
11 | function buildGetUrl(url, params) {
|
12 | if (!params || Object.isEmptyObject(params)) {
|
13 | return url;
|
14 | }
|
15 | if (typeof params === 'string') {
|
16 | return url + '?' + params;
|
17 | }
|
18 | if (Object.type(params) === 'json') {
|
19 | return url + '?' + Object.params(params);
|
20 | }
|
21 | return url;
|
22 | }
|
23 |
|
24 |
|
25 | var Api = {
|
26 | onError: function onError(error) {
|
27 | console.warn(error);
|
28 | },
|
29 | setBaseURL: function setBaseURL(baseURL) {
|
30 | axios.defaults.baseURL = baseURL;
|
31 | },
|
32 | request: function request(url) {
|
33 | var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
34 |
|
35 |
|
36 | var method = params.method === 'get' ? 'get' : 'post';
|
37 |
|
38 | var head = params.head || {};
|
39 |
|
40 | var options = params.options || {};
|
41 |
|
42 | var data = params.data || {};
|
43 | return axios(_extends({
|
44 | url: method === 'get' ? buildGetUrl(url, data) : url,
|
45 | method: method,
|
46 | headers: _extends({}, head),
|
47 | data: method === 'get' ? null : data
|
48 | }, options));
|
49 | },
|
50 | post: function post(url) {
|
51 | var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
52 |
|
53 | return this.request(url, Object.assign({}, params, { method: 'post' }));
|
54 | },
|
55 | get: function get(url, params) {
|
56 | return this.request(url, Object.assign({}, params, { method: 'get' }));
|
57 | },
|
58 | all: function all(requests) {
|
59 | var _this = this;
|
60 |
|
61 |
|
62 | var methods = requests.map(function (request) {
|
63 | return _this.request(request.url, request.params);
|
64 | });
|
65 | return axios.all(methods);
|
66 | }
|
67 |
|
68 |
|
69 | };axios.interceptors.response.use(function (response) {
|
70 | var result = response.data || response;
|
71 | if (typeof result === 'string') {
|
72 | try {
|
73 | return JSON.parse(result);
|
74 | } catch (error) {
|
75 | console.log('result转换JSON失败' + error);
|
76 | return result;
|
77 | }
|
78 | }
|
79 | return result;
|
80 | }, function (error) {
|
81 | if (Api.onError) Api.onError(error);
|
82 | return Promise.reject(error);
|
83 | });
|
84 |
|
85 | export default Api; |
\ | No newline at end of file |