@vtx/cs-map
Version:
React components for Vortex
185 lines (176 loc) • 7.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _axios = _interopRequireDefault(require("axios"));
var _isObject = _interopRequireDefault(require("./isObject"));
var _setCookie = _interopRequireDefault(require("./setCookie"));
var _pickBy = _interopRequireDefault(require("lodash/pickBy"));
var _utils = require("@vtx/utils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
// 默认30秒超时
var SECOND = 30;
var MILL_SECOND = 1000;
var t;
/**
* 基于 axios 封装的请求封装
* axios文档 http://www.axios-js.com/zh-cn/docs/
* 支持 Get 和 Post 请求
*/
var Http = /*#__PURE__*/function () {
function Http(options) {
_classCallCheck(this, Http);
// 创建axios实例
this.instance = this._createAxios(options);
t = this;
}
// 初始化
return _createClass(Http, [{
key: "_createAxios",
value: function _createAxios(options) {
var _ref = (0, _utils.getVtxToken)() || {},
token = _ref.token,
tenantId = _ref.tenantId,
userId = _ref.userId;
// 创建实例
var instance = _axios["default"].create(_objectSpread({
// `timeout` 指定请求超时的毫秒数(0 表示无超时时间)
// 如果请求话费了超过 `timeout` 的时间,请求将被中断
timeout: MILL_SECOND * SECOND,
headers: {
Authorization: token ? "Bearer ".concat(token) : '',
'Cache-Control': 'no-cache',
'content-type': 'application/json;charset=UTF-8',
tenantId: tenantId,
userId: userId
}
}, options));
instance.interceptors.response.use(this._responseHandler, this._errorHandler);
return instance;
}
/**
* get 请求
* @param {*} url
* @param {*} options {body}
*/
}, {
key: "get",
value: function get(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$body = options.body,
body = _options$body === void 0 ? {} : _options$body,
headers = options.headers;
// 过滤掉值为 '' || undefined || null 的对象属性
var postData = (0, _isObject["default"])(body) ? (0, _pickBy["default"])((0, _utils.trim)(body), function (value) {
return value !== '' && value !== undefined && value !== null;
}) : {};
return t.instance.get(url, {
headers: _objectSpread({}, headers),
params: _objectSpread({}, postData)
});
}
/**
* post 请求
* @param {*} url
* @param {*} options
*/
}, {
key: "post",
value: function post(url) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$body2 = options.body,
body = _options$body2 === void 0 ? {} : _options$body2,
_options$headers = options.headers,
headers = _options$headers === void 0 ? {} : _options$headers;
return t.instance.post(url, body, {
headers: headers ? headers : {}
});
}
/**
* 响应数据的处理
* @param {*} response
*/
}, {
key: "_responseHandler",
value: function _responseHandler(response) {
var status = response.status,
data = response.data,
statusText = response.statusText;
var tokenInfo = response.headers['ACCESS-TOKEN'] || response.headers['access-token'];
if (tokenInfo) {
tokenInfo = JSON.parse(tokenInfo);
var token = tokenInfo.access_token;
(0, _setCookie["default"])('token', token);
localStorage.setItem('token', token);
}
if (status >= 200 && status < 300) {
// 判断条件更据后期实际情况调整
if (!data.result) {
return data;
} else {
console.log(data.msg || '请求信息错误');
return;
}
}
var error = new Error(statusText);
error.response = response;
throw error;
}
/**
* 请求错误处理
* @param {*} error
*/
}, {
key: "_errorHandler",
value: function _errorHandler(error) {
if (error.response) {
var msg;
switch (error.response.status) {
case 404:
msg = '接口请求不存在!错误码【404】。';
break;
case 500:
msg = '服务端应用接口异常!错误码【500】。';
break;
case 401:
if (process.env.MENU) {
if (window.location.hash.indexOf('login') !== -1) {
msg = '请求错误,请检查或刷新重试!';
} else {
// history.push('/login');
}
} else {
localStorage.setItem('isLogin', 'no');
msg = '登录过期,请退出重新登录!';
}
break;
default:
msg = '请求错误,请检查或刷新重试!';
break;
}
console.log(msg);
} else {
console.log('服务不可用');
}
}
// 获取实例
}, {
key: "getInstance",
value: function getInstance() {
return t.instance;
}
}]);
}();
var http = new Http();
var _default = exports["default"] = http;
//# sourceMappingURL=http.js.map