|
|
const configDefault = {
|
|
|
showError: true,
|
|
|
canEmpty: false,
|
|
|
returnOrigin: false,
|
|
|
withoutCheck: false,
|
|
|
mock: false,
|
|
|
timeout: 10000,
|
|
|
responseType: 'json',
|
|
|
// credentials: 'include',
|
|
|
};
|
|
|
function request(method, path, data, config) {
|
|
|
const myInit = {
|
|
|
...configDefault,
|
|
|
...config,
|
|
|
method,
|
|
|
// body: JSON.stringify(data),
|
|
|
body: (data),
|
|
|
};
|
|
|
if (method === 'GET') {
|
|
|
let params = '';
|
|
|
let ifp = '';
|
|
|
if (data) {
|
|
|
// 对象转url参数
|
|
|
params = new URLSearchParams(data).toString();
|
|
|
ifp = params ? '?' : ifp;
|
|
|
}
|
|
|
ifp = path.includes('?') ? '' : ifp;
|
|
|
return fetch(`${path}${ifp}${params}`, {
|
|
|
...configDefault,
|
|
|
...config,
|
|
|
});
|
|
|
}
|
|
|
|
|
|
return fetch(path, myInit);
|
|
|
}
|
|
|
|
|
|
// get
|
|
|
async function get(path, data, config) {
|
|
|
try {
|
|
|
const r = await request('GET', path, data, config);
|
|
|
const r_1 = await r.json();
|
|
|
return r_1;
|
|
|
} catch (err) {
|
|
|
return console.log('Request Failed', err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// post
|
|
|
async function post(path, data, config) {
|
|
|
try {
|
|
|
const body = JSON.stringify(data);
|
|
|
const r = await request('POST', path, body, config);
|
|
|
const r_1 = await r.json();
|
|
|
return r_1;
|
|
|
} catch (err) {
|
|
|
return console.log('Request Failed', err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// postForm
|
|
|
async function postForm(path, data, config) {
|
|
|
try {
|
|
|
const formData = new FormData();
|
|
|
Object.keys(data).forEach(key => {
|
|
|
formData.append(key, data[key]);
|
|
|
});
|
|
|
const r = await request('POST', path, formData, config);
|
|
|
const r_1 = await r.json();
|
|
|
return r_1;
|
|
|
} catch (err) {
|
|
|
return console.log('Request Failed', err);
|
|
|
}
|
|
|
}
|
|
|
/**
|
|
|
* 千分位 格式化数字
|
|
|
*/
|
|
|
const numberFormatter = (number, d = 2, m = 2) => {
|
|
|
return new Intl.NumberFormat(undefined, {
|
|
|
minimumFractionDigits: d,
|
|
|
maximumFractionDigits: m,
|
|
|
}).format(number);
|
|
|
};
|
|
|
|
|
|
/**
|
|
|
* 人民币:元 转换为 万元
|
|
|
*/
|
|
|
const CNYConvertK = (number, scale = 10) => {
|
|
|
return numberFormatter((number/(1000*scale)), 0, 0);
|
|
|
};
|
|
|
function isEmpty(val) {
|
|
|
// return val === undefined || val === null || val === "";
|
|
|
return [Object, Array].includes((val || {}).constructor) && !Object.entries((val || {})).length;
|
|
|
}
|
|
|
function groupBy(array, callback) {
|
|
|
return array.reduce((groups, item) => {
|
|
|
const key = typeof callback === 'function' ? callback(item) : item[callback];
|
|
|
|
|
|
if (!groups[key]) {
|
|
|
groups[key] = [];
|
|
|
}
|
|
|
|
|
|
groups[key].push(item);
|
|
|
return groups;
|
|
|
}, {});
|
|
|
}
|
|
|
|
|
|
var now = new Date(); //当前日期
|
|
|
var nowDayOfWeek = now.getDay(); //今天本周的第几天
|
|
|
var nowDay = now.getDate(); //当前日
|
|
|
var nowMonth = now.getMonth(); //当前月
|
|
|
var nowYear = now.getYear(); //当前年
|
|
|
nowYear += nowYear < 2000 ? 1900 : 0; //
|
|
|
var lastMonthDate = new Date(); //上月日期
|
|
|
lastMonthDate.setDate(1);
|
|
|
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
|
|
|
var lastYear = lastMonthDate.getYear();
|
|
|
var lastMonth = lastMonthDate.getMonth();
|
|
|
//格式化日期:yyyy-MM-dd
|
|
|
function formatDate(date) {
|
|
|
var myyear = date.getFullYear();
|
|
|
var mymonth = date.getMonth() + 1;
|
|
|
var myweekday = date.getDate();
|
|
|
if (mymonth < 10) {
|
|
|
mymonth = '0' + mymonth;
|
|
|
}
|
|
|
if (myweekday < 10) {
|
|
|
myweekday = '0' + myweekday;
|
|
|
}
|
|
|
return myyear + '-' + mymonth + '-' + myweekday;
|
|
|
}
|
|
|
//获得某月的天数
|
|
|
function getMonthDays(myMonth) {
|
|
|
var monthStartDate = new Date(nowYear, myMonth, 1);
|
|
|
var monthEndDate = new Date(nowYear, myMonth + 1, 1);
|
|
|
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
|
|
|
return days;
|
|
|
}
|
|
|
//获得本月的开始日期
|
|
|
function getMonthStartDate() {
|
|
|
var monthStartDate = new Date(nowYear, nowMonth, 1);
|
|
|
return formatDate(monthStartDate);
|
|
|
}
|
|
|
//获得本月的结束日期
|
|
|
function getMonthEndDate() {
|
|
|
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
|
|
|
return formatDate(monthEndDate);
|
|
|
}
|