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

177 lines
4.3 KiB
JavaScript

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 = []
var table, form, laydate,excel;
var d;
var excelData=[];
layui.use(['form', 'layer', 'table', 'laydate','excel'], function() {
excel = layui.excel;
table = layui.table;
form = layui.form;
laydate = layui.laydate;
//初始化日期选择框
laydate.render({
elem: '#makeMonth',
type: 'month',
value: (new Date()).toISOString().substr(0, 7), // 获取当前日期并转换为'yyyy-MM'格式
btns: ['now', 'confirm']
});
init();
});
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'
},
]
]
$.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,
data: tableData,
title: '特勤考勤台账'//导出数据excel的表名称
});
console.log("col",col)
console.log("tableData",tableData)
excelData.push(['特勤考勤台账']);
// 使用 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); // 输出结果,检查是否正确
},
error: function(XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {
icon: 16,
scrollbar: false
});
top.layer.close(addLoadingMsg); //再执行关闭
}
});
}
//查询
function queryClick() {
init();
}
//重置
function resetClick() {
$('#userName').val("");
$('#proName').val("");
$('#yjName').val("");
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();
}
//导出
function exportData() {
layui.excel.exportExcel(excelData, '特勤考勤台账.xlsx', 'xlsx')
// table.exportFile(d.config.id, excelData, 'xlsx');
}