hn_cloud_web/smz-web/js/work/person/faceContrastDetail.js

832 lines
32 KiB
JavaScript
Raw Normal View History

2025-11-27 16:55:35 +08:00
var idNumber = localStorage.getItem("idNumber");
var startTime = localStorage.getItem("startTime");
var endTime = localStorage.getItem("endTime");
var proId = localStorage.getItem("proId");
var name = localStorage.getItem("name");
var subId = localStorage.getItem("subId");
var teamId = localStorage.getItem("teamId");
var exitTime = localStorage.getItem("exitTime");
var einTime = localStorage.getItem("einTime");
var gz = localStorage.getItem("gz");
var effectDate = localStorage.getItem("effectDate");
var pers = null;
let form,layer;
$(function() {
layui.use(['layer', 'form'], function () {
layer = layui.layer;
form = layui.form;
});
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"
});
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"
});
$("#startTime").val(startTime);
$("#endTime").val(endTime);
pers = checkPermission();
$.ajax({
2025-12-09 18:44:29 +08:00
url: smz_ht_url + '/faceContrast/getNameByIdNumber',
2025-11-27 16:55:35 +08:00
type: "post",
data: {
idNumber: idNumber
},
success: function(data) {
leftTitle2( "合同生效日期:"+effectDate);
leftTitle(startTime + "~" + endTime + "(" + data[0].name + ")");
},
error: function(e) {
alert(e);
}
});
initDate();
initTable();
});
// 子页面调用的刷新父页面方法
function reloadData() {
initDate();
initTable();
}
function initDate() {
//初始化Table
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
$.ajax({
2025-12-09 18:44:29 +08:00
url: smz_ht_url + '/faceContrast/getWorkerAttendanceCurrentDay',
2025-11-27 16:55:35 +08:00
type: "post",
cache: false,
data: {
startTime: startTime,
endTime: endTime,
idNumber: idNumber,
gz: gz,
effectDate: effectDate,
proId: proId,
subId:subId,
teamId:teamId,
exitTime:exitTime,
einTime:einTime
},
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
var index = top.layer.msg('数据较多,请稍等。。。', {
icon: 4,
time: 3000 //2秒关闭如果不配置默认是3秒
});
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
$("#table").bootstrapTable('destroy').bootstrapTable({
classes: 'table table-hover',
2025-12-09 18:44:29 +08:00
url: smz_ht_url + '/faceContrast/getWorkerAttendanceOne',
2025-11-27 16:55:35 +08:00
method: 'post',
responseHandler: responseHandler, //处理服务器返回的数据格式
height: $(window).height() - ($(window).height() * 0.13) - 40,
undefinedText: '', //当数据为 undefined 时显示的字符
queryParams: function(param) {
param = {
startTime: startTime,
endTime: endTime,
idNumber: idNumber,
proId: proId,
subId:subId,
gz:gz,
teamId:teamId,
pageSize: param.limit,
pageNum: param.offset / param.limit + 1
}
return param;
},
sortable: false, //是否启用排序
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: '考勤日期',
formatter: function(value, row, index) {
var cent = "";
if(row.success=="已打卡"){
cent += '<a href="#" style="color: dodgerblue;" onclick="openImg(\'' + row.currentDay + '\')">' + row.currentDay + '</a>'
}else if(row.success=="未打卡"){
cent += '<span>' + row.currentDay + '</span>';
}
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) {
var cent = '<span style="color: red">休息</span>';
if(row.success=="已打卡"){
return {css:{'color':'#3cb371'}};
}else if(row.success=="未打卡"){
return {css:{'color':'red'}};
}
if(row.auditStatus=="休息"){
return cent;
}
return '';
}//更具条件修改某行样式
},
{
title: '上班时长',
field: 'workHours',
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) {
if(row.auditStatus=="有效"){
return {css:{'color':'#3cb371'}};
}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: 150
},{
title: '打卡位置',
formatter: function(value, row, index) {
if (row.success=="未打卡"){
var cent = "";
return cent;
}else {
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: '打卡地址',
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: 100
},{
title: '打卡图片', align: "center",
width: 200,formatter: function (value, row, index) {
if(row.imgPath==null||row.imgPath=="null"||row.imgPath==""||row.imgPath==undefined){
return "无";
}else{
2025-12-09 18:44:29 +08:00
var image = '<div><img style="width: 180px;height: 120px;margin: auto" alt="" src="'+smz_ht_url +'/' + row.imgPath + '"></img></a></div>';
2025-11-27 16:55:35 +08:00
return image;
}
}
},
{
title: '备注',
field: 'auditRemark',
rowspan: 1,
align: 'center',
valign: 'middle',
sortable: true,
width: 100
},
],
onLoadSuccess: function(data) {
top.layer.close(index);
$("#dataCount").html( "数量:" + data.total);
},
onLoadError: function() {
top.layer.close(index);
$("#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/查询点击.png)");
$("#export").css("background-image", "url(../../../img/info/导出.png)");
var opt = {
2025-12-09 18:44:29 +08:00
url: smz_ht_url + '/faceContrast/getWorkerAttendanceOne',
2025-11-27 16:55:35 +08:00
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() {
2025-12-05 15:39:43 +08:00
var token = localStorage.getItem("smz-token");
2025-11-27 16:55:35 +08:00
var name = $("#name").val();
var teamName = $("#teamName").val();
var orgId = $("#orgId").val();
var proId = $("#proId").val();
var status = $("#status").val();
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
2025-12-09 18:44:29 +08:00
window.location.href = smz_ht_url + "/faceContrast/exportWorkerAttendance?idNumber=" + idNumber + "&startTime=" + startTime + "&endTime=" + endTime+"&token=" + token;
2025-11-27 16:55:35 +08:00
}
function leftTitle(time) {
console.log("time", time);
$("#personnelAttendanceTitle").html("人员考勤 " + time);
}
function leftTitle2(eff) {
console.log("eff", eff);
$("#personnelAttendanceTitle2").html(eff);
}
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);
// $("#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" onclick="cancelAttendance(\''+dateArr[i]+'\',\'sys:faceContrast:cancelCard\')" style="width:100%;background-color:rgb(88,228,153)"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "待审核") {
html += ' <div class="day" onclick="getOpen(\''+dateArr[i]+'\')" style="width:100%;background-color:rgb(252,177,96)"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "无效") {
console.log("currentDay:" + currentDay + ",attendStatus:" + auditStatus);
html += ' <div class="day" onclick="makeAttendanceCard(\''+dateArr[i]+'\',\'sys:faceContrast:makeCard\')" style="width:100%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';
}else if (auditStatus == "休息") {
html += ' <div class="day" style="width:100%;background-color:rgb(253, 223, 126)"><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 class="day" onclick="cancelAttendance(\''+dateArr[k]+'\',\'sys:faceContrast:cancelCard\')" style="width:98%;background-color:rgb(88,228,153)"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "待审核") {
html += ' <div class="day" onclick="getOpen(\''+dateArr[k]+'\')" style="width:98%;background-color:rgb(252,177,96)"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "无效") {
console.log("currentDay:" + currentDay + ",auditStatus:" + auditStatus);
html += ' <div class="day" onclick="makeAttendanceCard(\''+dateArr[k]+'\',\'sys:faceContrast:makeCard\')" style="width:100%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';
}else if (auditStatus == "休息") {
html += ' <div class="day" style="width:100%;background-color:rgb(253, 223, 126)"><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 class="day" onclick="cancelAttendance(\''+dateArr[k]+'\',\'sys:faceContrast:cancelCard\')" style="width:100%;background-color:rgb(88,228,153)"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "待审核") {
html += ' <div class="day" onclick="getOpen(\''+dateArr[k]+'\')" style="width:100%;background-color:rgb(252,177,96)"><span>' + date[2] +
'</span></div>';
} else if (auditStatus == "无效"){
console.log("currentDay:" + currentDay + ",auditStatus:" + auditStatus);
html += ' <div class="day" onclick="makeAttendanceCard(\''+dateArr[k]+'\',\'sys:faceContrast:makeCard\')" style="width:100%;background-color:rgb(228,81,84)"><span>' + date[2] + '</span></div>';
}else if (auditStatus == "休息") {
html += ' <div class="day" style="width:100%;background-color:rgb(253, 223, 126)"><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 = layer.open({
title: false,
type: 2,
content: 'facePhotoDetail.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 = layer.open({
title: ['考勤定位', 'color:#fff;background-color:#1AA094;font-size:20px;text-indent: 49%'],
type: 2,
content: 'faceMap.html',
area: ['75%', '75%'],
maxmin: false
});
}
// 取消考勤
function cancelAttendance(currentDay,permission) {
var dd=currentDay.substring(5,7);
var myDate = new Date;
var month=myDate.getMonth()+1;
if(month-dd>1){
layer.msg("超出期限!");
return;
}
if (permission != "") {
if ($.inArray(permission, pers) < 0) {
layer.msg("无取消考勤权限");
return;
}
}
let height = getDefaultHeight2().toFixed(0) + 'px';
let width = getDefaultWidth2().toFixed(0) + 'px';
let layerIndex = layer.open({
title: ['取消考勤', 'color:#3A81AD;font-size:22px;background-color:#eee;'],
type: 1,
id: 'layer-cancelAttendance-checker',
maxmin: false,
shade: 0.1,
shadeClose: false, //开启遮罩关闭
content: cancelAttendanceHtml(name,currentDay),
area: [width, height],
move: false,
success: function (layero, index) {
$(window).resize(function () {
if (autoResizeWidth2) {
autoResizeWidth2(index);
}
if (autoResizeHeight2) {
autoResizeHeight2(index);
}
})
},
});
}
function cancelAttendanceHtml(name,attendanceDate) {
return '<div style="width: 100%;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: space-between;padding: 5% 0;">' +
'<p style="font-size: 20px;font-weight: bold;">确定取消<span style="color: red;">'+(" "+name + " " + attendanceDate+ " ")+'</span>的考勤?</p>' +
'<div class="layui-form">' +
'<form class="layui-form" action="#" onsubmit="return false;">' +
'<div class="layui-form-item" style="display: flex;align-items: center;">' +
'<label class="layui-form-label"> <i style="color: red">*</i>取消原因</label>' +
'<div class="layui-inline" style="width: 360px;">' +
'<textarea class="layui-textarea" name="cancelCardReason"></textarea>' +
'</div>' +
'</div>' +
'<div class="layui-form-item" style="display: flex;align-items: center;padding-left: 0%;justify-content: center;">' +
'<button type="button" class="layui-btn layui-btn-normal" onclick="requestAddOrEdit(\''+attendanceDate+'\',\'2\')">提交</button>' +
'<button type="button" class="layui-btn layui-btn-primary" onclick="closePage(2)">取消</button>' +
'</div>' +
'</form>' +
'</div>' +
'</div>';
}
//待审核的数据
function getOpen(currentDay) {
let height = getDefaultHeight2().toFixed(0) + 'px';
let width = getDefaultWidth2().toFixed(0) + 'px';
let layerIndex = layer.open({
title: ['待审核', 'color:#3A81AD;font-size:22px;background-color:#eee;'],
type: 1,
id: 'layer-attendanceCard-checker',
maxmin: false,
shade: 0.1,
shadeClose: false, //开启遮罩关闭
content: openHtml(name,currentDay),
area: [width, height],
move: false,
success: function (layero, index) {
form.render();
$(window).resize(function () {
if (autoResizeWidth2) {
autoResizeWidth2(index);
}
if (autoResizeHeight2) {
autoResizeHeight2(index);
}
})
},
});
}
function openHtml(name,attendanceDate) {
return '<div style="width: 100%;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: space-between;padding: 3% 0;">' +
'<p style="font-size: 20px;font-weight: bold;"><span style="padding-right: 60px;">'+name+'</span><span>'+attendanceDate+'</span></p>' +
'<div class="layui-form">' +
'<form class="layui-form" action="#" onsubmit="return false;">' +
'<div class="layui-form-item" style="display: flex;align-items: center;">' +
'<label class="layui-form-label"> <i style="color: red">*</i>审核是否通过</label>' +
'<div class="layui-inline" style="width: 360px;">' +
'<input type="radio" name="workHours" value="1" title="通过" checked="">' +
'<input type="radio" name="workHours" value="2" title="不通过" >' +
'</div>' +
'</div>' +
'<div class="layui-form-item" style="display: flex;align-items: center;">' +
'<label class="layui-form-label"> <i style="color: red">*</i>原因</label>' +
'<div class="layui-inline" style="width: 360px;">' +
'<textarea class="layui-textarea" name="unauditedCardReason" ></textarea>' +
'</div>' +
'</div>' +
'<div class="layui-form-item" style="display: flex;align-items: center;padding-left: 0%;justify-content: center;">' +
'<button type="button" class="layui-btn layui-btn-normal" onclick="requestAddOrEditHtml(\''+attendanceDate+'\')">提交</button>' +
'<button type="button" class="layui-btn layui-btn-primary" onclick="closePage(2)">取消</button>' +
'</div>' +
'</form>' +
'</div>' +
'</div>';
}
// 提交数据
function requestAddOrEditHtml(currentDay) {
let url,data,reason;
let workHours = $('input[name="workHours"]:checked').val();
let unauditedCardReason = $('textarea[name="unauditedCardReason"]').val();
reason = unauditedCardReason;
2025-12-09 18:44:29 +08:00
url = smz_ht_url + '/faceContrast/unauditedCard';
2025-11-27 16:55:35 +08:00
data = {
idNumber:idNumber,
name:name,
proId:proId,
teamId: teamId,
subId: subId,
currentDay:currentDay,
workHours:workHours,
unauditedCardReason:unauditedCardReason
};
if(reason){
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
$.ajax({
type: "post",
url: url,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
dataType: "json",
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if (data.res === 1) {
parent.layer.msg('操作成功', {icon: 1});
closePage(1);
} else {
parent.layer.msg( data.resMsg , {icon: 2});
}
},
error: function (jqXHR, textStatus, errorThrown) {
layer.close(loadingMsg);
layer.msg('数据上传发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
}
});
}else{
layer.msg("请填写原因");
}
}
// 考勤补卡
function makeAttendanceCard(currentDay,permission) {
// if (permission != "") {
// if ($.inArray(permission, pers) < 0) {
// layer.msg("无考勤补卡权限");
// }
// }
var dd=currentDay.substring(5,7);
var myDate = new Date;
var month=myDate.getMonth()+1;
if(month-dd>1){
layer.msg("超出补卡期限!");
return;
}
let height = getDefaultHeight2().toFixed(0) + 'px';
let width = getDefaultWidth2().toFixed(0) + 'px';
let layerIndex = layer.open({
title: ['考勤补卡', 'color:#3A81AD;font-size:22px;background-color:#eee;'],
type: 1,
id: 'layer-attendanceCard-checker',
maxmin: false,
shade: 0.1,
shadeClose: false, //开启遮罩关闭
content: attendanceCardHtml(name,currentDay),
area: [width, height],
move: false,
success: function (layero, index) {
form.render();
$(window).resize(function () {
if (autoResizeWidth2) {
autoResizeWidth2(index);
}
if (autoResizeHeight2) {
autoResizeHeight2(index);
}
})
},
});
}
function attendanceCardHtml(name,attendanceDate) {
return '<div style="width: 100%;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: space-between;padding: 3% 0;">' +
'<p style="font-size: 20px;font-weight: bold;"><span style="padding-right: 60px;">'+name+'</span><span>'+attendanceDate+'</span></p>' +
'<div class="layui-form">' +
'<form class="layui-form" action="#" onsubmit="return false;">' +
'<div class="layui-form-item" style="display: flex;align-items: center;">' +
'<label class="layui-form-label"> <i style="color: red">*</i>上班时长</label>' +
'<div class="layui-inline" style="width: 360px;">' +
// '<input type="radio" name="workHours" value="0.5" title="0.5天">' +
'<input type="radio" name="workHours" value="1" title="1天" checked="">' +
'</div>' +
'</div>' +
'<div class="layui-form-item" style="display: flex;align-items: center;">' +
'<label class="layui-form-label"> <i style="color: red">*</i>补卡原因</label>' +
'<div class="layui-inline" style="width: 360px;">' +
'<textarea class="layui-textarea" name="makeCardReason" ></textarea>' +
'</div>' +
'</div>' +
'<div class="layui-form-item" style="display: flex;align-items: center;padding-left: 0%;justify-content: center;">' +
'<button type="button" class="layui-btn layui-btn-normal" onclick="requestAddOrEdit(\''+attendanceDate+'\',\'1\')">提交</button>' +
'<button type="button" class="layui-btn layui-btn-primary" onclick="closePage(2)">取消</button>' +
'</div>' +
'</form>' +
'</div>' +
'</div>';
}
// 提交数据
function requestAddOrEdit(currentDay,type) {
let url,data,reason;
if(type == '1'){//补卡
let workHours = $('input[name="workHours"]:checked').val();
let makeCardReason = $('textarea[name="makeCardReason"]').val();
reason = makeCardReason;
2025-12-09 18:44:29 +08:00
url = smz_ht_url + '/faceContrast/makeAttendanceCard';
2025-11-27 16:55:35 +08:00
data = {
idNumber:idNumber,
name:name,
proId:proId,
teamId: teamId,
subId: subId,
currentDay:currentDay,
workHours:workHours,
makeCardReason:makeCardReason
};
}else{//取消打卡
let cancelCardReason = $('textarea[name="cancelCardReason"]').val();
reason = cancelCardReason;
2025-12-09 18:44:29 +08:00
url = smz_ht_url + '/faceContrast/cancelAttendance';
2025-11-27 16:55:35 +08:00
data = {
idNumber:idNumber,
name:name,
proId:proId,
teamId: teamId,
subId: subId,
currentDay:currentDay,
cancelCardReason:cancelCardReason
};
}
if(reason){
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
$.ajax({
type: "post",
url: url,
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
dataType: "json",
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if (data.res === 1) {
parent.layer.msg('操作成功', {icon: 1});
closePage(1);
} else {
parent.layer.msg( data.resMsg , {icon: 2});
}
},
error: function (jqXHR, textStatus, errorThrown) {
layer.close(loadingMsg);
layer.msg('数据上传发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000});
}
});
}else{
layer.msg("请填写原因");
}
}
function closePage(type) {
closePage2();
if (type === 1) {
reloadData();
}
}
function closePage2() {
layer.closeAll(); //再执行关闭
}