joywok-material-components
Version:
<h1 align="center"> Joywok Material Components </h1>
170 lines (139 loc) • 5.21 kB
JavaScript
;
// import fetch from 'dva/fetch';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _aloneTip = require('joywok-material-components/lib/tips/aloneTip');
var _aloneTip2 = _interopRequireDefault(_aloneTip);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
var axios = require('axios');
window.componentsRequestTip = null;
function checkStatus(response) {
if (response.status >= 200 && response.status < 300) {
return response;
}
var error = new Error(response.statusText);
error.response = response;
throw error;
}
function checkError(response, url, requestParams) {
if (response['JMStatus'] && response['JMStatus']['errmemo']) {
window.componentsRequestTip = (0, _aloneTip2.default)({ type: 'error', duration: 2000, hasclose: false, autoHideDuration: 2000, message: response['JMStatus']['errmemo'] });
}
}
function combineUrlParam(url, params) {
if (params) {
if (url.indexOf('?') != -1) {
url += '&';
} else {
url += '?';
}
}
var newArray = [];
_.each(params, function (item, key) {
if (item) {
newArray.push(key + '=' + item);
}
});
return url + '' + newArray.join('&');
}
exports.default = function () {
var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, options) {
var requestParams, response, data, ret, _response, _data;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
requestParams = void 0;
_context.t0 = options.method;
_context.next = _context.t0 === 'POST' ? 4 : _context.t0 === 'PUT' ? 6 : _context.t0 === 'PATCH' ? 8 : _context.t0 === 'DELETE' ? 8 : 10;
break;
case 4:
requestParams = _.extend({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=utf-8'
}
}, options);
return _context.abrupt('break', 13);
case 6:
requestParams = _.extend({
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json; charset=utf-8'
}
}, options);
return _context.abrupt('break', 13);
case 8:
requestParams = options;
return _context.abrupt('break', 13);
case 10:
requestParams = {
method: 'GET'
};
url = combineUrlParam(url, options.body);
return _context.abrupt('break', 13);
case 13:
_context.prev = 13;
requestParams['credentials'] = 'include';
if (window.AccessToken) {
requestParams['headers'] = _.extend({}, requestParams['headers'], { 'Access-Token': window.AccessToken });
}
if (requestParams.body) requestParams.data = requestParams.body;
_context.next = 19;
return axios(url, requestParams);
case 19:
response = _context.sent;
checkStatus(response, url, requestParams);
_context.next = 23;
return response.data;
case 23:
data = _context.sent;
window.componentsRequestTip && window.componentsRequestTip.close();
checkError(data, url, requestParams);
// 拼装返回值
ret = {
data: data,
headers: {}
};
return _context.abrupt('return', ret);
case 30:
_context.prev = 30;
_context.t1 = _context['catch'](13);
_response = _context.t1.response;
if (!_response) {
_context.next = 39;
break;
}
_context.next = 36;
return _response.data;
case 36:
_context.t2 = _context.sent;
_context.next = 40;
break;
case 39:
_context.t2 = {};
case 40:
_data = _context.t2;
if (_data.message) {
(0, _aloneTip2.default)({
type: 'error',
duration: 2000,
hasclose: false,
autoHideDuration: 2000,
message: _data.message ? _data.message : '未知错误'
});
}
case 42:
case 'end':
return _context.stop();
}
}
}, _callee, this, [[13, 30]]);
}));
function request(_x, _x2) {
return _ref.apply(this, arguments);
}
return request;
}();