1、随机数
getRandom (min, max) {
return Math.floor(Math.random() * (max - min)) + min
},
2、日期格式化
export function dateFormat(date, step = 0, format = '', type = '') {
let dateTime = new Date(date);
let result = '';
switch (type) {
case 'day': {
result = new Date(dateTime.getTime() + step * 3600 * 1000 * 24);
break;
}
case 'month': {
result = new Date(dateTime.getTime() + step * 3600 * 1000 * 24 * 31);
break;
}
default: {
result = new Date(dateTime.getTime() + step * 3600 * 1000);
}
}
var o = {
"M+": result.getMonth() + 1,
"d+": result.getDate(),
"h+": result.getHours(),
"m+": result.getMinutes(),
"s+": result.getSeconds(),
"q+": Math.floor((result.getMonth() + 3) / 3),
"S": result.getMilliseconds()
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (result.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return format == '' ? result : format
}
3、下载文件
const doenloadFile = (url, data) => request({
url,
method: 'post',
data,
responseType: 'blob'
});
export function DOWNLOAD(url, params) {
Spin.show({
render: h => {
return h("div", [
h('Icon', {
"class": "spin-icon-load",
"style": "animation: ani-demo-spin 1s linear infinite;",
props: {
type: "ios-loading",
size: "30"
}
}),
h("div", "加载中")
])
}
});
doenloadFile(url, params).then(res => {
var blob = new Blob([res.data])
let temp = res.headers['content-disposition'].split('filename=')[1];
const fileName = decodeURIComponent(temp)
var blob = new Blob([res.data])
var downloadElement = document.createElement('a');
var href = window.URL.createObjectURL(blob);
downloadElement.href = href;
downloadElement.download = fileName;
document.body.appendChild(downloadElement);
downloadElement.click();
document.body.removeChild(downloadElement);
window.URL.revokeObjectURL(href);
Spin.hide()
})
}