hn_cloud_web/smz-web/js/work/salaryAttendance/abnormalDetails.js

340 lines
13 KiB
JavaScript
Raw Permalink Normal View History

2025-11-27 16:55:35 +08:00
var example = null;
var pers = checkPermission();
var laydate;
var tree;
var parentData;
layui.use(['form', 'layer', 'tree'], function () {
laydate = layui.laydate;
tree = layui.tree;
function fetchTreeData(name, uprewordNum, callback) {
$.ajax({
type: 'post',
2025-12-09 18:44:29 +08:00
url: smz_ht_url + "/salaryCheck/getTreeDetail",
2025-11-27 16:55:35 +08:00
dataType: 'json',
data: {
recordNum: uprewordNum,
title: name
},
success: function (data) {
if (data.code == 200) {
callback(data.data);
} else {
console.error('Failed to fetch tree data:', data.message);
}
}
});
}
function renderTree(data) {
tree.render({
elem: '#treeContent',
data: data,
id: 'treeContent',
spread: true, // 设置为 true使得根节点默认展开
showLine: false,
onlyIconControl: true,
isSimpleData: true,
click: function (obj) {
console.log(obj);
if (obj.data.id !=1){
setData(obj.data.id, obj.data.title);
}
}
});
}
$("#searchBt").click(function () {
var name = $("#name").val();
var uprewordNum = localStorage.getItem("uprewordNum");
fetchTreeData(name, uprewordNum, function(data) {
renderTree(data);
});
});
function initTree() {
var name = $("#name").val();
var uprewordNum = localStorage.getItem("uprewordNum");
fetchTreeData(name, uprewordNum, function(data) {
renderTree(data);
if (data.length > 0 ) {
setData(data[0].id, data[0].title);
}
});
}
// Initialize tree on page load
initTree();
// init();
})
function setData(idNumber,userName) {
var cdata;
$("#userName").text(userName);
$("#userNo").text(idNumber);
var uprewordNum=localStorage.getItem("uprewordNum")
$.ajax({//id获取详情打开弹窗传值子页面
type: 'post',
2025-12-09 18:44:29 +08:00
url: smz_ht_url + "/salaryPaymentAndAttendanceRecords/getAbnormalDataByIdNumber",
2025-11-27 16:55:35 +08:00
dataType: 'json',
async:false,
data: {
idNumber: idNumber,rewordNum:uprewordNum
},
success: function (data) {
if(data.code==200){
cdata=data.data;
}
}
})
console.log("cdata:",cdata)
init(cdata);
}
function init(cdata) {
$("#abnormalDescribe").val('')
$("#salaryPaymentContent").empty()
$("#rewardConfirmContent").empty()
$("#transferFileDiskContent").empty()
$("#attendanceContent").empty()
var workerhtml='<tr align="center" >\n' +
' <td>所在班组</td>\n' +
' <td>岗位</td>\n' +
' <td>出勤天数</td>\n' +
' <td>应发工资</td>\n' +
' <td>其中代扣/代缴</td>\n' +
' <td>实发工资</td>\n' +
' <td>开户银行</td>\n' +
' <td>银行卡号</td>\n' +
' </tr>';
var confhtnl='<tr align="center" >\n' +
' <td rowspan="2">岗位</td>\n' +
' <td colspan="3">当月发放基本工资</td>\n' +
' <td colspan="3">当月发放加班工资</td>\n' +
' <td colspan="3">当月绩效奖金</td>\n' +
' <td rowspan="2">报酬小计</td>\n' +
' <td rowspan="2">绩效奖金累计(含本月)</td>\n' +
' </tr>\n' +
'\n' +
' <tr align="center" style="background-color: #F7F8FC" >\n' +
' <td>单价</td>\n' +
' <td>考勤天数</td>\n' +
' <td>小计</td>\n' +
' <td>单价</td>\n' +
' <td>考勤天数</td>\n' +
' <td>小计</td>\n' +
' <td>单价</td>\n' +
' <td>考勤天数</td>\n' +
' <td>小计</td>\n' +
' </tr>';
var diskhtml='<tr align="center" >\n' +
' <td>所在班组</td>\n' +
' <td>岗位</td>\n' +
' <td>出勤天数</td>\n' +
' <td>应发工资</td>\n' +
' <td>其中代扣/代缴</td>\n' +
' <td>实发工资</td>\n' +
' <td>银行卡号</td>\n' +
' </tr>';
var attenhtml='<tr align="center" >\n' +
' <td style="width: 7%">工种</td>\n' +
' <td style="width: 13%">工程名称</td>\n' +
' <td style="width: 15%">分包商</td>\n' +
' <td style="width: 12%">班组</td>\n' +
' <td style="width: 4%">出勤天数</td>\n' +
' <td style="width: 4%">休息天数</td>\n' +
' <td style="width: 4%">缺勤天数</td>\n' +
' <td style="width: 5%">合同工资</td>\n' +
' <td style="width: 5%">合同绩效</td>\n' +
' <td style="width: 13%">银行卡号</td>\n' +
' </tr>';
//异常数据
var jxDifferenceRewordList;
if (cdata.jxDifferenceRewordList != null && cdata.jxDifferenceRewordList.length > 0){
jxDifferenceRewordList=cdata.jxDifferenceRewordList[0];
}else {
jxDifferenceRewordList = {describes: ''};
}
//农名工工资支付表
if (cdata.jxWorkerPayList != null && cdata.jxWorkerPayList.length > 0){
var salaryPayment =cdata.jxWorkerPayList[0];
workerhtml=workerhtml+'<tr className="white">';
workerhtml=workerhtml+' <td>'+salaryPayment.teamName+'</td>';
if(jxDifferenceRewordList.post==1){
workerhtml=workerhtml+' <td style="color: red">'+salaryPayment.post+'</td>';
}else{
workerhtml=workerhtml+' <td>'+salaryPayment.post+'</td>';
}
if(jxDifferenceRewordList.attenNum==1){
workerhtml=workerhtml+' <td style="color: red">'+salaryPayment.attenNum+'</td>';
}else{
workerhtml=workerhtml+' <td>'+salaryPayment.attenNum+'</td>';
}
if(jxDifferenceRewordList.payable==1){
workerhtml=workerhtml+' <td style="color: red">'+salaryPayment.payable+'</td>';
}else{
workerhtml=workerhtml+' <td>'+salaryPayment.payable+'</td>';
}
workerhtml=workerhtml+' <td>'+salaryPayment.withhold+'</td>';
if(jxDifferenceRewordList.payIn==1){
workerhtml=workerhtml+' <td style="color: red">'+salaryPayment.payIn+'</td>';
}else{
workerhtml=workerhtml+' <td>'+salaryPayment.payIn+'</td>';
}
workerhtml=workerhtml+' <td>'+salaryPayment.bank+'</td>';
if(jxDifferenceRewordList.bankNum==1){
workerhtml=workerhtml+' <td style="color: red">'+salaryPayment.bankNum+'</td>';
}else{
workerhtml=workerhtml+' <td>'+salaryPayment.bankNum+'</td>';
}
}else {
workerhtml+=isEmpty(8)
}
workerhtml=workerhtml+'</tr>';
//劳动报酬确认单
if (cdata.jxConfimationPayList != null && cdata.jxConfimationPayList.length > 0){
var rewardConfirm =cdata.jxConfimationPayList[0];
confhtnl=confhtnl+'<tr className="white" style="background-color: #FFFFFF">';
if(jxDifferenceRewordList.post==1){
confhtnl=confhtnl+' <td style="color: red">'+rewardConfirm.post+'</td>';
}else{
confhtnl=confhtnl+' <td>'+rewardConfirm.post+'</td>';
}
if(jxDifferenceRewordList.basicPrice==1){
confhtnl=confhtnl+' <td style="color: red">'+rewardConfirm.basePrice+'</td>';
}else{
confhtnl=confhtnl+' <td>'+rewardConfirm.basePrice+'</td>';
}
if(jxDifferenceRewordList.attenNum==1){
confhtnl=confhtnl+' <td style="color: red">'+rewardConfirm.baseNum+'</td>';
}else{
confhtnl=confhtnl+' <td>'+rewardConfirm.baseNum+'</td>';
}
confhtnl=confhtnl+' <td>'+rewardConfirm.baseAll+'</td>';
confhtnl=confhtnl+' <td>'+rewardConfirm.overtimePrice+'</td>';
confhtnl=confhtnl+' <td>'+rewardConfirm.overtimeNum+'</td>';
confhtnl=confhtnl+' <td>'+rewardConfirm.overtimeAll+'</td>';
if(jxDifferenceRewordList.achievementsPrice==1){
confhtnl=confhtnl+' <td style="color: red">'+rewardConfirm.achievementsPrice+'</td>';
}else{
confhtnl=confhtnl+' <td>'+rewardConfirm.achievementsPrice+'</td>';
}
confhtnl=confhtnl+' <td>'+rewardConfirm.achievementsNum+'</td>';
confhtnl=confhtnl+' <td>'+rewardConfirm.achievementsAll+'</td>';
confhtnl=confhtnl+' <td>'+rewardConfirm.rewardAll+'</td>';
confhtnl=confhtnl+' <td>'+rewardConfirm.achievementsAll+'</td>';
}else {
confhtnl+=isEmpty(12)
}
confhtnl=confhtnl+'</tr>';
//个人相关信息 - 传盘文件
if (cdata.jxDiskRewordList != null && cdata.jxDiskRewordList.length > 0){
var transferFileDisk =cdata.jxDiskRewordList[0];
diskhtml=diskhtml+'<tr className="white">';
diskhtml=diskhtml+' <td>'+transferFileDisk.teamName+'</td>';
if(jxDifferenceRewordList.post==1){
diskhtml=diskhtml+' <td style="color: red">'+transferFileDisk.post+'</td>';
}else{
diskhtml=diskhtml+' <td>'+transferFileDisk.post+'</td>';
}
if(jxDifferenceRewordList.attenNum==1){
diskhtml=diskhtml+' <td style="color: red">'+transferFileDisk.attenNum+'</td>';
}else{
diskhtml=diskhtml+' <td>'+transferFileDisk.attenNum+'</td>';
}
if(jxDifferenceRewordList.payable==1){
diskhtml=diskhtml+' <td style="color: red">'+transferFileDisk.payable+'</td>';
}else{
diskhtml=diskhtml+' <td>'+transferFileDisk.payable+'</td>';
}
diskhtml=diskhtml+' <td>'+transferFileDisk.withhold+'</td>';
if(jxDifferenceRewordList.payIn==1){
diskhtml=diskhtml+' <td style="color: red">'+transferFileDisk.payIn+'</td>';
}else{
diskhtml=diskhtml+' <td>'+transferFileDisk.payIn+'</td>';
}
if(jxDifferenceRewordList.bankNum==1){
diskhtml=diskhtml+' <td style="color: red">'+transferFileDisk.bankNum+'</td>';
}else{
diskhtml=diskhtml+' <td>'+transferFileDisk.bankNum+'</td>';
}
}else {
diskhtml+=isEmpty(7)
}
diskhtml=diskhtml+'</tr>';
//个人相关信息 - 系统考勤
if (cdata.jxAttendanceRewordList != null && cdata.jxAttendanceRewordList.length > 0){
var attendance =cdata.jxAttendanceRewordList[0];
attenhtml=attenhtml+'<tr className="white">';
if(jxDifferenceRewordList.post==1){
attenhtml=attenhtml+' <td style="color: red">'+attendance.post+'</td>';
}else{
attenhtml=attenhtml+' <td>'+attendance.post+'</td>';
}
attenhtml=attenhtml+' <td>'+attendance.proName+'</td>';
attenhtml=attenhtml+' <td>'+attendance.subName+'</td>';
attenhtml=attenhtml+' <td>'+attendance.teamName+'</td>';
if(jxDifferenceRewordList.attenNum==1){
attenhtml=attenhtml+' <td style="color: red">'+attendance.attenNum+'</td>';
}else{
attenhtml=attenhtml+' <td>'+attendance.attenNum+'</td>';
}
attenhtml=attenhtml+' <td>'+attendance.restNum+'</td>';
attenhtml=attenhtml+' <td>'+attendance.noworkNum+'</td>';
if(jxDifferenceRewordList.basicPrice==1){
attenhtml=attenhtml+' <td style="color: red">'+attendance.basePay+'</td>';
}else{
attenhtml=attenhtml+' <td>'+attendance.basePay+'</td>';
}
if(jxDifferenceRewordList.achievementsPrice==1){
attenhtml=attenhtml+' <td style="color: red">'+attendance.achievementsPay+'</td>';
}else{
attenhtml=attenhtml+' <td>'+attendance.achievementsPay+'</td>';
}
if(jxDifferenceRewordList.bankNum==1){
attenhtml=attenhtml+' <td style="color: red">'+attendance.bankNum+'</td>';
}else{
attenhtml=attenhtml+' <td>'+attendance.bankNum+'</td>';
}
}else {
attenhtml+=isEmpty(10)
}
attenhtml=attenhtml+'</tr>';
$("#abnormalDescribe").val(jxDifferenceRewordList.describes);
$("#salaryPaymentContent").append(workerhtml)
$("#rewardConfirmContent").append(confhtnl)
$("#transferFileDiskContent").append(diskhtml)
$("#attendanceContent").append(attenhtml)
}
//表格空值赋值
function isEmpty(num) {
var html = `
<tr align="center" style="background-color: #fff;">
<td colspan="${ num }">无数据</td>
</tr>
`
return html
}
//判断对象是否有值
function isObjectEmpty(obj) {
return Object.keys(obj).length === 0;
}