jjsp_web/bns/js/device/export.js

139 lines
4.2 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.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;
}