var idNumber = localStorage.getItem("idNumber"); var startTime = localStorage.getItem("startTime"); var endTime = localStorage.getItem("endTime"); var proId = localStorage.getItem("proId"); var name = localStorage.getItem("name"); var subId = localStorage.getItem("subId"); var teamId = localStorage.getItem("teamId"); var exitTime = localStorage.getItem("exitTime"); var einTime = localStorage.getItem("einTime"); var gz = localStorage.getItem("gz"); var effectDate = localStorage.getItem("effectDate"); var pers = null; let form,layer; $(function() { layui.use(['layer', 'form'], function () { layer = layui.layer; form = layui.form; }); jeDate({ dateCell: "#startTime", // isinitVal:true, format: "YYYY-MM-DD", isTime: false, // isClear:false, minDate: "2015-10-19 00:00:00", maxDate: "2026-11-08 00:00:00" }); jeDate({ dateCell: "#endTime", // isinitVal:true, format: "YYYY-MM-DD", isTime: false, // isClear:false, minDate: "2015-10-19 00:00:00", maxDate: "2026-11-08 00:00:00" }); $("#startTime").val(startTime); $("#endTime").val(endTime); pers = checkPermission(); $.ajax({ url: ctxPath + '/faceContrast/getNameByIdNumber', type: "post", data: { idNumber: idNumber }, success: function(data) { leftTitle2( "合同生效日期:"+effectDate); leftTitle(startTime + "~" + endTime + "(" + data[0].name + ")"); }, error: function(e) { alert(e); } }); initDate(); initTable(); }); // 子页面调用的刷新父页面方法 function reloadData() { initDate(); initTable(); } function initDate() { //初始化Table var startTime = $("#startTime").val(); var endTime = $("#endTime").val(); $.ajax({ url: ctxPath + '/faceContrast/getWorkerAttendanceCurrentDay', type: "post", cache: false, data: { startTime: startTime, endTime: endTime, idNumber: idNumber, gz: gz, effectDate: effectDate, proId: proId, subId:subId, teamId:teamId, exitTime:exitTime, einTime:einTime }, success: function(data) { assignmentMonthTest(data, startTime, endTime); }, error: function(e) { alert(e); } }); } function responseHandler(res) { console.log(res); var datas=[]; console.log(res.total); datas.push({total:res.total,rows:res.list}); return datas[0]; } function initTable() { //初始化Table var index = top.layer.msg('数据较多,请稍等。。。', { icon: 4, time: 3000 //2秒关闭(如果不配置,默认是3秒) }); var startTime = $("#startTime").val(); var endTime = $("#endTime").val(); $("#table").bootstrapTable('destroy').bootstrapTable({ classes: 'table table-hover', url: ctxPath + '/faceContrast/getWorkerAttendanceOne', method: 'post', responseHandler: responseHandler, //处理服务器返回的数据格式 height: $(window).height() - ($(window).height() * 0.13) - 40, undefinedText: '', //当数据为 undefined 时显示的字符 queryParams: function(param) { param = { startTime: startTime, endTime: endTime, idNumber: idNumber, proId: proId, subId:subId, gz:gz, teamId:teamId, pageSize: param.limit, pageNum: param.offset / param.limit + 1 } return param; }, sortable: false, //是否启用排序 sortOrder: "asc", //排序方式 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: true, pageNumber: 1, pageSize: 50, pageList: [50, 100, 200, 300], smartDisplay: false, showColumns: false, sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) contentType: "application/x-www-form-urlencoded", minimumCountColumns: 2, //最少允许的列数 uniqueId: "no", //每一行的唯一标识,一般为主键列 columns: [{ title: '序号', formatter: function(value, row, index) { return index + 1; }, rowspan: 1, align: 'center', valign: 'middle', width: 50 }, { title: '工程名称', field: 'proName', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 230 }, { title: '考勤日期', formatter: function(value, row, index) { var cent = ""; if(row.success=="已打卡"){ cent += '' + row.currentDay + '' }else if(row.success=="未打卡"){ cent += '' + row.currentDay + ''; } return cent; }, rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 140 }, { title: '打卡状态', field: 'success', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100, cellStyle:function (value, row, index) { var cent = '休息'; if(row.success=="已打卡"){ return {css:{'color':'#3cb371'}}; }else if(row.success=="未打卡"){ return {css:{'color':'red'}}; } if(row.auditStatus=="休息"){ return cent; } return ''; }//更具条件修改某行样式 }, { title: '上班时长', field: 'workHours', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100 }, { title: '审核结果', field: 'auditStatus', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100, cellStyle:function (value, row, index) { if(row.auditStatus=="有效"){ return {css:{'color':'#3cb371'}}; }else if(row.auditStatus=="无效"){ return {css:{'color':'red'}}; }else{ return {css:{'color':'orange'}}; } return ''; }//更具条件修改某行样式 },{ title: '审核人', field: 'auditor', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100 },{ title: '审核时间', field: 'auditTime', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 150 },{ title: '打卡位置', formatter: function(value, row, index) { if (row.success=="未打卡"){ var cent = ""; return cent; }else { var cent = ""; cent += '查看定位' return cent; } }, rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100 }, { title: '打卡地址', formatter: function(value, row, index) { var address = row.address; var cent = ""; if(address =="null" || address ==null){ }else{ if(address.indexOf("null") >= 0 ){ cent += '未获取到'; }else { cent += '' + address + ''; } } return cent; }, rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100 },{ title: '打卡图片', align: "center", width: 200,formatter: function (value, row, index) { if(row.imgPath==null||row.imgPath=="null"||row.imgPath==""||row.imgPath==undefined){ return "无"; }else{ var image = '
'; return image; } } }, { title: '备注', field: 'auditRemark', rowspan: 1, align: 'center', valign: 'middle', sortable: true, width: 100 }, ], onLoadSuccess: function(data) { top.layer.close(index); $("#dataCount").html( "数量:" + data.total); }, onLoadError: function() { top.layer.close(index); $("#dataCount").html("数量:0"); $("#table").bootstrapTable('removeAll'); } }); } // 模糊查询数据、重置查询 function querys(type) { var startTime = $("#startTime").val(); var endTime = $("#endTime").val(); var dateStart = new Date(startTime); var dateEnd = new Date(endTime); var difValue = (dateEnd - dateStart) / (1000 * 60 * 60 * 24); if (endTime < startTime) { parent.layer.msg('结束时间不能小于开始时间', { icon: 2, time: 1500 }); } else { if (difValue >= 0 && difValue < 31) { initDate(); var index = top.layer.load(0, { shade: false }); // 0代表加载的风格,支持0-2 $("#query").css("background-image", "url(../../../img/info/查询点击.png)"); $("#export").css("background-image", "url(../../../img/info/导出.png)"); var opt = { url: ctxPath + '/faceContrast/getWorkerAttendanceOne', silent: true, query: { startTime: startTime, endTime: endTime, idNumber: idNumber, proId: proId, } }; $("#table").bootstrapTable('refresh', opt); top.layer.close(index); leftTitle(startTime + "~" + endTime); } else { parent.layer.msg('请将日期控制在31天之内', { icon: 2, time: 1500 }); } } } function exportBtn() { var token = localStorage.getItem("smz-token"); var name = $("#name").val(); var teamName = $("#teamName").val(); var orgId = $("#orgId").val(); var proId = $("#proId").val(); var status = $("#status").val(); var startTime = $("#startTime").val(); var endTime = $("#endTime").val(); window.location.href = ctxPath + "/faceContrast/exportWorkerAttendance?idNumber=" + idNumber + "&startTime=" + startTime + "&endTime=" + endTime+"&token=" + token; } function leftTitle(time) { console.log("time", time); $("#personnelAttendanceTitle").html("人员考勤 " + time); } function leftTitle2(eff) { console.log("eff", eff); $("#personnelAttendanceTitle2").html(eff); } Date.prototype.format = function() { var y = this.getFullYear(); var m = this.getMonth() + 1; if (m < 10) { m = "0" + m; } var d = this.getDate(); if (d < 10) { d = "0" + d; } var s = ''; s += y + '-'; // 获取年份。 s += m + "-"; // 获取月份。 s += d; // 获取日。 return (s); // 返回日期。 }; var dateArr = new Array(); function assignmentMonthTest(data, startTime, endTime) { console.log("data", data); console.log("startTime", startTime); console.log("endTime", endTime); // $("#currentDay").html(""); if (data.length > 0) { getAll(data); console.log("dateArr",dateArr); var len = dateArr.length; var cs = parseInt(len / 7); var ys = len % 7; var html = ''; $("#currentDay").html(html); if (cs == 0 && ys > 0) { html += ''; var rate = 14 * ys; $("#currentDay").css("width", rate + "%"); for (var i = 0; i < ys; i++) { var date = dateArr[i].split("-"); var auditStatus = data[i].auditStatus; var currentDay = data[i].currentDay; var id = data[i].faceId; html += ''; html += '
' + date[1] + '
'; if (auditStatus == "有效") { html += '
' + date[2] + '
'; } else if (auditStatus == "待审核") { html += '
' + date[2] + '
'; } else if (auditStatus == "无效") { console.log("currentDay:" + currentDay + ",attendStatus:" + auditStatus); html += '
' + date[2] + '
'; }else if (auditStatus == "休息") { html += '
' + date[2] + '
'; } html += ''; if (i == ys - 1) { html += ''; } } $("#currentDay").html(html); } else { $("#currentDay").css("width", "98%"); for (var i = 0; i < cs; i++) { html += ''; for (var j = 0; j < 7; j++) { var k = i * 7 + j; var auditStatus = data[k].auditStatus; var currentDay = data[k].currentDay; var id = data[k].faceId; var date = (dateArr[k] || "").split("-"); html += ''; html += '
' + date[1] + '
'; if (auditStatus == "有效") { html += '
' + date[2] + '
'; } else if (auditStatus == "待审核") { html += '
' + date[2] + '
'; } else if (auditStatus == "无效") { console.log("currentDay:" + currentDay + ",auditStatus:" + auditStatus); html += '
' + date[2] + '
'; }else if (auditStatus == "休息") { html += '
' + date[2] + '
'; } html += ''; if (j == 6) { html += ''; } } } if (ys > 0) { html += ''; for (var i = 0; i < ys; i++) { var k = cs * 7 + i; var date = dateArr[k].split("-"); var auditStatus = data[k].auditStatus; var currentDay = data[k].currentDay; var id = data[k].faceId; html += ''; html += '
' + date[1] + '
'; if (auditStatus == "有效") { html += '
' + date[2] + '
'; } else if (auditStatus == "待审核") { html += '
' + date[2] + '
'; } else if (auditStatus == "无效"){ console.log("currentDay:" + currentDay + ",auditStatus:" + auditStatus); html += '
' + date[2] + '
'; }else if (auditStatus == "休息") { html += '
' + date[2] + '
'; } html += ''; if (i == ys - 1) { html += ''; } } } $("#currentDay").html(html); } }else{ var html = '
无考勤日期
' $('#currentDay').append(html); } } function getAll(data) { dateArr = new Array(); for (var k = 0; k < data.length; k++) { dateArr.push(data[k].currentDay); } } function openImg(currentDay){ localStorage.setItem("idNumber", idNumber); localStorage.setItem("proId", proId); localStorage.setItem("currentDay", currentDay); var index = layer.open({ title: false, type: 2, content: 'facePhotoDetail.html', area: ['75%', '75%'], maxmin: false }); } function openMap(proName,name,addTime,lon,lat){ localStorage.setItem("proName", proName); localStorage.setItem("name", name); localStorage.setItem("addTime", addTime); localStorage.setItem("lon", lon); localStorage.setItem("lat", lat); var index = layer.open({ title: ['考勤定位', 'color:#fff;background-color:#1AA094;font-size:20px;text-indent: 49%'], type: 2, content: 'faceMap.html', area: ['75%', '75%'], maxmin: false }); } // 取消考勤 function cancelAttendance(currentDay,permission) { var dd=currentDay.substring(5,7); var myDate = new Date; var month=myDate.getMonth()+1; if(month-dd>1){ layer.msg("超出期限!"); return; } if (permission != "") { if ($.inArray(permission, pers) < 0) { layer.msg("无取消考勤权限"); return; } } let height = getDefaultHeight2().toFixed(0) + 'px'; let width = getDefaultWidth2().toFixed(0) + 'px'; let layerIndex = layer.open({ title: ['取消考勤', 'color:#3A81AD;font-size:22px;background-color:#eee;'], type: 1, id: 'layer-cancelAttendance-checker', maxmin: false, shade: 0.1, shadeClose: false, //开启遮罩关闭 content: cancelAttendanceHtml(name,currentDay), area: [width, height], move: false, success: function (layero, index) { $(window).resize(function () { if (autoResizeWidth2) { autoResizeWidth2(index); } if (autoResizeHeight2) { autoResizeHeight2(index); } }) }, }); } function cancelAttendanceHtml(name,attendanceDate) { return '
' + '

确定取消'+(" "+name + " " + attendanceDate+ " ")+'的考勤?

' + '
' + '
' + '
' + '' + '
' + '' + '
' + '
' + '
' + '' + '' + '
' + '
' + '
' + '
'; } //待审核的数据 function getOpen(currentDay) { let height = getDefaultHeight2().toFixed(0) + 'px'; let width = getDefaultWidth2().toFixed(0) + 'px'; let layerIndex = layer.open({ title: ['待审核', 'color:#3A81AD;font-size:22px;background-color:#eee;'], type: 1, id: 'layer-attendanceCard-checker', maxmin: false, shade: 0.1, shadeClose: false, //开启遮罩关闭 content: openHtml(name,currentDay), area: [width, height], move: false, success: function (layero, index) { form.render(); $(window).resize(function () { if (autoResizeWidth2) { autoResizeWidth2(index); } if (autoResizeHeight2) { autoResizeHeight2(index); } }) }, }); } function openHtml(name,attendanceDate) { return '
' + '

'+name+''+attendanceDate+'

' + '
' + '
' + '
' + '' + '
' + '' + '' + '
' + '
' + '
' + '' + '
' + '' + '
' + '
' + '
' + '' + '' + '
' + '
' + '
' + '
'; } // 提交数据 function requestAddOrEditHtml(currentDay) { let url,data,reason; let workHours = $('input[name="workHours"]:checked').val(); let unauditedCardReason = $('textarea[name="unauditedCardReason"]').val(); reason = unauditedCardReason; url = ctxPath + '/faceContrast/unauditedCard'; data = { idNumber:idNumber, name:name, proId:proId, teamId: teamId, subId: subId, currentDay:currentDay, workHours:workHours, unauditedCardReason:unauditedCardReason }; if(reason){ let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); $.ajax({ type: "post", url: url, contentType: "application/json; charset=utf-8", data: JSON.stringify(data), dataType: "json", success: function (data) { layer.close(loadingMsg); // 关闭提示层 if (data.res === 1) { parent.layer.msg('操作成功', {icon: 1}); closePage(1); } else { parent.layer.msg( data.resMsg , {icon: 2}); } }, error: function (jqXHR, textStatus, errorThrown) { layer.close(loadingMsg); layer.msg('数据上传发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000}); } }); }else{ layer.msg("请填写原因"); } } // 考勤补卡 function makeAttendanceCard(currentDay,permission) { // if (permission != "") { // if ($.inArray(permission, pers) < 0) { // layer.msg("无考勤补卡权限"); // } // } var dd=currentDay.substring(5,7); var myDate = new Date; var month=myDate.getMonth()+1; if(month-dd>1){ layer.msg("超出补卡期限!"); return; } let height = getDefaultHeight2().toFixed(0) + 'px'; let width = getDefaultWidth2().toFixed(0) + 'px'; let layerIndex = layer.open({ title: ['考勤补卡', 'color:#3A81AD;font-size:22px;background-color:#eee;'], type: 1, id: 'layer-attendanceCard-checker', maxmin: false, shade: 0.1, shadeClose: false, //开启遮罩关闭 content: attendanceCardHtml(name,currentDay), area: [width, height], move: false, success: function (layero, index) { form.render(); $(window).resize(function () { if (autoResizeWidth2) { autoResizeWidth2(index); } if (autoResizeHeight2) { autoResizeHeight2(index); } }) }, }); } function attendanceCardHtml(name,attendanceDate) { return '
' + '

