var token = localStorage.getItem("smz-token"); let loadingMsg; var form; var element; var example; layui.use(['layer', 'form', 'element', 'laydate'], function () { var layer = layui.layer; form = layui.form; element = layui.element; form.render(); init(); //查询 $("#searchBt").click(function () { example.ajax.reload(); }); $("#resetBt").click(function () { $("#fileName").val(""); example.ajax.reload(); }); }); /** * 查询页面tab * @param value */ function init() { example = exampleFile = $('#dt-table').DataTable({ "sort": false, "searching": false, "processing": true, //加载数据时显示进度状态 "serverSide": true, //表头固定 "fixedHeader": true, "scrollX": "500px", "scrollY": "650px", "scrollCollapse": true, "language": { "url": "../../../js/plugin/datatables/Chinese.lang" }, "ajax": { "url": smz_ht_url + "/salaryFile/getSalaryFileByQueryType", "type": "post", "data": function (d) { var months = $("#months").val(); if(months ==""){ months = times2[0]+"-" +times2[1] +" - " +times1[0]+"-" +times1[1] } var startMonth=""; var endMonth=""; if(months){ startMonth = months.split(" - ")[0]; endMonth = months.split(" - ")[1]; } d.queryType = 1; d.startMonth = startMonth; d.endMonth = endMonth; d.fileName = $("#fileName").val(); }, "error": function (xhr, textStatus, errorThrown) { var msg = xhr.responseText; console.log(msg); var response = JSON.parse(msg); var code = response.code; var message = response.message; if (code == 400) { layer.msg(message); } else if (code == 401) { localStorage.removeItem("smz-token"); layer.msg("token过期,请先登录", {shift: -1, time: 1000}, function () { location.href = smz_ht_url + '/login.html'; }); } else if (code == 403) { console.log("未授权:" + message); layer.msg('未授权'); } else if (code == 500) { console.log('系统错误:' + message); } } }, "drawCallback": function () { // alert( '表格重绘了' ); var thisDataTable = $('#dt-table').DataTable(); $(".pagination").append("
  • " + "" + "确认
  • "); //点击按钮跳转指定页数 $('#dataTable-btn').click(function (e) { if ($("#changePage").val() && $("#changePage").val() > 0) { var redirectpage = $("#changePage").val() - 1; } else { var redirectpage = 0; } thisDataTable.page(redirectpage).draw('page'); }); //敲击回车键跳转指定页数 $("#changePage").keypress(function (e) { if (event.keyCode == 13) { if ($("#changePage").val() && $("#changePage").val() > 0) { var redirectpage = $("#changePage").val() - 1; } else { var redirectpage = 0; } thisDataTable.page(redirectpage).draw('page'); } }); }, "dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>", "columns": [ { "width": "3%", "data": "", "render": function (data, type, row) { let node = '' + ''; return node; }, "sClass": "text-center" }, { width: '4%', data: function (row, type, set, meta) { var c = meta.settings._iDisplayStart + meta.row + 1; return c; } }, { "data": "", "defaultContent": "", "orderable": false, "width": "50%", "render": function (data, type, row) { var fileId = row["fileId"]; var filePath = row["filePath"]; var fileName = row["fileName"]; var type = row["type"]; var isStar = row["isStar"]; var month = row["month"]; var html = ""; //文件夹,可以点击 html += `
    `; if(filePath == "" || filePath == null){ html += `
    `; }else{ html += `
    `; } // html += `
    `; if (type == "支付表") { html += `  `; } else { html += `  `; } html += `${fileName}`; console.log(isStar) if (isStar == 1) { html += ``; } html += "
    "; html += ` `; if (isStar != 1) { html += `` }else{ html += `` } html += `
    `; return html; } }, {"data": "type", "defaultContent": ""}, {"data": "month", "defaultContent": ""}, {"data": "proName", "defaultContent": ""}, {"data": "subName", "defaultContent": ""} ], "drawCallback": function (settings) { // 使用 DataTable 实例来获取表格 body var api = this.api(); // 这里的 `this` 是 DataTable 实例 $('td', api.table().body()).hover( function () { $(this).find('.overlay').show(); }, function () { $(this).find('.overlay').hide(); } ); } }); } // 设置表格全选(disabled不选) $(document).on("click", ".checkAll", function () { if ($(this).prop("checked")) { var disable = $('.checkOne'); for (let i = 0; i < disable.length; i++) { if (!$(disable[i]).prop("disabled")) { $(disable[i]).prop("checked", true); } } } else { $(".checkOne").prop("checked", false); } }) function downloadClickMe(fileId,month) { //列表 loadingMsg = top.layer.msg('加载中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']}); var listFile = []; listFile.push({ "foreignId": fileId, "month": month }); $.ajax({ type: 'POST', async: true, // 默认异步true,false表示同步 url: smz_ht_url + "/salaryFile/checkSalaryFileIsActive", // 请求地址 contentType: "application/json; charset=utf-8", dataType: 'json', // 服务器返回数据类型 data: JSON.stringify({ type: "3", listFile: listFile }), //获取提交的表单字段 success: function (data) { if (data.code == 200) { exportFullFile(listFile) } else { top.layer.close(loadingMsg); layer.alert(data.msg); } }, error: function (XMLHttpRequest, textStatus, e) { top.layer.close(loadingMsg); layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false}); } }); } //批量下载 function downloadClickAllMe() { //列表 loadingMsg = top.layer.msg('加载中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']}); //列表 let map = getAllCheckedValueMe(); if (map.get("checkedArr").length > 0) { var listFile = map.get("checkedArr"); $.ajax({ type: 'POST', async: true, // 默认异步true,false表示同步 url: smz_ht_url + "/salaryFile/checkSalaryFileIsActive", // 请求地址 contentType: "application/json; charset=utf-8", dataType: 'json', // 服务器返回数据类型 data: JSON.stringify({ type: "3", listFile: listFile }), //获取提交的表单字段 success: function (data) { if (data.code == 200) { exportFullFile(listFile) } else { top.layer.close(loadingMsg); layer.alert(data.msg); } }, error: function (XMLHttpRequest, textStatus, e) { top.layer.close(loadingMsg); layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false}); } }); } else if (map.get("checkedArr").length == 0) { top.layer.close(loadingMsg); layer.alert("请勾选数据", {icon: 0}) } else { top.layer.close(loadingMsg); layer.alert("系统错误,请联系管理员", {icon: 2}) } } function exportFullFile(listFile) { var token = localStorage.getItem("smz-token"); let url = smz_ht_url + "/salaryFile/exportSalaryFile"; let xhr = new XMLHttpRequest(); xhr.open("post", url, true); //设置xhr请求的超时时间 //设置响应返回的数据格式 xhr.responseType = "blob"; // 转换流 // 设置请求头 xhr.setRequestHeader("Authorization", `Bearer ${token}`); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequestHeader('token', token); const data = { type: "3", listFile: listFile }; const str = JSON.stringify(data); xhr.send(str) //构造表单数据 xhr.onload = function () { if (this.status === 200) { let blob = this.response; var a = document.createElement("a"); var url = window.URL.createObjectURL(blob); a.href = url; // 假设服务器在响应中设置了 Content-Disposition 头部,可以通过此方式获取文件名 var disposition = xhr.getResponseHeader('Content-Disposition'); var filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/; var match = filenameRegex.exec(disposition); var filename = match ? decodeURIComponent(match[1]) : 'unknown'; a.download = filename || 'downloadedFile.xlsx'; // 默认文件名 a.click(); top.layer.close(loadingMsg); } else if (this.status === 401) { localStorage.removeItem("token"); layer.msg('用户登录过期,请重新登录', {icon: 5, time: 2000}, function () { location.href = smz_ht_url + '/login.html'; }); }else { // 其他错误处理 console.error('Error downloading file:', this.status); layer.msg('下载文件失败,请稍后再试', {icon: 5, time: 2000}); } }; } // 获取复选框选中的值 function getAllCheckedValueMe() { let checkedArr = []; let map = new Map(); $('input[type="checkbox"]:checked').each(function () { if ($(this).val() !== 'on') { const foreignId = $(this).val(); const month = $(this).attr("month"); // 将信息存入对象,并将对象添加到数组中 checkedArr.push({ "foreignId": foreignId, "month": month }); } }); map.set('checkedArr', checkedArr); return map; } //标星 function starClick(fileId,isStar) { var index = layer.confirm("确认星标吗?",{icon: 0},function(){ $.ajax({ type: 'POST', async: true, // 默认异步true,false表示同步 url: smz_ht_url + "/salaryFile/updateFileViewStar", // 请求地址 // contentType: "application/json; charset=utf-8", contentType: "application/x-www-form-urlencoded", dataType: 'json', // 服务器返回数据类型 data: { fileId: fileId, isStar:isStar } , //获取提交的表单字段 success: function (data) { layer.close(loadingMsg); if (data.code == 200) { layer.msg("修改成功", { icon: 1 }); //重载表格 example.ajax.reload(); //关闭弹框 layer.close(index); //再执行关闭 } else { layer.alert(data.msg); } }, error: function (XMLHttpRequest, textStatus, e) { top.layer.close(loadingMsg); layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false}); } }); }); } function fileMiss(path) { console.log(path); layer.msg("文件未转换成功") } function filePreView(url,fileName,time,fileId) { if(url != "" && url != null){ localStorage.setItem("filePaths", url); localStorage.setItem("fileNames", fileName); localStorage.setItem("fileTimes", time); localStorage.setItem("fileId", fileId); var height = '525px'; var width = '800px'; var index = layer.open({ title: ["查看", 'color:#3B70A1;background-color:#E8ECEB;font-size:20px'], type: 2, content: '../publicFileViewNew.html', area: [width, height], maxmin: false }); } }