var example = null; var pers = null; var isSelected = []; var id = localStorage.getItem("id"); var year = localStorage.getItem("year"); var month = localStorage.getItem("month"); var proId = localStorage.getItem("proId"); var proName = localStorage.getItem("proName"); var teamId = localStorage.getItem("teamId"); var teamName = localStorage.getItem("teamName"); var subId = localStorage.getItem("subId"); var subName = localStorage.getItem("subName"); var seTime = localStorage.getItem("seTime"); $(function () { layui.use(['layer', 'laydate', 'form'], function () { var layer = layui.layer; var laydate = layui.laydate; var form = layui.form; $("#years").html(year+"年"+month+"月"); $("#proName").html("工程名称:"+proName); $("#subName").html(subName+" "+teamName); init(); pers = checkPermission(); $("#searchBt").click(function () { example.ajax.reload(); }); /** * 监听开关 状态 操作 */ form.on('switch(switchTest)', function (data) { /** * 禁用标签 * 状态 赋值为 0 */ var id = data.elem.getAttribute("switchId"); var ids = id.split("isjx"); var layerIndex = layer.load(3); if ((this.checked ? 'true' : 'false') == 'false') { $("#"+id).val("0"); var payNums = $("#yfgz"+ids[1]).val(); var performanceCount = 0; //应发绩效 var str = $("#dk"+ids[1]).val(); var realPay = Number(payNums) + Number(performanceCount) - Number(str) ; $("#sfgz"+ids[1]).val(realPay); totalPay(); } else { /** * 启动标签 * 状态 赋值为 1 */ $("#"+id).val("1"); var payNums = $("#yfgz"+ids[1]).val(); var performanceCount = $("#yfjx"+ids[1]).val();; //应发绩效 var str = $("#dk"+ids[1]).val(); var realPay = Number(payNums) + Number(performanceCount) - Number(str) ; $("#sfgz"+ids[1]).val(realPay); totalPay(); } layer.close(layerIndex); }); $("#download").click(function () { getDownloads(); }); $("#saveZipButton").click(function(){ importExcel(); }); }); }) function init() { var seTimes = seTime.split("~"); example = $('#dt-table').DataTable({ "sort": false, 'paging':false, //取消分页 "searching": false, "processing": true, //加载数据时显示进度状态 "serverSide": true, "language": { "url": ctxPath + "/js/plugin/datatables/Chinese.lang" }, "ajax": { "url": ctxPath + "/wagesPayment/getTeamPaymentByTeamPro", "type": "get", "data": function (d) { d.id = id; d.keyWord = $("#keyWord").val(); d.startTime = seTimes[0]; d.endTime = seTimes[1]; }, "error": function (xhr, textStatus, errorThrown) { var msg = xhr.responseText; var response = JSON.parse(msg); var code = response.code; var message = response.message; if (code == 400) { layer.msg(message); } else if (code == 401) { localStorage.removeItem("token"); layer.msg("token过期,请先登录", {shift: -1, time: 1000}, function () { location.href = ctxPath + '/login.html'; }); } else if (code == 403) { console.log("未授权:" + message); layer.msg('未授权'); } else if (code == 500) { console.log('系统错误:' + message); } } }, "dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>", "columns": [ //复选框(通过render渲染复选框) { width: '5%', "data": null, "bSortable": false, render: function (data, type, full, meta) { var node = ''; for (var i = 0; i < isSelected.length; i++) { if (full.id == isSelected[i]) { full.isSelected = 1; } } node = ''; return node; } }, { width: '5%', data: function (row, type, set, meta) { var c = meta.settings._iDisplayStart + meta.row + 1; return c; } }, {"data": "teamMembers",width: '8%'}, {"data": "idNumber",width: '8%'}, {"data": "teamName",width: '5%'}, {"data": "postName",width: '5%'}, {"data": "checkNum",width: '5%'}, {"data": "",width: '8%', //应发工资 "render":function (data,type,row) { var payNum = row['payNum']; if(payNum==null|| payNum=="null"){ payNum=0; } var payNums = Number(payNum); payNums =payNums.toFixed(2); var id = "yfgz"+ row['id'] ; var html = ''; html += ""; return html; } }, // { //绩效是否发放 1是0否 // "data": "", // "defaultContent": "",width: '8%', // "orderable": false, // "render": function (data, type, row) { // var id = "isjx"+ row['id']; // var performanceFlage = row['performanceFlage']; // var html = ''; // console.log(performanceFlage) // if(performanceFlage==1){ // html += '
'; // }else{ // html = ''; // } // return html; // } // }, // {"data": "",width: '8%', // //应发绩效 // "render":function (data,type,row) { // var performanceCount = row['performanceCount']; // if(performanceCount==null|| performanceCount=="null"){ // performanceCount=0; // } // var id = "yfjx"+ row['id'] ; // var html = ''; // html += ""; // return html; // } // }, {"data": "",width: '8%', "render": function (data, type, row) { var withhold = row['withhold']; if(withhold == null || withhold=="null"){ withhold = 0; } var payNum = row['payNum']; var id = row['id'] ; var ids = "dk"+row['id'] ; var html = ''; html += ""; return html; } }, {"data": "",width: '8%', "render":function (data,type,row) { var realPay = row['realPay']; if(realPay==null|| realPay=="null"){ realPay=0; } var realPays = Number(realPay); realPays =realPays.toFixed(2); var id = "sfgz"+ row['id'] ; var html = ''; html += ""; return html; } }, {"data": "bankName",width: '10%'}, {"data": "bankCardNum",width: '8%'}, {"data": "autograph",width: '8%'} ], footerCallback: function (row, data, start, end, display) { var api = this.api(), data; var intVal = function (i) { return typeof i === 'string' ? i.replace(/[\$,]/g, '') * 1 : typeof i === 'number' ? i : 0; }; totalPay(); }, "fnDrawCallback": function() { //重绘表格 layui.form.render('checkbox');//刷新值 }, "order": [ [1, "asc"]] //在栏目列上显示排序功能 }); } function clearNoNum(obj){ //修复第一个字符是小数点 的情况. if(obj.value !=''&& obj.value.substr(0,1) == '.'){ obj.value=""; } obj.value = obj.value.replace(/^0*(0\.|[1-9])/, '$1');//解决 粘贴不生效 obj.value = obj.value.replace(/[^\d.]/g,""); //清除“数字”和“.”以外的字符 obj.value = obj.value.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的 obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$","."); obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入二位个小数 if(obj.value.indexOf(".")< 0 && obj.value !=""){//以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额 if(obj.value.substr(0,1) == '0' && obj.value.length == 2){ obj.value= obj.value.substr(1,obj.value.length); } } } function getWithhold(that,id,payNum) { var str = that.value; //代扣 if(Number(str) < Number(payNum)){ that.value = str; var payNums = $("#yfgz"+id).val(); var isChock = $("#isjx"+id).val(); var performanceCount = 0; if(isChock==1){ performanceCount = $("#yfjx"+id).val(); } var realPay = Number(payNums) + Number(performanceCount) - Number(str) ; if(realPay>0){ realPay =realPay.toFixed(2); }else{ realPay = "0"; } $("#sfgz"+id).val(realPay); }else{ layer.confirm('不能大于'+payNum, {icon: 1, time: 10000}); that.value = "0"; return; } totalPay(); } function totalPay() { //出勤天数 var checkNums = 0; //应发工资 var payNums = 0; //其中代扣/代缴 var withholds = 0; //实发工资 var realPays = 0; var oTable = $('#dt-table').dataTable(); var rowcollection = oTable.$(".checkall:checked", {"page": "all"}); rowcollection.each(function (index, elem) { var checkNum = $(elem).parent().next().next().next().next().next().next().text(); checkNums = Number(checkNums) + Number(checkNum); var payNum = $(elem).parent().next().next().next().next().next().next().next().children().val(); payNums = Number(payNums) + Number(payNum); var withhold = $(elem).parent().next().next().next().next().next().next().next().next().children().val(); withholds = Number(withholds) + Number(withhold); var realPay = $(elem).parent().next().next().next().next().next().next().next().next().next().children().val(); realPays = Number(realPays) + Number(realPay); }); $("#checkNums").html(checkNums.toFixed(2)); $("#payNums").html(payNums.toFixed(2)); $("#withholds").html(withholds.toFixed(2)); $("#realPays").html(realPays.toFixed(2)); } //保存 function recordsBt(){ var id = []; var performanceFlages =[]; //绩效发放和代扣状态修改 var withholds = []; //代扣 var oTable = $('#dt-table').dataTable(); var rowcollection = oTable.$(".checkall:checked", {"page": "all"}); console.log(rowcollection) rowcollection.each(function (index, elem) { // var performanceFlage = $(elem).parent().next().next().next().next().next().next().next().next().text(); // if(performanceFlage==" 是" || performanceFlage=="是"){ // performanceFlage = "1"; // }else{ // performanceFlage= "0" // } var performanceFlage = "1"; var withhold = $(elem).parent().next().next().next().next().next().next().next().next().children().val(); var checkbox_value = $(elem).val(); console.log(checkbox_value) var strArr = checkbox_value.split(","); id.push(strArr[0]); performanceFlages.push(performanceFlage); withholds.push(withhold); }); $.ajax({ type: 'POST', async: true, // 默认异步true,false表示同步 url: ctxPath + "/wagesPayment/updatePerformanceAndWithholdForPerson", data: { "id": id.toString(), "performanceFlage": performanceFlages.toString(), "withhold":withholds.toString(), }, //获取提交的表单字段 success: function (data) { console.log(data) if (data.resMsg == "修改成功") { parent.layer.msg('修改成功', {icon: 1, time: 2000}); setTimeout("reloading()", 2100); } else if (data.resMsg == "修改失败") { parent.layer.msg('修改失败', {icon: 2, time: 2000}); } else { parent.layer.msg(data.resMsg, {icon: 2, time: 2000}); } }, error: function (XMLHttpRequest, textStatus, e) { layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false}); } }); } //设置弹窗关闭 function reloading() { var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 parent.layer.close(index); //再执行关闭 window.parent.example.ajax.reload( null, false ); // 刷新页面 } //下载 function getDownloads() { var seTimeSe = seTime.split("~"); var startTime = seTimeSe[0]; var endTime = seTimeSe[1]; var keyWord = $("#keyWord").val(); var token = localStorage.getItem("token"); var loadingMsg = layer.msg('下载中,请稍候...', {icon: 16, scrollbar: false, time: 0}); var url = ctxPath + "/wagesPayment/exportWagesPaymentDownloads?id=" + id + "&type=3" + "&startTime=" + startTime + "&endTime=" + endTime + "&keyWord=" + keyWord + "&token=" + token; console.log(url) var xhr = new XMLHttpRequest(); xhr.open("get", url, true); xhr.responseType = "blob"; // 转换流 xhr.onload = function () { layer.close(loadingMsg); if (this.status === 200) { var blob = this.response; var a = document.createElement("a"); var url = window.URL.createObjectURL(blob); a.href = url; a.download = "工资支付表-"+ proName +"-"+teamName+ "-"+ year+ "-"+ month + ".xlsx"; // 文件名 }else { layer.msg('导出发生异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000}); } a.click() window.URL.revokeObjectURL(url) }; xhr.send(); } //导入excel文件 function importExcel(){ var formData = new FormData($('form')[0]); var name = $("#articleImageFile").val(); if(name==null|| name == "") { return; } if(!(name.endsWith(".xls") || name.endsWith(".xlsx") || name.endsWith(".xlsm"))) { layer.msg("请上传正确的Excel表格!"); $("#articleImageFile").val(""); return; } formData.append("id", id); formData.append("year", year); formData.append("month", month); formData.append("file", $("#articleImageFile")[0].files[0]); var idx = layer.msg('正在提交数据,请稍等...', { icon: 16 ,shade: 0.01 ,time:'-1' }); $.ajax({ url : ctxPath + "/wagesPayment/importExcel", type : 'POST', async : false, data : formData, timeout:20000, // 告诉jQuery不要去处理发送的数据 processData : false, // 告诉jQuery不要去设置Content-Type请求头 contentType : false, success : function(data) { layer.close(idx); if(data.indexOf("导入成功") !=-1){ layer.alert(data, {icon: 1}); }else if(data.indexOf("导入失败") !=-1){ console.log(data) layer.alert(data, {icon: 2}); } example.ajax.reload(); // 刷新页面 }, error:function(XMLHttpRequest, textStatus, errorThrown) { console.log(JSON.stringify(errorThrown)); layer.close(idx); } }); $("#articleImageFile").val(""); }