406 lines
11 KiB
JavaScript
406 lines
11 KiB
JavaScript
|
|
var proName = localStorage.getItem("proName");
|
|||
|
|
$(function() {
|
|||
|
|
findCompany(); //公司
|
|||
|
|
getCompanyName();
|
|||
|
|
findPro();//工程
|
|||
|
|
getAbbreviation();
|
|||
|
|
$("#proId option:contains('"+proName+"')").attr("selected", true).trigger("change");
|
|||
|
|
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(getNowTime());
|
|||
|
|
$("#endTime").val(getNowTime());
|
|||
|
|
initTable();
|
|||
|
|
})
|
|||
|
|
function getCompanyName(){
|
|||
|
|
$.ajax({
|
|||
|
|
type: 'post',
|
|||
|
|
url: dataUrl + 'workerPeople/getCompanyName',
|
|||
|
|
data: {
|
|||
|
|
"companyId":companyId
|
|||
|
|
},
|
|||
|
|
dataType: "json",
|
|||
|
|
async: false,
|
|||
|
|
success: function(data) {
|
|||
|
|
$("#orgId option:contains('"+data[0].orgName+"')").attr("selected", true).trigger("change");
|
|||
|
|
},
|
|||
|
|
error:function(data){
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
function getAbbreviation(){
|
|||
|
|
$.ajax({
|
|||
|
|
type: 'post',
|
|||
|
|
url: dataUrl + 'workerPeople/getAbbreviation',
|
|||
|
|
data: {"name":proName},
|
|||
|
|
dataType: "json",
|
|||
|
|
async: false,
|
|||
|
|
success: function(data) {
|
|||
|
|
$("#proId option:contains('"+data[0].abbreviation+"')").attr("selected", true).trigger("change");
|
|||
|
|
},
|
|||
|
|
error:function(data){
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
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() {
|
|||
|
|
index = top.layer.load(0, {
|
|||
|
|
shade: false
|
|||
|
|
}); // 0代表加载的风格,支持0-2
|
|||
|
|
//初始化Table
|
|||
|
|
$("#table").bootstrapTable({
|
|||
|
|
classes: 'table table-hover',
|
|||
|
|
url: dataUrl + 'workerAttendance/getWorkerAttendanceInfo',
|
|||
|
|
method: 'post',
|
|||
|
|
responseHandler: responseHandler, //处理服务器返回的数据格式
|
|||
|
|
height: $(window).height() - ($(window).height() * 0.13),
|
|||
|
|
undefinedText: '', //当数据为 undefined 时显示的字符
|
|||
|
|
queryParams: function(param) {
|
|||
|
|
var a=this;
|
|||
|
|
param = {
|
|||
|
|
startTime: $("#startTime").val(),
|
|||
|
|
endTime: $("#endTime").val(),
|
|||
|
|
orgId: $("#orgId").val(),
|
|||
|
|
proId: $("#proId").val(),
|
|||
|
|
keyWord: $("#keyWord").val(),
|
|||
|
|
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: 'name',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 100
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '身份证',
|
|||
|
|
field: 'idNumber',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 230
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '工种',
|
|||
|
|
field: 'postName',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 100
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '公司',
|
|||
|
|
field: 'orgName',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 150
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '工程名称',
|
|||
|
|
field: 'proName',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 200
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '分包商',
|
|||
|
|
field: 'subName',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 200
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '班组名称',
|
|||
|
|
field: 'teamName',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 100
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '考勤总天数',
|
|||
|
|
field: '',
|
|||
|
|
formatter: function(value, row, index) {
|
|||
|
|
var cent = "";
|
|||
|
|
cent += '<a href="#" style="color: dodgerblue;" onclick="openCheck(\'' + row.name + '\',\'' + row.idNumber + '\',\'' + row.proId + '\')">' + row.checkInDay + '</a>'
|
|||
|
|
return cent;
|
|||
|
|
},
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 120
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '正常上班天数',
|
|||
|
|
field: '',
|
|||
|
|
formatter: function(value, row, index) {
|
|||
|
|
var cent = "";
|
|||
|
|
cent += '<a href="#" style="color: dodgerblue;" onclick="openCheck(\'' + row.name + '\',\'' + row.idNumber + '\',\'' + row.proId + '\')">' + row.workHours + '</a>'
|
|||
|
|
return cent;
|
|||
|
|
},
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 150
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '加班天数',
|
|||
|
|
field: '',
|
|||
|
|
formatter: function(value, row, index) {
|
|||
|
|
var cent = "";
|
|||
|
|
cent += '<a href="#" style="color: dodgerblue;" onclick="openCheck(\'' + row.name + '\',\'' + row.idNumber + '\',\'' + row.proId + '\')">' + row.overHours + '</a>'
|
|||
|
|
return cent;
|
|||
|
|
},
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 150
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
title: '缺勤天数',
|
|||
|
|
field: 'notWorkHours',
|
|||
|
|
rowspan: 1,
|
|||
|
|
align: 'center',
|
|||
|
|
valign: 'middle',
|
|||
|
|
sortable: true,
|
|||
|
|
width: 100
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
onLoadSuccess: function(data) {
|
|||
|
|
$("#dataCount").html("数量:" + data.total);
|
|||
|
|
top.layer.close(index);
|
|||
|
|
},
|
|||
|
|
onLoadError: function() {
|
|||
|
|
$("#dataCount").html("数量:0");
|
|||
|
|
$("#table").bootstrapTable('removeAll');
|
|||
|
|
top.layer.close(index);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var index;
|
|||
|
|
// 模糊查询数据、重置查询
|
|||
|
|
function query(type) {
|
|||
|
|
index = top.layer.load(0, {
|
|||
|
|
shade: false
|
|||
|
|
}); // 0代表加载的风格,支持0-2
|
|||
|
|
if (type == 1) {
|
|||
|
|
var keyWord = $("#keyWord").val();
|
|||
|
|
var startTime = $("#startTime").val();
|
|||
|
|
var endTime = $("#endTime").val();
|
|||
|
|
var orgId = $("#orgId").val();
|
|||
|
|
var proId = $("#proId").val();
|
|||
|
|
$("#query").css("background-image", "url(../../../img/info/queryClick.png)");
|
|||
|
|
$("#reset").css("background-image", "url(../../../img/info/resetQuery.png)");
|
|||
|
|
$("#export").css("background-image", "url(../../../img/info/export.png)");
|
|||
|
|
var dateStart = new Date(startTime);
|
|||
|
|
var dateEnd = new Date(endTime);
|
|||
|
|
var difValue = (dateEnd - dateStart) / (1000 * 60 * 60 * 24);
|
|||
|
|
if (difValue >= 0 && difValue < 31) {
|
|||
|
|
var opt = {
|
|||
|
|
url: dataUrl + 'workerAttendance/getWorkerAttendanceInfo',
|
|||
|
|
silent: true,
|
|||
|
|
query: {
|
|||
|
|
startTime: startTime,
|
|||
|
|
endTime: endTime,
|
|||
|
|
orgId: orgId,
|
|||
|
|
proId: proId,
|
|||
|
|
keyWord: keyWord,
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
$("#table").bootstrapTable('refresh', opt);
|
|||
|
|
}else{
|
|||
|
|
parent.layer.msg('请将日期控制在31天之内', {
|
|||
|
|
icon: 2,
|
|||
|
|
time: 1500
|
|||
|
|
});
|
|||
|
|
top.layer.close(index);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}else if (type == 2) {
|
|||
|
|
$("#query").css("background-image", "url(../../../img/info/query.png)");
|
|||
|
|
$("#reset").css("background-image", "url(../../../img/info/resetQueryClick.png)");
|
|||
|
|
$("#export").css("background-image", "url(../../../img/info/export.png)");
|
|||
|
|
$("#keyWord").val("");
|
|||
|
|
$("#startTime").val(getNowTime());
|
|||
|
|
$("#endTime").val(getNowTime());
|
|||
|
|
findCompany(); //分公司
|
|||
|
|
findPro();//工程
|
|||
|
|
$("#proId option:contains('"+proName+"')").attr("selected", true).trigger("change");
|
|||
|
|
var keyWord = $("#keyWord").val();
|
|||
|
|
var startTime = $("#startTime").val();
|
|||
|
|
var endTime = $("#endTime").val();
|
|||
|
|
var orgId = $("#selOrg").val();
|
|||
|
|
var proId = $("#selPro").val();
|
|||
|
|
var opt = {
|
|||
|
|
url: dataUrl + 'workerAttendance/getWorkerAttendanceInfo',
|
|||
|
|
silent: true,
|
|||
|
|
query: {
|
|||
|
|
startTime: startTime,
|
|||
|
|
endTime: endTime,
|
|||
|
|
orgId: orgId,
|
|||
|
|
proId: proId,
|
|||
|
|
keyWord: keyWord
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
$("#table").bootstrapTable('refresh', opt);
|
|||
|
|
initTable();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function exportBtn() {
|
|||
|
|
$("#query").css("background-image", "url(../../../img/info/query.png)");
|
|||
|
|
$("#reset").css("background-image", "url(../../../img/info/resetQuery.png)");
|
|||
|
|
$("#export").css("background-image", "url(../../../img/info/exportClick.png)");
|
|||
|
|
var keyWord = $("#keyWord").val();
|
|||
|
|
var orgId = $("#orgId").val();
|
|||
|
|
var proId = $("#proId").val();
|
|||
|
|
var startTime = $("#startTime").val();
|
|||
|
|
var endTime = $("#endTime").val();
|
|||
|
|
window.location.href = dataUrl + "workerAttendance/exportWorkerAttendance?keyWord=" + keyWord + "&orgId=" + orgId + "&proId=" +
|
|||
|
|
proId + "&startTime=" + startTime + "&endTime=" + endTime + "&x-auth-token=" + token;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function openCheck(name,idNumber,proId) {
|
|||
|
|
var startTime = $("#startTime").val();
|
|||
|
|
var endTime = $("#endTime").val();
|
|||
|
|
localStorage.setItem("name", name);
|
|||
|
|
localStorage.setItem("idNumber", idNumber);
|
|||
|
|
localStorage.setItem("proId", proId);
|
|||
|
|
localStorage.setItem("startTime", startTime);
|
|||
|
|
localStorage.setItem("endTime", endTime);
|
|||
|
|
var index = top.layer.open({
|
|||
|
|
title: false,
|
|||
|
|
type: 2,
|
|||
|
|
content: '../../page/worker/workerAttendance/personnelAttendance.html',
|
|||
|
|
area: ['80%', '80%'],
|
|||
|
|
maxmin: false
|
|||
|
|
});
|
|||
|
|
}
|