hn_cloud_web/smz-screen/js/worker/workerAttendance/personnelAttendance.js

528 lines
15 KiB
JavaScript
Raw Normal View History

2025-11-27 16:55:35 +08:00
var name = localStorage.getItem("name");
var idNumber = localStorage.getItem("idNumber");
var startTime = localStorage.getItem("startTime");
var endTime = localStorage.getItem("endTime");
var proId = localStorage.getItem("proId");
$(function() {
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",
okfun: function(val) {
//点击确定后的回调
var startDate = new Date($('#startTime').val());
var endDate = new Date($('#endTime').val());
if(startDate != null) {
if(endDate != null) {
if(startDate > endDate) {
parent.layer.msg('开始时间不能大于结束时间', {
icon: 2,
time: 1500
});
$("#startTime").val(getNowTime);
$("#endTime").val(getNowTime);
}
}
}
},
choosefun: function(val) {
var startDate = new Date($('#startTime').val());
var endDate = new Date($('#endTime').val());
if(startDate != null) {
if(endDate != null) {
if(startDate > endDate) {
parent.layer.msg('开始时间不能大于结束时间', {
icon: 2,
time: 1500
});
$("#startTime").val(getNowTime);
$("#endTime").val(getNowTime);
}
}
}
}
});
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",
okfun: function(val) {
//点击确定后的回调
var startDate = new Date($('#startTime').val());
var endDate = new Date($('#endTime').val());
if(startDate != null) {
if(endDate != null) {
if(endDate < startDate) {
parent.layer.msg('结束时间不能小于开始时间', {
icon: 2,
time: 1500
});
$("#startTime").val(getNowTime);
$("#endTime").val(getNowTime);
}
}
}
},
choosefun: function(val) {
var startDate = new Date($('#startTime').val());
var endDate = new Date($('#endTime').val());
if(startDate != null) {
if(endDate != null) {
if(endDate < startDate) {
parent.layer.msg('结束时间不能小于开始时间', {
icon: 2,
time: 1500
});
$("#startTime").val(getNowTime);
$("#endTime").val(getNowTime);
}
}
}
}
});
$("#startTime").val(startTime);
$("#endTime").val(endTime);
leftTitle(startTime + "~" + endTime);
initDate();
initTable();
$("#personnelAttendanceContent div .day").click(function() {
constructionPersonnelInformation();
});
})
function constructionPersonnelInformation(currentDay) {
var height = '800px';
var width = '1400px';
localStorage.setItem("idNumber", idNumber);
localStorage.setItem("currentDay", currentDay);
var index = top.layer.open({
title: false,
type: 2,
content: '../../page/worker/workerAttendance/constructionPersonnelInformation.html',
area: [width, height],
maxmin: false
});
}
function initDate() {
//初始化Table
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
$.ajax({
url: dataUrl + 'workerAttendance/getWorkerAttendanceCurrentDay',
type: "post",
cache: false,
data: {
startTime: startTime,
endTime: endTime,
idNumber: idNumber,
proId: proId,
},
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
$("#table").bootstrapTable({
classes: 'table table-hover',
url: dataUrl + 'workerAttendance/getWorkerAttendanceOne',
method: 'post',
responseHandler: responseHandler, //处理服务器返回的数据格式
height: $(window).height() - ($(window).height() * 0.13) - 40,
undefinedText: '', //当数据为 undefined 时显示的字符
queryParams: function(param) {
param = {
startTime: $("#startTime").val(),
endTime: $("#endTime").val(),
idNumber: localStorage.getItem("idNumber"),
proId: proId,
pageSize: param.limit,
pageNum: param.offset / param.limit + 1,
sort: param.sort, //排序列名
sortOrder: param.order //排位命令descasc
}
return param;
},
sortable: true, //是否启用排序
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: '考勤日期',
field: 'currentDay',
formatter: function(value, row, index) {
var cent = "";
cent += '<a href="#" style="color: dodgerblue;" onclick="openImg(\'' + row.currentDay + '\')">' + row.currentDay + '</a>'
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) {
console.log(row.success);
if(row.success=="已打卡"){
return {css:{'color':'greenyellow'}};
}else if(row.success=="未打卡"){
return {css:{'color':'red'}};
}
return '';
}//更具条件修改某行样式
},
{
title: '上班时长',
field: 'workHours',
rowspan: 1,
align: 'center',
valign: 'middle',
sortable: true,
width: 100
},
{
title: '加班时长',
field: 'overHours',
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) {
console.log(row.auditStatus);
if(row.auditStatus=="有效"){
return {css:{'color':'greenyellow'}};
}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: 140
},{
title: '打卡位置',
field: '',
formatter: function(value, row, index) {
var cent = "";
cent += '<a href="#" style="color: dodgerblue;" onclick="openMap(\'' + row.proName + '\',\'' + row.name + '\',\'' + row.addTime + '\',\'' + row.lon + '\',\'' + row.lat + '\')">查看定位</a>'
return cent;
},
rowspan: 1,
align: 'center',
valign: 'middle',
sortable: true,
width: 100
},{
title: '备注',
field: 'auditRemark',
rowspan: 1,
align: 'center',
valign: 'middle',
sortable: true,
width: 100
},
],
onLoadSuccess: function(data) {
$("#dataCount").html( "数量:" + data.total);
},
onLoadError: function() {
$("#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/queryClick.png)");
$("#export").css("background-image", "url(../../../img/info/export.png)");
var opt = {
url: dataUrl + 'workerAttendance/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() {
$("#query").css("background-image", "url(../../../img/info/query.png)");
$("#export").css("background-image", "url(../../../img/info/exportClick.png)");
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
window.location.href = dataUrl + "workerAttendance/exportWorkerAttendanceOne?idNumber=" + idNumber + "&startTime=" + startTime +
"&endTime=" + endTime + "&proId=" + proId + "&name=" + name + "&x-auth-token=" + token;
}
function leftTitle(time) {
console.log("time", time);
$("#personnelAttendanceTitle").html("人员考勤 " + time+"("+name+")");
}
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);
$("#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 += '<tr style="width: 100%;">';
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 += '<td style="width: 13%;">';
html += ' <div class="month">' + date[1] + '</div>';
if (auditStatus == "有效") {
html += ' <div class="day" style="width:100%;background-color:rgb(88,228,153)"><span>' + date[2] +
'</span></div>';
/*html += ' <div onclick="constructionPersonnelInformation(\'' + currentDay +
'\')"class="day" style="width:98%;background-color:rgb(88,228,153);cursor:pointer"><span>' + date[2] +
'</span></div>';*/
} else if (auditStatus == "待审核") {
html += ' <div class="day" style="width:100%;background-color:rgb(252,177,96)"><span>' + date[2] +
'</span></div>';
/*html += ' <div class="day" style="width:98%;background-color:rgb(252,177,96);cursor:pointer"><span>' + date[2] +
'</span></div>';*/
} else if (auditStatus == "无效"){
console.log("currentDay:" + currentDay + ",attendStatus:" + auditStatus);
html += ' <div class="day" style="width:100%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';
/*html += ' <div class="day" style="width:98%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';*/
}
html += '</td>';
if (i == ys - 1) {
html += '</tr>';
}
}
$("#currentDay").html(html);
} else {
$("#currentDay").css("width", "98%");
for (var i = 0; i < cs; i++) {
html += '<tr style="width: 100%;">';
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 += '<td style="width: 13%;">';
html += ' <div class="month">' + date[1] + '</div>';
if (auditStatus == "有效") {
html += ' <div onclick="constructionPersonnelInformation(\'' + currentDay +
'\')" class="day" style="width:98%;background-color:rgb(88,228,153);cursor:pointer"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "待审核") {
html += ' <div class="day" style="width:98%;background-color:rgb(252,177,96);cursor:pointer"><span>' + date[2] +
'</span></div>';
} else {
console.log("currentDay:" + currentDay + ",auditStatus:" + auditStatus);
html += ' <div class="day" style="width:98%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';
}
html += '</td>';
if (j == 6) {
html += '</tr>';
}
}
}
if (ys > 0) {
html += '<tr style="width: 100%;">';
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 += '<td style="width: 13%;">';
html += ' <div class="month">' + date[1] + '</div>';
if (auditStatus == "有效") {
html += ' <div onclick="constructionPersonnelInformation(\'' + currentDay +
'\')" class="day" style="width:98%;background-color:rgb(88,228,153);cursor:pointer"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "待审核") {
html += ' <div class="day" style="width:98%;background-color:rgb(252,177,96);cursor:pointer"><span>' + date[2] +
'</span></div>';
} else {
console.log("currentDay:" + currentDay + ",auditStatus:" + auditStatus);
html += ' <div class="day" style="width:98%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';
}
html += '</td>';
if (i == ys - 1) {
html += '</tr>';
}
}
}
$("#currentDay").html(html);
}
}else{
var html = '<div style = "display: flex;justify-content: center;text-align: center;align-items: center;height: 100%;font-size: 18px;color: #FF0000;">无考勤日期</div>'
$('#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 = top.layer.open({
title: false,
type: 2,
content: '../../page/worker/workerAttendance/openImg.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 = top.layer.open({
title: false,
type: 2,
content: '../../page/worker/workerAttendance/openMap.html',
area: ['75%', '75%'],
maxmin: false
});
}