HnRealNameBmwWeb/js/work/person/wagesManage/wagesGrantEditForm.js

567 lines
23 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var example = null;
var pers = null;
var isSelected = [];
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 seTime = localStorage.getItem("seTime");
var date = seTime.split("~");
var startTime = date[0];
var endTime = date[1];
$(function () {
layui.use(['layer', 'laydate', 'form'], function () {
var layer = layui.layer;
var laydate = layui.laydate;
var form = layui.form;
$("#proName").html(proName);
$("#teamName").html(teamName);
$("#year").html(year);
$("#month").html(month);
init();
pers = checkPermission();
$("#searchBt").click(function () {
example.ajax.reload();
});
});
})
function init() {
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 + "/wagesGrant/getWagesInfos",
"type": "get",
"data": function (d) {
d.teamId = teamId;
d.proId = proId;
d.year = year;
d.month = month;
d.keyWord = $("#keyWord").val();
d.startTime = startTime;
d.endTime = endTime;
},
"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 = '<input class="checkall" name="checked" checked="checked" value=\"' + full.idNumber + '\" type="checkbox" disabled />';
if (full.isSelected == 1) {
isSelected.push(full.id);
node = '<input class="checkall" name="checked" checked="checked" value=\"' + full.idNumber + '\" type="checkbox" disabled />';
}
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": "postName",width: '8%',},
{"data": "unitPrice",width: '8%'},
{"data": "checkNum",width: '8%'},
{"data": "",width: '8%',
"orderable": false,
"render": function (data, type, row,meta) {
var basePay = row['basePay'];
if(basePay==null|| basePay=="null"){
basePay=0;
}
var id = "dyxj"+ meta.row ;
var html = '';
html += "<input type='text' maxlength='8' style='text-align: center;border: 0px;width: 100%;' id='" + id + "' value='" + basePay + "' readonly />";
return html;
}
},
{ //加班天数
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var overtimeday = row['overtimeday'];
if(overtimeday==null|| overtimeday=="null"){
overtimeday=0;
}
var id = "jbts"+ meta.row ;
var html = '';
html += "<input type='text' maxlength='8' style='text-align: center;width: 100%;' id='" + id + "' value='" + overtimeday + "' onchange='getOvertimePay(this,\""+meta.row+"\")' onkeyup='clearNoNum(this)' />";
return html;
}
},
{ //单价
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var unitOvertimePay = row['unitOvertimePay'];
var id = "jbdj" + meta.row ;
var html = '';
html += "<input type='text' maxlength='8' style='text-align: center;width: 100%;' id='" + id + "' value='" + unitOvertimePay + "' onchange='getOvertimePays(this,\""+meta.row+"\")' onkeyup='clearNoNum(this)' />";
return html;
}
},
{ //小计
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var overtimePay = row['overtimePay'];
overtimePay = Number(overtimePay)
overtimePay = overtimePay.toFixed(2);
var id = "jbxj" + meta.row ;
var html = '';
html += "<input type='text' maxlength='8' id='" + id + "' value='" + overtimePay + "' readonly style='border: 0px;text-align: center;width: 100%;' />";
return html;
}
},
{ //绩效奖金 单价
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var unitPerformanceFee = row['unitPerformanceFee'];
var minAchievementsMoney = row['minAchievementsMoney'];
if(minAchievementsMoney==null|| minAchievementsMoney=="null"){
minAchievementsMoney=0;
}else{
minAchievementsMoney = minAchievementsMoney;
}
var maxAchievementsMoney = row['maxAchievementsMoney'];
if(maxAchievementsMoney==null|| maxAchievementsMoney=="null"){
maxAchievementsMoney=600;
}else{
maxAchievementsMoney = maxAchievementsMoney;
}
var id = "jxdj" + meta.row ;
var html = '';
html += "<input type='text' maxlength='8' style='text-align: center;width: 100%;' id='" + id + "' value='" + unitPerformanceFee + "' onchange='getNumAchievements(this,\""+meta.row+"\",\""+minAchievementsMoney+"\",\""+maxAchievementsMoney+"\")' onkeyup='clearNoNum(this)' />";
return html;
}
},
{ //考勤天数
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var performanceDay = row['performanceDay'];
var checknumTotal = row['checknumTotal'];
if(checknumTotal==null|| checknumTotal=="null"){
checknumTotal = 0;
}
var id = "jxts" + meta.row ;
var html = '';
html += "<input type='text' maxlength='8' style='text-align: center;width: 100%;' id='" + id + "' value='" + performanceDay + "' onchange='getNumst(this,\""+meta.row+"\",\""+checknumTotal+"\")' onkeyup='clearNoNum(this)' />";
return html;
}
},
{ //小计
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var performanceFeePay = row['performanceFeePay'];
performanceFeePay = Number(performanceFeePay)
performanceFeePay = performanceFeePay.toFixed(2);
var id = "jxxj" + meta.row ;
var html = '';
html += "<input type='text' maxlength='8' readonly id='" + id + "' value='" + performanceFeePay + "' style='text-align: center;border: 0px;width: 100%;'/>";
return html;
}
},
{ //报酬小计
"data": "",
"defaultContent": "",width: '5%',
"orderable": false,
"render": function (data, type, row,meta) {
var payNum = row['payNum'];
if(payNum==null||payNum=="null"){
payNum=0;
}
payNum = Number(payNum)
payNum = payNum.toFixed(2);
var id = "bcxj" + meta.row ;
var html = '';
html += "<input type='text' maxlength='8' id='" + id + "' value='" + payNum + "' readonly style='text-align: center;border: 0px;width: 100%;' />";
return html;
}
},
{"data": "performanceCount",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;
};
total();
},
"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 payNums(type) {
var dyxj = $("#dyxj"+type).val();
var jbxj = $("#jbxj"+type).val();
var jxxj = $("#jxxj"+type).val();
var bcxj = Number(dyxj) + Number(jbxj) + Number(jxxj);
bcxj =bcxj.toFixed(2);
$("#bcxj"+type).val(bcxj);
}
//计算合计的
function total() {
//当月发放基本工资
var basePayTotal = 0;
//加班费
var overtimePayTotal = 0;
//绩效奖金
var bonusTotal = 0;
//绩效奖金累计(含本月)
var bonusTotals = 0;
//报酬小计
var remunerationTotals = 0 ;
var oTable = $('#dt-table').dataTable();
var rowcollection = oTable.$(".checkall:checked", {"page": "all"});
rowcollection.each(function (index, elem) {
var basePay = $(elem).parent().next().next().next().next().next().next().next().children().val();
basePayTotal = Number(basePay) + Number(basePayTotal);
var overtimePay = $(elem).parent().next().next().next().next().next().next().next().next().next().next().children().val();
overtimePayTotal = Number(overtimePay) + Number(overtimePayTotal);
var bonus = $(elem).parent().next().next().next().next().next().next().next().next().next().next().next().next().next().children().val();
bonusTotal = Number(bonus) + Number(bonusTotal);
var bonusToo = $(elem).parent().next().next().next().next().next().next().next().next().next().next().next().next().next().next().next().text();
bonusTotals = Number(bonusToo) + Number(bonusTotals);
var remuneration = $(elem).parent().next().next().next().next().next().next().next().next().next().next().next().next().next().next().children().val();
remunerationTotals = Number(remuneration) + Number(remunerationTotals);
});
basePayTotal =basePayTotal.toFixed(2);
overtimePayTotal =overtimePayTotal.toFixed(2);
$("#basePays").html(basePayTotal);
$("#overtimePays").html(overtimePayTotal);
bonusTotal =bonusTotal.toFixed(2);
bonusTotals =bonusTotals.toFixed(2);
remunerationTotals =remunerationTotals.toFixed(2);
$("#performanceDays").html(bonusTotal);
$("#monthPerformanceDays").html(bonusTotals);
$("#remuneration").html(remunerationTotals);
}
function getNumAchievements(that,type,minAchievementsMoney,maxAchievementsMoney) {
var str = that.value;
if(Number(str) >= Number(minAchievementsMoney)){
if(Number(str) <= Number(maxAchievementsMoney) ){
that.value = str;
}else{
layer.confirm('请填写小于等于'+maxAchievementsMoney, {icon: 1, time: 10000});
that.value = "0";
return;
}
}else{
layer.confirm('请填写大于等于'+minAchievementsMoney, {icon: 1, time: 10000});
that.value = "0";
return;
}
var unitPerformanceFee = $("#jxdj"+type).val();
var performanceDay = $("#jxts"+type).val();
var performanceFeePay = Number(unitPerformanceFee) * Number(performanceDay);
performanceFeePay =performanceFeePay.toFixed(2);
$("#jxxj"+type).val(performanceFeePay);
payNums(type)
total();
}
function getNumst(that,type,checknumTotal) {
var str = that.value;
if(Number(str) <= Number(checknumTotal)){
that.value = str;
}else{
layer.confirm('请填写小于等于'+checknumTotal, {icon: 1, time: 10000});
that.value = "0";
return;
}
var unitPerformanceFee = $("#jxdj"+type).val();
var performanceDay = $("#jxts"+type).val();
var performanceFeePay = Number(unitPerformanceFee) * Number(performanceDay);
performanceFeePay =performanceFeePay.toFixed(2);
$("#jxxj"+type).val(performanceFeePay);
payNums(type)
total();
}
//计算加班费用 加班天数
function getOvertimePay(that,type) {
var str = that.value;
if(Number(str) < Number(31)){
that.value = str;
}else{
layer.confirm('加班天数不能大于30天', {icon: 1, time: 10000});
that.value = "0";
return;
}
var overtimeday = $("#jbts"+type).val();
var unitOvertimePay = $("#jbdj"+type).val();
var overtimePay = Number(overtimeday) * Number(unitOvertimePay);
overtimePay =overtimePay.toFixed(2);
$("#jbxj"+type).val(overtimePay);
payNums(type)
total();
}
//计算加班费用 单价
function getOvertimePays(that,type) {
var str = that.value;
if(Number(str) < Number(1201)){
that.value = str;
}else{
that.value = "0";
}
var overtimeday = $("#jbts"+type).val();
var unitOvertimePay = $("#jbdj"+type).val();
var overtimePay = Number(overtimeday) * Number(unitOvertimePay);
overtimePay =overtimePay.toFixed(2);
$("#jbxj"+type).val(overtimePay);
payNums(type)
total();
}
//修改
function editBtn(){
var idNumber = [];//考勤人员身份证
var overtimeday = []; //加班天数
var unitOvertimePay = []; //单价
var unitPerformanceFee = []; //单价
var performanceDay = []; //考勤天数
var flagOvertimedays = 1;
var flagUnitOvertimePays = 1;
var flagUnitPerformanceFees = 1;
var flagPerformanceDays = 1;
var oTable = $('#dt-table').dataTable();
var rowcollection = oTable.$(".checkall:checked", {"page": "all"});
rowcollection.each(function (index, elem) {
var overtimedays = $(elem).parent().next().next().next().next().next().next().next().next().children().val();
if(overtimedays == "" || overtimedays == null){
flagOvertimedays = 2;
}
var unitOvertimePays = $(elem).parent().next().next().next().next().next().next().next().next().next().children().val();
if(unitOvertimePays == "" || unitOvertimePays == null){
flagUnitOvertimePays = 2;
}
var unitPerformanceFees = $(elem).parent().next().next().next().next().next().next().next().next().next().next().next().children().val();
if(unitPerformanceFees == "" || unitPerformanceFees == null){
flagUnitPerformanceFees = 2;
}
var performanceDays = $(elem).parent().next().next().next().next().next().next().next().next().next().next().next().next().children().val();
if(performanceDays == "" || performanceDays == null){
flagPerformanceDays = 2;
}
var checkbox_value = $(elem).val();
var strArr = checkbox_value.split(",");
idNumber.push(strArr[0]);
overtimeday.push(overtimedays);
unitOvertimePay.push(unitOvertimePays);
unitPerformanceFee.push(unitPerformanceFees);
performanceDay.push(performanceDays);
});
if(flagOvertimedays == 2){
parent.layer.msg("请填写加班天数", {icon: 2, time: 2000});
return;
}
if(flagUnitOvertimePays == 2){
parent.layer.msg("请填写加班单价", {icon: 2, time: 2000});
return;
}
if(flagUnitPerformanceFees == 2){
parent.layer.msg("请填写单价", {icon: 2, time: 2000});
return;
}
if(flagPerformanceDays == 2){
parent.layer.msg("请填写考勤天数", {icon: 2, time: 2000});
return;
}
$.ajax({
type: 'POST',
async: true, // 默认异步true,false表示同步
url: ctxPath + "/wagesGrant/updatePayForPerson", // 请求地址
data: {
"proId": proId,
"teamId": teamId,
"year": year,
"month": month,
"idNumber": idNumber.toString(),
"overtimeday":overtimeday.toString(),
"unitOvertimePay":unitOvertimePay.toString(),
"unitPerformanceFee":unitPerformanceFee.toString(),
"performanceDay":performanceDay.toString(),
"startTime":startTime,
"endTime":endTime
}, //获取提交的表单字段
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, {icon: 2, time: 2000});
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
function getPro(proId) {
$("#proId").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/noSignalTeamRecords/getPro',
data: {},
dataType: 'json',
success: function (data) {
if(data.length>0){
var str = '<option selected value="-1">请选择工程</option>';
for(var i = 0; i < data.length; i++) {
if(proId == data[i].id) {
str += '<option selected value=\'' + data[i].id + '\'>' + data[i].name + '</option>';
} else {
str += '<option value=\'' + data[i].id + '\'>' + data[i].name + '</option>';
}
}
$("#proId").append(str);
layui.form.render('select'); //这里就是我们要渲染的地方了
}
}
})
}
function getTeam(proId,teamId) {
$("#teamId").empty();
$.ajax({
type: 'POST',
url: ctxPath + '/noSignalTeamRecords/getTeam',
data: {
id: proId
},
dataType: 'json',
success: function (data) {
if(data.length>0){
var str = '<option selected value="-1">请选择班组</option>';
for(var i = 0; i < data.length; i++) {
if(teamId == data[i].id) {
str += '<option selected value=\'' + data[i].id + '\'>' + data[i].name + '</option>';
} else {
str += '<option value=\'' + data[i].id + '\'>' + data[i].name + '</option>';
}
}
$("#teamId").append(str);
layui.form.render('select'); //这里就是我们要渲染的地方了
}
}
})
}
/**
* 获得当前时间 yyyy-MM-dd
* @returns {string}
*/
function getNowTime() {
var time = new Date();
var year = time.getFullYear();
var month = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : '0' + (time.getMonth() + 1);
var day = time.getDate() >= 10 ? time.getDate() : '0' + time.getDate();
return year + "-" + month + "-" + day;
}
//设置弹窗关闭
function reloading() {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
window.parent.location.reload();
}