141 lines
4.3 KiB
JavaScript
141 lines
4.3 KiB
JavaScript
let table;
|
|
let form;
|
|
let pageNum, limitSize;
|
|
layui.use(['layer', 'form', 'element','laydate'], function () {
|
|
//初始化下拉选
|
|
form = layui.form;
|
|
form.render(); //更新全部
|
|
laydate = layui.laydate;
|
|
laydate.render({
|
|
elem: '#createTime',//指定元素 元素选择器
|
|
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
|
|
trigger: 'click',
|
|
range: true,
|
|
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
|
|
// btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
|
|
});
|
|
|
|
laydate.render({
|
|
elem: '#updateTime',//指定元素 元素选择器
|
|
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
|
|
trigger: 'click',
|
|
range: true,
|
|
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
|
|
// btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
|
|
});
|
|
|
|
laydate.render({
|
|
elem: '#times',//指定元素 元素选择器
|
|
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
|
|
trigger: 'click',
|
|
range: true,
|
|
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
|
|
// btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
|
|
});
|
|
|
|
|
|
$('#export').click(function () {
|
|
var tableName = $("#tableName").val();
|
|
console.log(tableName);
|
|
var nowDay=getDay();
|
|
if(tableName){
|
|
exportData(tableName,nowDay);
|
|
}else{
|
|
let nums=1;
|
|
var selectElement = document.getElementById('tableName');
|
|
var selectedValues = [];
|
|
for (var i = 0; i < selectElement.options.length; i++) {
|
|
if(selectElement.options[i].value){
|
|
if(selectElement.options[i].value){
|
|
exportData(selectElement.options[i].value,nowDay);
|
|
sleep(5);
|
|
nums++;
|
|
selectedValues.push(selectElement.options[i].value);
|
|
console.log(selectElement.options[i].value);
|
|
console.log(nums);
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
console.log(selectedValues.join("@"));
|
|
}
|
|
});
|
|
})
|
|
|
|
function sleep(seconds) {
|
|
return new Promise(resolve => setTimeout(resolve, seconds * 1000));
|
|
}
|
|
|
|
//导出
|
|
function exportData(table,nowDay) {
|
|
let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
|
|
let url = dataUrl + "proteam/pot/export/exportDataExcel?" + setData(getReqParams(table)) + '&token='+token;
|
|
|
|
let xhr = new XMLHttpRequest();
|
|
let a = document.createElement("a");
|
|
xhr.open("get", url, true);
|
|
xhr.responseType = "blob"; // 转换流
|
|
xhr.setRequestHeader("encrypt",
|
|
sm3(JSON.stringify(
|
|
getReqParams(pageNum, limitSize)
|
|
)));
|
|
xhr.setRequestHeader('encryption','encryption');
|
|
xhr.setRequestHeader('token',token);
|
|
xhr.onload = function () {
|
|
layer.close(loadingMsg);
|
|
if (this.status === 200) {
|
|
let url = window.URL.createObjectURL(new Blob([this.response]))
|
|
let link = document.createElement('a')
|
|
link.style.display = 'none'
|
|
link.href = url
|
|
link.setAttribute('download', table+"-"+nowDay+".xlsx")
|
|
document.body.appendChild(link)
|
|
link.click()
|
|
// 释放URL对象所占资源
|
|
window.URL.revokeObjectURL(url)
|
|
// 用完即删
|
|
document.body.removeChild(link)
|
|
} else {
|
|
layer.msg("数据发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
|
|
}
|
|
};
|
|
xhr.send();
|
|
}
|
|
function getReqParams(tableName) {
|
|
let createTime=$("#createTime").val();
|
|
let updateTime=$("#updateTime").val();
|
|
let times=$("#times").val();
|
|
var createStartTime="";
|
|
var createEndTime="";
|
|
var updateStartTime="";
|
|
var updateEndTime="";
|
|
var startTime="";
|
|
var endTime="";
|
|
if(createTime){
|
|
createStartTime=createTime.split(" - ")[0];
|
|
createEndTime=createTime.split(" - ")[1];
|
|
}
|
|
if(updateTime){
|
|
updateStartTime=updateTime.split(" - ")[0];
|
|
updateEndTime=updateTime.split(" - ")[1];
|
|
}
|
|
if(times){
|
|
startTime=times.split(" - ")[0];
|
|
endTime=times.split(" - ")[1];
|
|
}
|
|
|
|
let obj = {};
|
|
obj = {
|
|
type:tableName,
|
|
createStartTime:createStartTime,
|
|
createEndTime:createEndTime,
|
|
updateStartTime:updateStartTime,
|
|
updateEndTime:updateEndTime,
|
|
startTime:startTime,
|
|
endTime:endTime
|
|
};
|
|
return obj;
|
|
|
|
}
|