let form, layer, table, laydate, tableIns; let pageNum = 1, limitSize = 20; // 默认第一页,分页数量为20 layui.use(['form', 'layer', 'table', 'laydate'], function () { form = layui.form; layer = layui.layer; table = layui.table; laydate = layui.laydate; //日期范围 laydate.render({ elem: '#startTime', type: 'date', range: '~', format: 'yyyy-MM-dd', value: getCurrentWeekRange() }); pages(1, 20, 1); }) function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); $.ajax({ url: dataUrl + "proteam/pot/todayTask/dutyStatistics?token=" + token, data: params, type: 'POST', async: false, success: function (result) { if (result.code === 200) { if (result.data) { initTable(result.data, result.limit, result.curr) laypages(result.count, result.curr, result.limit) } } else if (result.code === 500) { layer.alert(result.msg, { icon: 2 }) } else if (result.code === 401) { logout(1); } }, error: function () { } }); } function laypages(total, page, limit) { layui.use(['laypage'], function () { let laypage = layui.laypage; laypage.render({ elem: 'voi-page', count: total, curr: page, limit: limit, limits: [20, 50, 100], layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], groups: 5, jump: function (obj, first) { if (!first) { pageNum = obj.curr, limitSize = obj.limit; pages(obj.curr, obj.limit, null); } } }); }) } /*初始化表格*/ function initTable(dataList, limit, page) { let loadingMsg = layer.msg("数据加载中,请稍候...", { icon: 16, scrollbar: false, time: 0, }); tableIns = table.render({ id: 'todayTaskTable', elem: "#todayTaskTable", height: "full-150", data: dataList, cols: [ [ //表头 { title: "序号", width: '5%', unresize: true, align: "center", templet: function (d) { return (page - 1) * limit + d.LAY_NUM; } }, { field: "userName", title: "值班员姓名", width: '10%', unresize: false, align: "center", }, { field: "totalAllocation", title: "分配任务总数", width: '15%', unresize: false, align: "center", }, { field: "inspectionNumber", title: "巡视数", width: '10%', unresize: false, align: "center", }, { field: "inspectionRate", title: "巡视完成率", width: '10%', unresize: false, align: "center", }, { field: "voiNum", title: "发现违章数", width: '10%', unresize: false, align: "center", }, { field: "warningQuantity", title: "分配预警数", width: '10%', unresize: false, align: "center", }, { field: "warningProcessingQuantity", title: "预警处理数", width: '10%', unresize: false, align: "center", }, { field: "warningRate", title: "预警处理率", width: '10%', unresize: false, align: "center", }, { field: "attendanceDays", title: "出勤天数", width: '10%', unresize: false, align: "center", }, ], ], limit: limit, done: function (res, curr, count) { layer.close(loadingMsg); }, }); } // 获取参数 function getReqParams(page, limit, type) { let obj = {}; if (!type) { obj = { page: page + "", limit: limit + "", userName: $('#userName').val(), workDay: $('#startTime').val() }; } else { obj = { page: 1, limit: limit, userName: $('#userName').val(), workDay: getCurrentWeekRange() }; } return obj; } // 查询 function query() { const startTime = $("#startTime").val().split(' ~ ')[0], endTime = $("#startTime").val().split(' ~ ')[1]; let flag = isOver31Days(startTime,endTime); if(flag){ return layer.msg('查询的时间间隔不能超过31天', { icon: 2, time: 2000 }); } pages(1, limitSize); } // 导出值班员值班情况统计 function exportData() { const startTime = $("#startTime").val().split(' ~ ')[0], endTime = $("#startTime").val().split(' ~ ')[1]; let flag = isOver31Days(startTime,endTime); if(flag){ return layer.msg('导出的时间间隔不能超过31天', { icon: 2, time: 2000 }); } let url = dataUrl + 'proteam/pot/todayTask/dutyStatisticsExportData', params = '?userName=' + $('#userName').val() + '&workDay=' + $('#startTime').val(), fileName = getCurrentWeekRange().replace(' ~ ','~') + '值班统计情况.xlsx'; commonExportFile(url + params,token,fileName); } function isOver31Days(dateStr1, dateStr2) { // 将字符串日期转换为Date对象 const date1 = new Date(dateStr1); const date2 = new Date(dateStr2); // 计算两个日期的时间差(毫秒) const timeDiff = Math.abs(date2.getTime() - date1.getTime()); // 将毫秒转换为天数(1天 = 24 * 60 * 60 * 1000毫秒) const dayDiff = timeDiff / (1000 * 60 * 60 * 24); // 判断是否超过1天 return dayDiff > 31; }