yn_hxy_web/hxy-web/js/dataStatistics/specialPatrol/specialPatrolList.js

230 lines
5.4 KiB
JavaScript
Raw Normal View History

2024-08-20 21:44:41 +08:00
var currentDate = new Date();
// 获取当前月份的第一天
var firstDay = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);
// 获取下一个月的第一天
var nextMonthFirstDay = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 1);
// 获取当前月份的天数 //本月多少天
var daysInMonth = Math.floor((nextMonthFirstDay.getTime() - firstDay.getTime()) / (24 * 60 * 60 * 1000));
// console.log(daysInMonth);
var pers = []
2024-08-21 13:21:52 +08:00
var table, form, laydate, excel;
2024-08-21 13:21:52 +08:00
var excelData = [];
var cols = [],
tableDatas = [];
layui.use(['form', 'layer', 'table', 'laydate', 'excel'], function() {
2024-08-20 21:44:41 +08:00
excel = layui.excel;
table = layui.table;
form = layui.form;
laydate = layui.laydate;
//初始化日期选择框
laydate.render({
2024-08-20 21:44:41 +08:00
elem: '#makeMonth',
type: 'month',
value: (new Date()).toISOString().substr(0, 7), // 获取当前日期并转换为'yyyy-MM'格式
btns: ['now', 'confirm']
});
2024-08-20 21:44:41 +08:00
init();
});
2024-08-20 21:44:41 +08:00
function init() {
let userName = $('#userName').val();
let proName = $('#proName').val();
let yjName = $('#yjName').val();
let makeMonth = $('#makeMonth').val();
// 静态数据
var tableData = [];
//保存表头
var col = [
[{
title: '序号',
field: 'zizeng',
align: 'center',
type: 'numbers'
},
{
field: 'userName',
title: '姓 名',
align: 'center',
width: '80'
},
{
field: 'proName',
title: '管辖线路名称',
align: 'center',
width: '200'
},
{
field: 'yjName',
title: '所属运检站',
align: 'center',
width: '200'
},
{
field: 'special',
title: '总计(天)',
align: 'center',
width: '100'
},
]
]
2024-08-20 21:44:41 +08:00
$.ajax({
type: 'POST',
url: PATH_URL + '/attendance/getSpecialPatrolList', // 请求地址
data: {
"userName": userName,
"proName": proName,
"yjName": yjName,
"makeMonth": makeMonth,
"fgsId": "26"
}, //获取提交的表单字段
success: function(data) {
for (var i = 0; i < data.length; i++) {
var json = {
'userName': data[i].userName,
'proName': data[i].proName,
'yjName': data[i].yjName,
'special': data[i].special,
'makeMonth': data[i].makeMonth,
'proId': data[i].proId
}
var spMakeList = data[i].spMakeList;
for (var j = 0; j < spMakeList.length; j++) {
json[`${ spMakeList[j].currDay }`] = spMakeList[j].isAtt;
}
tableData.push(json)
}
console.log('tableData', tableData)
if (data.length > 0) {
for (var i = 0; i < data[0].spMakeList.length; i++) {
var spMake = data[0].spMakeList[i];
var json = {
field: `${ spMake.currDay }`,
title: `${ spMake.currDay }`,
align: 'center'
}
col[0].push(json);
}
}
d = table.render({
id: 'layui_table',
elem: '#table',
page: true, //开启分页
skin: 'line', // 表格样式
cols: col,
2024-08-21 13:21:52 +08:00
data: tableData,
title: '特勤考勤台账' //导出数据excel的表名称
2024-08-20 21:44:41 +08:00
});
2024-08-21 13:21:52 +08:00
console.log("col", col)
console.log("tableData", tableData)
cols = col[0]
tableDatas = tableData;
// // 使用 cols 和 data 构造一个包含表头的新数组
// excelData.push(col[0].map(function(item) {
// return item.title;
// })); // 构建表头行
// tableData.forEach(function(row, index) {
// var newRow = [];
// col[0].forEach(function(colItem) {
// if (colItem.type === 'numbers') {
// newRow.push(index + 1); // 序号从 1 开始
// } else {
// newRow.push(row[colItem.field]); // 添加对应字段的值
// }
// });
// excelData.push(newRow); // 将新行添加到 excelData
// });
// console.log(excelData); // 输出结果,检查是否正确
2024-08-20 21:44:41 +08:00
},
error: function(XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {
icon: 16,
scrollbar: false
});
top.layer.close(addLoadingMsg); //再执行关闭
}
2024-08-20 21:44:41 +08:00
});
}
2024-08-20 21:44:41 +08:00
//查询
function queryClick() {
init();
}
2024-08-20 21:44:41 +08:00
//重置
function resetClick() {
$('#userName').val("");
$('#proName').val("");
$('#yjName').val("");
2024-08-20 21:44:41 +08:00
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
if (month < 10) {
month = '0' + month;
}
var currentMonth = year + '-' + month;
$('#makeMonth').val(currentMonth);
init();
}
//导出
2024-08-20 21:44:41 +08:00
function exportData() {
2024-08-21 13:21:52 +08:00
const XLSX = window.XLSX;
// 创建一个新的工作簿
var workbook = XLSX.utils.book_new();
// 创建一个新的工作表
var worksheet = XLSX.utils.aoa_to_sheet([
['特勤考勤台账'], // 标题行
cols.map(function(item) {
return item.title;
}), // 表头行
]);
// 添加数据行
tableDatas.forEach(function(row, index) {
var newRow = [];
cols.forEach(function(colItem) {
if (colItem.type === 'numbers') {
newRow.push(index + 1); // 序号从 1 开始
} else {
newRow.push(row[colItem.field]); // 添加对应字段的值
}
});
XLSX.utils.sheet_add_aoa(worksheet, [newRow], {
origin: -1
}); // 添加数据行
});
// 设置合并单元格
worksheet['!merges'] = [{
s: {
r: 0,
c: 0,
},
e: {
r: 0,
c: cols.length - 1,
}
} // 合并 A1 到 E1 单元格
];
// 添加工作表到工作簿
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 导出 Excel 文件
XLSX.writeFile(workbook, '特勤考勤台账.xlsx');
// console.log(XLSX);
// layui.excel.exportExcel(excelData, '特勤考勤台账.xlsx', 'xlsx')
2024-08-20 21:44:41 +08:00
// table.exportFile(d.config.id, excelData, 'xlsx');
}