371 lines
13 KiB
JavaScript
371 lines
13 KiB
JavaScript
var id = localStorage.getItem("id");
|
||
var startTime = localStorage.getItem("startTime");
|
||
var endTime = localStorage.getItem("endTime");
|
||
var proName = localStorage.getItem("proName");
|
||
var name = localStorage.getItem("name");
|
||
var pers = null;
|
||
|
||
var form,layer,laydate;
|
||
$(function() {
|
||
layui.use(['layer','laydate', 'form'], function () {
|
||
layer = layui.layer;
|
||
form = layui.form;
|
||
laydate = layui.laydate;
|
||
$('#test6').val(startTime + ' - ' + endTime);
|
||
laydate.render({
|
||
elem: '#test6',
|
||
range: true,
|
||
min: $('#hidMinListDate').val(),
|
||
max: $('#hidMaxListDate').val()
|
||
});
|
||
|
||
|
||
pers = checkPermission();
|
||
console.log(proName)
|
||
if (proName == null || proName === 'null'){
|
||
leftTitle(name)
|
||
}else {
|
||
leftTitle(proName + "—" + name)
|
||
}
|
||
|
||
initDate();
|
||
initTable();
|
||
});
|
||
});
|
||
|
||
// 子页面调用的刷新父页面方法
|
||
function reloadData() {
|
||
initDate();
|
||
initTable();
|
||
}
|
||
|
||
function initDate() {
|
||
//初始化Table
|
||
var dateRange = $.trim($('#test6').val());
|
||
var parts = dateRange.split(' - ');
|
||
var startTime = parts[0];
|
||
var endTime = parts[1];
|
||
$.ajax({
|
||
url: smz_ht_url + '/WorkerDepartFaceContrast/getListById',
|
||
type: "get",
|
||
cache: false,
|
||
data: {
|
||
startTime: startTime,
|
||
endTime: endTime,
|
||
id: id
|
||
},
|
||
success: function(data) {
|
||
assignmentMonthTest(data, startTime, endTime);
|
||
},
|
||
error: function(e) {
|
||
alert(e);
|
||
}
|
||
});
|
||
}
|
||
|
||
function initTable() {
|
||
//初始化Table
|
||
var dateRange = $.trim($('#test6').val());
|
||
var parts = dateRange.split(' - ');
|
||
var startTime = parts[0];
|
||
var endTime = parts[1];
|
||
|
||
$("#table").bootstrapTable('destroy').bootstrapTable({
|
||
classes: 'table table-hover',
|
||
url: smz_ht_url + '/WorkerDepartFaceContrast/getById',
|
||
method: 'get',
|
||
responseHandler: responseHandler, //处理服务器返回的数据格式
|
||
height: $(window).height() - ($(window).height() * 0.13) - 40,
|
||
undefinedText: '', //当数据为 undefined 时显示的字符
|
||
queryParams: function(param) {
|
||
param = {
|
||
startTime: startTime,
|
||
endTime: endTime,
|
||
id: id,
|
||
//pageSize: param.limit,
|
||
//pageNum: param.offset / param.limit + 1
|
||
}
|
||
return param;
|
||
},
|
||
sortable: false, //是否启用排序
|
||
sortOrder: "asc", //排序方式
|
||
cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
|
||
pagination: false,
|
||
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: 'currentDay',
|
||
rowspan: 1,
|
||
align: 'center',
|
||
valign: 'middle',
|
||
sortable: true,
|
||
width: 140
|
||
},
|
||
{
|
||
title: '上传时间',
|
||
field: 'uploadTime',
|
||
rowspan: 1,
|
||
align: 'center',
|
||
valign: 'middle',
|
||
sortable: true,
|
||
width: 150
|
||
},
|
||
{
|
||
title: '打卡状态',
|
||
field: 'isSuccess',
|
||
rowspan: 1,
|
||
align: 'center',
|
||
valign: 'middle',
|
||
sortable: true,
|
||
width: 100,
|
||
cellStyle:function (value, row, index) {
|
||
var cent = '<span style="color: red">休息</span>';
|
||
if(row.isSuccess=="打卡成功"){
|
||
return {css:{'color':'#3cb371'}};
|
||
}else if(row.isSuccess=="打卡失败"){
|
||
return {css:{'color':'red'}};
|
||
}
|
||
return '';
|
||
}//更具条件修改某行样式
|
||
},
|
||
{
|
||
title: '打卡地址',
|
||
formatter: function(value, row, index) {
|
||
var address = row.address;
|
||
var cent = "";
|
||
if(address =="null" || address ==null){
|
||
|
||
}else{
|
||
if(address.indexOf("null") >= 0 ){
|
||
cent += '<span>未获取到</span>';
|
||
}else {
|
||
cent += '<span>' + address + '</span>';
|
||
}
|
||
}
|
||
return cent;
|
||
},
|
||
|
||
rowspan: 1,
|
||
align: 'center',
|
||
valign: 'middle',
|
||
sortable: true,
|
||
width: 200
|
||
},
|
||
{
|
||
title: '打卡图片', align: "center",
|
||
width: 200,formatter: function (value, row, index) {
|
||
if(row.photoPath==null||row.photoPath=="null"||row.photoPath==""||row.photoPath==undefined){
|
||
return "无";
|
||
}else{
|
||
var image = '<div><img style="width: 180px;height: 120px;margin: auto" alt="" src="'+smz_ht_url +'/' + row.photoPath + '"></img></a></div>';
|
||
return image;
|
||
}
|
||
}
|
||
},
|
||
{
|
||
title: '备注',
|
||
field: 'remarks',
|
||
rowspan: 1,
|
||
align: 'center',
|
||
valign: 'middle',
|
||
sortable: true,
|
||
width: 150
|
||
},
|
||
],
|
||
onLoadSuccess: function(data) {
|
||
console.log(data)
|
||
$("#dataCount").html( "数量:" + data.total);
|
||
},
|
||
onLoadError: function() {
|
||
$("#dataCount").html("数量:0");
|
||
$("#table").bootstrapTable('removeAll');
|
||
}
|
||
});
|
||
}
|
||
|
||
function responseHandler(res) {
|
||
console.log(res);
|
||
var datas=[];
|
||
console.log(res.total);
|
||
datas.push({total:res.length,rows:res});
|
||
return datas[0];
|
||
}
|
||
|
||
function querys() {
|
||
var dateRange = $.trim($('#test6').val());
|
||
var parts = dateRange.split(' - ');
|
||
var startTime = parts[0];
|
||
var endTime = parts[1];
|
||
|
||
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: smz_ht_url + '/WorkerDepartFaceContrast/getById',
|
||
silent: true,
|
||
query: {
|
||
startTime: startTime,
|
||
endTime: endTime,
|
||
id: id,
|
||
}
|
||
};
|
||
$("#table").bootstrapTable('refresh', opt);
|
||
top.layer.close(index);
|
||
} else {
|
||
parent.layer.msg('请将日期控制在31天之内', {
|
||
icon: 2,
|
||
time: 1500
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
function leftTitle(title) {
|
||
$("#personnelAttendanceTitle").html(title);
|
||
}
|
||
|
||
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);
|
||
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("-");
|
||
console.log(date)
|
||
var addTimeON = data[i].addTimeON;
|
||
var currentDay = data[i].currentDay;
|
||
html += '<td style="width: 13%;">';
|
||
html += ' <div class="month">' + date[1] + '</div>';
|
||
console.log(addTimeON)
|
||
if (addTimeON !== "") {
|
||
html += ' <div class="day" style="width:100%;background-color:rgb(88,228,153); cursor: pointer"><span>' + date[2] +
|
||
'</span></div>';
|
||
} else {
|
||
// onclick="makeAttendanceCard(\''+dateArr[i]+'\',\'sys:faceContrast:makeCard\')"
|
||
html += ' <div class="day" style="width:100%;background-color:rgb(228,81,84); cursor: pointer"><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 addTimeON = data[k].addTimeON;
|
||
var currentDay = data[k].currentDay;
|
||
var date = (dateArr[k] || "").split("-");
|
||
html += '<td style="width: 13%;">';
|
||
html += ' <div class="month">' + date[1] + '</div>';
|
||
console.log(addTimeON)
|
||
if (addTimeON !== "") {
|
||
html += ' <div class="day" style="width:98%;background-color:rgb(88,228,153); cursor: pointer"><span>' + date[2] +
|
||
'</span></div>';
|
||
} else {
|
||
html += ' <div class="day" style="width:100%;background-color:rgb(228,81,84); cursor: pointer"><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 addTimeON = data[k].addTimeON;
|
||
var currentDay = data[k].currentDay;
|
||
html += '<td style="width: 13%;">';
|
||
html += ' <div class="month">' + date[1] + '</div>';
|
||
if (addTimeON !== "") {
|
||
html += ' <div class="day" style="width:100%;background-color:rgb(88,228,153); cursor: pointer"><span>' + date[2] +
|
||
'</span></div>';
|
||
} else{
|
||
html += ' <div class="day" style="width:100%;background-color:rgb(228,81,84); cursor: pointer"><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);
|
||
}
|
||
}
|