'+name+''+attendanceDate+'

' + '
' + '
' + '
' + '' + '
' + // '' + '' + '
' + '
' + '
' + '' + '
' + '' + '
' + '
' + '
' + '' + '' + '
' + '
' + '
' + '
'; } // 提交数据 function requestAddOrEdit(currentDay,type) { let url,data,reason; if(type == '1'){//补卡 let workHours = $('input[name="workHours"]:checked').val(); let makeCardReason = $('textarea[name="makeCardReason"]').val(); reason = makeCardReason; url = ctxPath + '/faceContrast/makeAttendanceCard'; data = { idNumber:idNumber, name:name, proId:proId, teamId: teamId, subId: subId, currentDay:currentDay, workHours:workHours, makeCardReason:makeCardReason }; }else{//取消打卡 let cancelCardReason = $('textarea[name="cancelCardReason"]').val(); reason = cancelCardReason; url = ctxPath + '/faceContrast/cancelAttendance'; data = { idNumber:idNumber, name:name, proId:proId, teamId: teamId, subId: subId, currentDay:currentDay, cancelCardReason:cancelCardReason }; } if(reason){ let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0}); $.ajax({ type: "post", url: url, contentType: "application/json; charset=utf-8", data: JSON.stringify(data), dataType: "json", success: function (data) { layer.close(loadingMsg); // 关闭提示层 if (data.res === 1) { parent.layer.msg('操作成功', {icon: 1}); closePage(1); } else { parent.layer.msg( data.resMsg , {icon: 2}); } }, error: function (jqXHR, textStatus, errorThrown) { layer.close(loadingMsg); layer.msg('数据上传发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000}); } }); }else{ layer.msg("请填写原因"); } } function closePage(type) { closePage2(); if (type === 1) { reloadData(); } } function closePage2() { layer.closeAll(); //再执行关闭 }