`;
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 downloadClickLately(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: ctxPath + "/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 downloadClickAllLately() {
//列表
loadingMsg = top.layer.msg('加载中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
//列表
let map = getAllCheckedValueStar();
if (map.get("checkedArr").length > 0) {
var listFile = map.get("checkedArr");
$.ajax({
type: 'POST',
async: true, // 默认异步true,false表示同步
url: ctxPath + "/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("token");
let url = ctxPath + "/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 = ctxPath + '/login.html';
});
}else {
// 其他错误处理
console.error('Error downloading file:', this.status);
layer.msg('下载文件失败,请稍后再试', {icon: 5, time: 2000});
}
};
}
// 获取复选框选中的值
function getAllCheckedValueStar() {
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: ctxPath + "/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
});
}
}