UNPKG

fx-form-widget

Version:
124 lines (121 loc) 4.46 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.DATA_CODE = void 0; var _notification2 = _interopRequireDefault(require("antd/lib/notification")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _axios = _interopRequireDefault(require("axios")); var _tools = require("./tools"); var ENV = (0, _tools.getEnv)(); var token = (0, _tools.getToken)(); var DATA_CODE = exports.DATA_CODE = new Map([['SUCCESS', 2000], ['QUERY_PARAMS_ERROR', 4000], ['LOGIN_ERROR', 100003], ['OTHER_ERROR', 100003], ['GOODS_CHANGE_PERMIT_BY_ACTIVITY', 50000407]]); // API 接口 var API_HOST = new Map([['dev', 'https://dev-gateway.fxqifu.net/pangu'], ['qa', 'https://qa-gateway.fxqifu.net/pangu'], ['prod', 'https://gateway.fxqifu.net/pangu']]); var MAIN_HOST = API_HOST.get(ENV); function getMainDomain() { var hostname = window.location.hostname; var parts = hostname.split('.').reverse(); if (parts && parts[1]) { return parts[1] + "." + parts[0]; } return hostname; } var domin = getMainDomain(); domin = domin === 'localhost' ? ENV + ".smartercarp.com" : domin; var LOGIN_HOST = new Map([['dev', "https://dev-account." + domin], ['qa', "https://qa-account." + domin], ['prod', "https://account." + domin]]); var LOGIN_URL = LOGIN_HOST.get(ENV); // 登录失效 var CancelToken = _axios["default"].CancelToken; var source = CancelToken.source(); var service = _axios["default"].create({ baseURL: MAIN_HOST, timeout: 30000 }); var pending = []; // 移除重复请求 var removePending = function removePending(config) { for (var key in pending) { var item = +key; var list = pending[key]; // 当前请求在数组中存在时执行函数体 if (list.url === config.url && list.method === config.method && JSON.stringify(list.params) === JSON.stringify(config.params) && JSON.stringify(list.data) === JSON.stringify(config.data)) { // 执行取消操作 list.cancel('操作太频繁,请稍后再试'); // 从数组中移除记录 pending.splice(item, 1); } } }; service.interceptors.request.use(function (config) { removePending(config); if (config.headers) config.headers.authority_token = token; config.url = config.url + "?__date=" + new Date().getTime(); return (0, _extends2["default"])({}, config, { cancelToken: source.token }); }, function (err) { !!err.message && _notification2["default"].error({ message: '提示', description: err.message }); return Promise.reject((0, _extends2["default"])({}, err, { data: null })); }); service.interceptors.response.use(function (res) { // console.log('res', res); var status = res.status, data = res.data, statusText = res.statusText; return new Promise(function (resolve, reject) { if (status < 200 || status > 300) { _notification2["default"].error({ message: "\u8BF7\u6C42\u9519\u8BEF: " + status, description: statusText }); reject((0, _extends2["default"])({}, data, { data: null })); } else if (!data.success) { if (+data.code === DATA_CODE.get('LOGIN_ERROR')) { // 登录失效后,取消后续的http请求 source.cancel('登录失效'); if (window.location.hostname !== 'localhost') { window.location.href = LOGIN_URL + "/login?redirectUrl=" + encodeURIComponent(window.location.origin + window.location.pathname); } return reject(data); } else { _notification2["default"].error({ message: '提示', description: data.message }); } reject((0, _extends2["default"])({}, data, { data: null })); } else { resolve(data); } }); }, function (err) { if (err.message !== '登录失效') { err.message && _notification2["default"].error({ message: '提示', description: err.message }); } return Promise.reject((0, _extends2["default"])({}, err, { data: null })); }); function get(url, config) { return url ? service.get(url, config) : Promise.reject('Cannot read property URL of undefined'); } function post(url, data, config) { return url ? service.post(url, data, config) : Promise.reject('Cannot read property URL of undefined'); } var HttpClient = { get: get, post: post }; var _default = exports["default"] = HttpClient;