Commit 8ac7d87a by crushh

update: dist

parent 90c91423
import config from '@/config';
import { log } from '@/utils';
import qs from 'qs';
import axios from 'axios';
// eslint-disable-next-line
......@@ -13,8 +13,6 @@ import Vue from 'vue';
*
*/
// 加载最小时间
const MINI_TIME = 300;
// 超时时间
// 环境value
// eslint-disable-next-line
......@@ -22,33 +20,9 @@ let _isDev = process.env.NODE_ENV === 'development';
// 请求接口host
let _apiHost = config.api;
// 请求组(判断当前请求数)
let _requests = [];
axios.defaults.baseURL = _apiHost;
// 创建一个请求实例
/**
* 添加请求,显示loading
* @param {请求配置} config
*/
function pushRequest(config) {
log(`${config.url}--begin`);
_requests.push(config);
}
/**
* 移除请求,无请求时关闭loading
* @param {请求配置} config
*/
function popRequest(config) {
log(`${config.url}--end`);
let _index = _requests.findIndex(r => {
return r === config;
});
if (_index > -1) {
_requests.splice(_index, 1);
}
}
/**
* 错误的处理
* @param {*} code
......@@ -93,14 +67,12 @@ function handlerErr(code, message = '请求错误', alertError = true) {
}
}
const pendingRequest = new Map();
/**
* 请求地址,请求数据,是否静默,请求方法
*/
const requests = (url, data = {}, contentTypeIsJSON = false, isSilence = false, method = 'POST', alertError = true) => {
let _opts = { method, url };
let _timer = null;
// 如果用户没有开启权限 从参数中删除showSelfFlag
if (!store.state.marketing.openFlag) {
delete data.showSelfFlag;
......@@ -116,45 +88,19 @@ const requests = (url, data = {}, contentTypeIsJSON = false, isSilence = false,
} else {
_opts.params = Object.assign({ requestProject: 'gic-web' }, data);
}
let key = JSON.stringify(_opts);
if (!pendingRequest.has(key)) {
pendingRequest.set(key, Date.now());
} else if (Date.now() - pendingRequest.get(key) > 1000) {
pendingRequest.delete(key);
} else {
return Promise.reject();
}
return new Promise((resolve, reject) => {
let _random = { stamp: Date.now(), url: `${_apiHost + url}` };
if (!isSilence) {
_timer = setTimeout(() => {
pushRequest(_random);
}, MINI_TIME);
}
_opts.headers = Object.assign({}, _opts.headers || {}, { sign: localStorage.getItem('sign') }); // 加入自定义请求头
axios(_opts)
.then(res => {
clearTimeout(_timer);
popRequest(_random);
if (res.data.errorCode !== 0 && res.data.code != 0) {
if (res.data.code != 0 && res.data.errorCode !== 0) {
reject(res);
if (res.data.message.indexOf('抱歉') >= 0) {
Vue.prototype.$alert(res.data.message, '提示');
} else {
handlerErr(res.data.errorCode, res.data.message, alertError);
}
} else {
resolve(res.data);
}
})
.catch(res => {
clearTimeout(_timer);
popRequest(_random);
pendingRequest.delete(key);
if (res) {
handlerErr(res.response.status, '接口异常', alertError);
handlerErr('接口异常', alertError);
}
reject(res);
});
......
......@@ -416,7 +416,6 @@ export default {
params.endTime = formatDateTimeByType(params.time[1], 'yyyy-MM-dd');
}
delete params.time;
const { result } = await page(params);
if (!result) return;
this.tableData = result.list || [];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment