UNPKG

joywok-material-components

Version:

<h1 align="center"> Joywok Material Components </h1>

170 lines (139 loc) 5.21 kB
"use strict"; // 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; }();