528 lines
15 KiB
JavaScript
528 lines
15 KiB
JavaScript
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 //排位命令(desc,asc)
|
||
}
|
||
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
|
||
});
|
||
}
|