yn_hxy_web/hxy-web/js/wireManager/wagesReport/producePayroll.js

275 lines
8.6 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 pers = []
var table,form,layer
layui.use(['form','layer','table'], function () {
table = layui.table;
form = layui.form;
layer = layui.layer;
//测试
setData(null);
// 触发submit提交 按钮点击或者表单被执行提交时触发
form.on('submit(query)', function (data) {
// 对表格进行重载。id 即 table表格的id
table.reload('table', {
// //设定异步数据接口的额外参数
where: data.field
})
return false; // 阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
form.on('submit(reset)', function () {
$('#username').val('');
$('#proname').val('');
form.render();
let obj = {
username:'',
proname:'',
}
// 对表格进行重载。id 即 table表格的id
table.reload('table', {
// //设定异步数据接口的额外参数
where: obj
})
return false; // 阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
//取消按钮点击
$("#closeBt").click(() => {
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
})
//保存按钮点击
$("#submitBt").click(() => {
save();
})
init();
});
// 静态数据
var tableData = [
{id: 1, username: '李云飞', idNumber: '342224196202241356', lineName: '500kV大宝回线',phone:'15665366624',bank:'中国银行',bankNumber:'xxxxxxxxxxxxxxxxxxxx',UnionPayNumber:'xxxxxxxxxxxx',visitationWorkSecond:'31',laborPrice:'10',visitationWorkDay:'5',laborPriceDay:'115'},
{id: 2, username: '李云飞', idNumber: '342224196202241356', lineName: '500kV大宝回线',phone:'15665366624',bank:'中国银行',bankNumber:'xxxxxxxxxxxxxxxxxxxx',UnionPayNumber:'xxxxxxxxxxxx',visitationWorkSecond:'32',laborPrice:'10',visitationWorkDay:'5',laborPriceDay:'115'},
{id: 3, username: '李云飞', idNumber: '342224196202241356', lineName: '500kV大宝回线',phone:'15665366624',bank:'中国银行',bankNumber:'xxxxxxxxxxxxxxxxxxxx',UnionPayNumber:'xxxxxxxxxxxx',visitationWorkSecond:'33',laborPrice:'10',visitationWorkDay:'5',laborPriceDay:'115'},
];
/**
* 初始化数据
*/
function init(){
// 渲染表格
table.render({
elem: '#table',
// url: "/sys/achievement",
// page: true,
skin: 'line', // 表格样式
data: tableData,
cols: [[
{
title: '序号',
field: 'zizeng',
align: 'center',
type: 'numbers'
},
{field:'username', title: '姓 名',align: 'center',},
{field:'idNumber', title: '身份证号',align: 'center',},
{field:'lineName', title: '管辖线路名称',align: 'center',},
{field:'phone', title: '手机号',align: 'center',},
{field:'bank', title: '开户行',align: 'center',},
{field:'bankNumber', title: '银行卡号',align: 'center'},
{field:'UnionPayNumber', title: '银联号',align: 'center'},
{field:'visitationWorkSecond', title: '巡视工作量(基*次)',align: 'center', },
{field:'laborPrice', title: '约定巡视工价(元/(基*次)',align: 'center', },
{field:'visitationWorkDay', title: '特巡工作量(人*天)',align: 'center', },
{field:'laborPriceDay', title: '约定特巡工价(元/(人*天)',align: 'center', },
{
field: '',
title: '合价(元)',
align: 'center',
templet: function(d){
var visitationWorkSecond = d.visitationWorkSecond;
var laborPrice = d.laborPrice;
var visitationWorkDay = d.visitationWorkDay;
var laborPriceDay = d.laborPriceDay;
var totalPrice = "";
//判断是否是数字
if(isNumber(visitationWorkSecond) && isNumber(laborPrice) && isNumber(visitationWorkDay) && isNumber(laborPriceDay)){
totalPrice = Number(visitationWorkSecond) * Number(laborPrice) + Number(visitationWorkDay) * Number(laborPriceDay)
}else{
totalPrice = "0"
}
var html = `<span>${totalPrice}</span>`;
return html;
},
},
{
field: '',
title: '通讯费',
align: 'center',
templet: function(d){
var id = d.id
var html = `<input class="message" key="${id}" oninput="computemMessage(this)" type="number" min="0" value="0" lay-verify="required" class="layui-input" style="width: 54px;border: 1px #E4E4E4 solid;border-radius: 3px;height: 25px;"/>`;
return html;
},
},
{
field: '',
title: '奖惩',
align: 'center',
templet: function(d){
var id = d.id
var html = `<input class="bonusPenalty" key="${id}" oninput="computeBonusPenalty(this)" type="number" value="0" lay-verify="required" class="layui-input" style="width: 54px;border: 1px #E4E4E4 solid;border-radius: 3px;height: 25px;"/>`;
return html;
},
},
{
field: '',
title: '备注',
align: 'center',
templet: function(d){
var id = d.id
var html = `<input class="remark" key="${id}" type="text" class="layui-input" style="width: 76px;border: 1px #E4E4E4 solid;border-radius: 3px;height: 25px;"/>`;
return html;
},
},
{
field: '',
title: '实发金额',
align: 'center',
templet: function(d){
var visitationWorkSecond = d.visitationWorkSecond;
var laborPrice = d.laborPrice;
var visitationWorkDay = d.visitationWorkDay;
var laborPriceDay = d.laborPriceDay;
var netSalary = "";
//判断是否是数字
if(isNumber(visitationWorkSecond) && isNumber(laborPrice) && isNumber(visitationWorkDay) && isNumber(laborPriceDay)){
netSalary = Number(visitationWorkSecond) * Number(laborPrice) + Number(visitationWorkDay) * Number(laborPriceDay);
}else{
netSalary = "0"
}
var html = `<span class="netSalary" style="color: #D9001B">${netSalary}</span>`;
return html;
},
},
]],
});
}
//通讯费input失去焦点事件
function computemMessage(enent){
var thisValue = $(enent).val();
var totalPrice = $(enent).parent().parent().prev().children().children().text();
var value = ""
//判断是否是数字
if(isNumber(thisValue) && isNumber(totalPrice)){
value = Number(thisValue) + Number(totalPrice);
}else{
value = "0"
}
$(enent).parent().parent().next().next().next().children().children().text(value);
}
//奖惩 input失去焦点事件
function computeBonusPenalty(enent){
var thisValue = $(enent).val();
var totalPrice = $(enent).parent().parent().prev().prev().children().children().text();
var value = ""
//判断是否是数字
if(isNumber(thisValue) && isNumber(totalPrice)){
value = Number(thisValue) + Number(totalPrice);
}else{
value = "0"
}
$(enent).parent().parent().next().next().children().children().text(value);
}
//页面赋值
function setData(data){
$("#inspectionStation").text("迪庆运检站");
$("#subComName").text("运检二公司");
$("#proNum").text("60");
$("#lineProtector").text("16");
$("#month").text("3月")
}
//保存
function save(){
//获取通讯费 DOM
var messages = $(".message");
//获取奖惩 DOM
var bonusPenaltys = $(".bonusPenalty");
//获取备注 DOM
var remarks = $(".remark");
//获取实发金额 DOM
var netSalarys = $(".netSalary");
var arr = [];
//循环获取的 DOM将数据整合
for (var i = 0; i < messages.length; i++) {
//获取此行数据 的id
var id = $(messages[i]).attr("key");
//获取通讯费
var message = $(messages[i]).val();
//获取奖惩
var bonusPenalty = $(bonusPenaltys[i]).val();
//获取备注
var remark = $(remarks[i]).val();
//获取实发金额 DOM
var netSalary = $(netSalarys[i]).text();
var json = {
"id": id,
"message": message == ""? "0" : message,
"bonusPenalty": bonusPenalty? "0" : message,
"remark": remark,
"netSalary": netSalary
}
arr.push(json);
}
console.log(arr)
//将整合的数据传至后台
// 加载提示
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
// form请求地址
let formUrl = PATH_URL + "";
$.ajax({
type: 'POST',
async: true, // 默认异步true,false表示同步
url: formUrl, // 请求地址
data: JSON.stringify(arr),
success: function (data) {
layer.close(loadingMsg); // 关闭提示层
if(data.code == 200){
top.layer.msg("保存成功");
reloading();
}else{
layer.alert(data.msg);
}
},
error: function (XMLHttpRequest, textStatus, e) {
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
}
});
}
//判断是否为数字
function isNumber(variable){
return !isNaN(Number(variable));
}