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

528 lines
15 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
});
}