UNPKG

iep-ui

Version:

An enterprise-class UI design language and Vue-based implementation

164 lines (139 loc) 5.15 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray'); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _moment = require('moment'); var _moment2 = _interopRequireDefault(_moment); var _lodash = require('lodash'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var toType = function toType(e) { return Object.prototype.toString.call(e).slice(8, -1).toLowerCase(); }; var createObjectURL = function createObjectURL(object) { return window.URL ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object); }; var formatParams = function formatParams(url, params, fileName, headers, suffix) { var methods = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'get'; return new Promise(function (resolve, reject) { var formData = new FormData(); var serviceUrl = url; serviceUrl = serviceUrl.replace(/{\w+}/g, function (v) { var key = v.substring(1, v.length - 1); return params[key]; }); if (methods === 'get') { var temp = ''; if (!(0, _lodash.isEmpty)(params) && toType(params) === 'object') { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = Object.entries(params)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref = _step.value; var _ref2 = (0, _slicedToArray3['default'])(_ref, 2); var k = _ref2[0]; var v = _ref2[1]; temp += '&' + k + '=' + v; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } serviceUrl = serviceUrl + '?' + temp.substr(1, temp.length); } } else { if (!(0, _lodash.isEmpty)(params) && toType(params) === 'object') { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = Object.entries(params)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var _ref3 = _step2.value; var _ref4 = (0, _slicedToArray3['default'])(_ref3, 2); var _k = _ref4[0]; var _v = _ref4[1]; formData.append(_k, _v); } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2['return']) { _iterator2['return'](); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } } } var xhr = new XMLHttpRequest(); xhr.open(methods, serviceUrl); if (!(0, _lodash.isEmpty)(headers) && toType(headers) === 'object') { var _iteratorNormalCompletion3 = true; var _didIteratorError3 = false; var _iteratorError3 = undefined; try { for (var _iterator3 = Object.entries(headers)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { var _ref5 = _step3.value; var _ref6 = (0, _slicedToArray3['default'])(_ref5, 2); var _k2 = _ref6[0]; var _v2 = _ref6[1]; xhr.setRequestHeader(_k2, _v2); } } catch (err) { _didIteratorError3 = true; _iteratorError3 = err; } finally { try { if (!_iteratorNormalCompletion3 && _iterator3['return']) { _iterator3['return'](); } } finally { if (_didIteratorError3) { throw _iteratorError3; } } } } xhr.responseType = 'blob'; xhr.onload = function (e) { if (this.status === 200) { var blob = this.response; // xls文件名称 var filename = (fileName ? fileName : (0, _moment2['default'])().format('YYYY年MM月DD日 hh:mm:ss')) + '.' + (suffix ? suffix : 'xlsx'); if (window.navigator.msSaveOrOpenBlob) { navigator.msSaveBlob(blob, filename); } else { var a = document.createElement('a'); var _url = createObjectURL(blob); a.href = _url; a.download = filename; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(_url); } resolve(e); } else { reject(e); } }; xhr.send(formData); }); }; exports['default'] = formatParams;