2024-08-20 10:13:07 +08:00
|
|
|
|
var yjId = $(window.parent.parent.document).find("input[id='taskSourceId']").attr("stationId");
|
2024-07-29 17:51:23 +08:00
|
|
|
|
var pers = []
|
2024-08-20 10:13:07 +08:00
|
|
|
|
var table,form,layer,laydate;
|
|
|
|
|
|
var times = getCurrentDateTimeArr();
|
|
|
|
|
|
layui.use(['form','layer','table', 'laydate'], function () {
|
2024-07-29 17:51:23 +08:00
|
|
|
|
table = layui.table;
|
|
|
|
|
|
form = layui.form;
|
|
|
|
|
|
layer = layui.layer;
|
2024-08-20 10:13:07 +08:00
|
|
|
|
laydate = layui.laydate;
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
2024-08-20 10:13:07 +08:00
|
|
|
|
// 渲染时间选择器
|
|
|
|
|
|
laydate.render({
|
|
|
|
|
|
elem: '#wagesMonth',
|
|
|
|
|
|
type: 'month',
|
|
|
|
|
|
format: 'yyyy-MM',
|
|
|
|
|
|
fullPanel: true,
|
|
|
|
|
|
value: times[0] + "-" + times[1]
|
|
|
|
|
|
});
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
//取消按钮点击
|
|
|
|
|
|
$("#closeBt").click(() => {
|
|
|
|
|
|
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|
|
|
|
|
parent.layer.close(index); //再执行关闭
|
|
|
|
|
|
})
|
|
|
|
|
|
//保存按钮点击
|
|
|
|
|
|
$("#submitBt").click(() => {
|
|
|
|
|
|
save();
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
init();
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//查询
|
|
|
|
|
|
function queryClick(){
|
|
|
|
|
|
table.reload('layui_table', {
|
|
|
|
|
|
// //设定异步数据接口的额外参数
|
|
|
|
|
|
where: {
|
|
|
|
|
|
'userName': $("#username").val(),
|
|
|
|
|
|
'proName': $("#proName").val(),
|
|
|
|
|
|
'yjId': yjId,
|
|
|
|
|
|
'wagesMonth': $("#wagesMonth").val()
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
//重置
|
|
|
|
|
|
function resetClick(){
|
|
|
|
|
|
$("#username").val('');
|
|
|
|
|
|
$("#proName").val('');
|
|
|
|
|
|
table.reload('layui_table', {
|
|
|
|
|
|
where: {
|
|
|
|
|
|
'userName': '',
|
|
|
|
|
|
'proName': '',
|
|
|
|
|
|
'yjId': yjId,
|
|
|
|
|
|
'wagesMonth': times[0] + "-" + times[1]
|
|
|
|
|
|
},
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//页面赋值
|
|
|
|
|
|
function setData(yjId,yjName,gsName){
|
|
|
|
|
|
$.ajax({
|
|
|
|
|
|
type: 'POST',
|
|
|
|
|
|
url: PATH_URL + '/wages/getWagesNum',
|
|
|
|
|
|
contentType: "application/json; charset=utf-8",
|
|
|
|
|
|
data: JSON.stringify({"userName": '', "proName": ''}),
|
|
|
|
|
|
success: function (data) {
|
|
|
|
|
|
if(data.code == '200'){
|
|
|
|
|
|
$("#inspectionStation").text(yjName);
|
|
|
|
|
|
$("#subComName").text(gsName);
|
|
|
|
|
|
$("#proNum").text(data.data.proNum);
|
|
|
|
|
|
$("#lineProtector").text(data.data.userNum);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 初始化数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
function init(){
|
|
|
|
|
|
// 渲染表格
|
|
|
|
|
|
table.render({
|
2024-08-20 10:13:07 +08:00
|
|
|
|
id: 'layui_table',
|
2024-07-29 17:51:23 +08:00
|
|
|
|
elem: '#table',
|
2024-08-20 10:13:07 +08:00
|
|
|
|
url: PATH_URL + '/wages/getWagesGenerateList',
|
|
|
|
|
|
where: {
|
|
|
|
|
|
'yjId': yjId,
|
|
|
|
|
|
'wagesMonth': $('#wagesMonth').val()
|
|
|
|
|
|
},
|
|
|
|
|
|
page: true, //开启分页
|
|
|
|
|
|
method:'post',
|
|
|
|
|
|
skin: 'line', // 表格样式
|
2024-07-29 17:51:23 +08:00
|
|
|
|
cols: [[
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '序号',
|
|
|
|
|
|
field: 'zizeng',
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
type: 'numbers'
|
|
|
|
|
|
},
|
2024-08-20 10:13:07 +08:00
|
|
|
|
{field:'userName', title: '姓 名',align: 'center',},
|
|
|
|
|
|
{field:'idCard', title: '身份证号',align: 'center',},
|
|
|
|
|
|
{field:'proName', title: '管辖线路名称',align: 'center',},
|
2024-07-29 17:51:23 +08:00
|
|
|
|
{field:'phone', title: '手机号',align: 'center',},
|
|
|
|
|
|
{field:'bank', title: '开户行',align: 'center',},
|
2024-08-20 10:13:07 +08:00
|
|
|
|
{field:'bankCard', title: '银行卡号',align: 'center'},
|
|
|
|
|
|
{field:'unionpayNum', title: '银联号',align: 'center'},
|
|
|
|
|
|
{field:'xsNum', title: '巡视工作量(基*次)',align: 'center', },
|
|
|
|
|
|
{field:'xsPrice', title: '约定巡视工价(元/(基*次))',align: 'center', },
|
|
|
|
|
|
{field:'txNum', title: '特巡工作量(人*天)',align: 'center', },
|
|
|
|
|
|
{field:'txPrice', title: '约定特巡工价(元/(人*天))',align: 'center', },
|
|
|
|
|
|
|
2024-07-29 17:51:23 +08:00
|
|
|
|
{
|
|
|
|
|
|
field: '',
|
|
|
|
|
|
title: '合价(元)',
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
templet: function(d){
|
2024-08-20 10:13:07 +08:00
|
|
|
|
var xsNum = d.xsNum;
|
|
|
|
|
|
var xsPrice = d.xsPrice;
|
|
|
|
|
|
var txNum = d.txNum;
|
|
|
|
|
|
var txPrice = d.txPrice;
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
var totalPrice = "";
|
|
|
|
|
|
//判断是否是数字
|
2024-08-20 10:13:07 +08:00
|
|
|
|
if(isNumber(xsNum) && isNumber(xsPrice) && isNumber(txNum) && isNumber(txPrice)){
|
|
|
|
|
|
totalPrice = Number(xsNum) * Number(xsPrice) + Number(txNum) * Number(txPrice)
|
2024-07-29 17:51:23 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
totalPrice = "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var html = `<span>${totalPrice}</span>`;
|
|
|
|
|
|
return html;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
field: '',
|
|
|
|
|
|
title: '通讯费',
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
templet: function(d){
|
|
|
|
|
|
var id = d.id
|
2024-07-31 19:01:05 +08:00
|
|
|
|
var html = `<input class="message layui-input" key="${id}" oninput="computemMessage(this)" type="number" min="0" value="0" lay-verify="required" style="width: 54px;height: 25px;"/>`;
|
2024-07-29 17:51:23 +08:00
|
|
|
|
return html;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
field: '',
|
|
|
|
|
|
title: '奖惩',
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
templet: function(d){
|
|
|
|
|
|
var id = d.id
|
2024-07-31 19:01:05 +08:00
|
|
|
|
var html = `<input class="bonusPenalty layui-input" key="${id}" oninput="computeBonusPenalty(this)" type="number" value="0" lay-verify="required" style="width: 54px;height: 25px;"/>`;
|
2024-07-29 17:51:23 +08:00
|
|
|
|
return html;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
field: '',
|
|
|
|
|
|
title: '备注',
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
templet: function(d){
|
|
|
|
|
|
var id = d.id
|
2024-07-31 19:01:05 +08:00
|
|
|
|
var html = `<input class="remark layui-input" key="${id}" type="text" style="width: 76px;height: 25px;"/>`;
|
2024-07-29 17:51:23 +08:00
|
|
|
|
return html;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
field: '',
|
|
|
|
|
|
title: '实发金额',
|
|
|
|
|
|
align: 'center',
|
|
|
|
|
|
templet: function(d){
|
2024-08-20 10:13:07 +08:00
|
|
|
|
var xsNum = d.xsNum;
|
|
|
|
|
|
var xsPrice = d.xsPrice;
|
|
|
|
|
|
var txNum = d.txNum;
|
|
|
|
|
|
var txPrice = d.txPrice;
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
var netSalary = "";
|
|
|
|
|
|
//判断是否是数字
|
2024-08-20 10:13:07 +08:00
|
|
|
|
if(isNumber(xsNum) && isNumber(xsPrice) && isNumber(txNum) && isNumber(txPrice)){
|
|
|
|
|
|
netSalary = Number(xsNum) * Number(xsPrice) + Number(txNum) * Number(txPrice);
|
2024-07-29 17:51:23 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
netSalary = "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var html = `<span class="netSalary" style="color: #D9001B">${netSalary}</span>`;
|
|
|
|
|
|
return html;
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
]],
|
2024-08-20 10:13:07 +08:00
|
|
|
|
done: function(res,curr,count){
|
|
|
|
|
|
//checkPermission();
|
|
|
|
|
|
}
|
2024-07-29 17:51:23 +08:00
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//通讯费input失去焦点事件
|
|
|
|
|
|
function computemMessage(enent){
|
|
|
|
|
|
var thisValue = $(enent).val();
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//合价
|
2024-07-29 17:51:23 +08:00
|
|
|
|
var totalPrice = $(enent).parent().parent().prev().children().children().text();
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//奖惩
|
|
|
|
|
|
var bonusPenalty = $(enent).parent().parent().next().children().children().val();
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
var value = ""
|
|
|
|
|
|
//判断是否是数字
|
2024-08-20 10:13:07 +08:00
|
|
|
|
if(isNumber(thisValue) && isNumber(totalPrice) && isNumber(bonusPenalty)){
|
|
|
|
|
|
value = Number(thisValue) + Number(totalPrice) + Number(bonusPenalty);
|
2024-07-29 17:51:23 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
value = "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$(enent).parent().parent().next().next().next().children().children().text(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
//奖惩 input失去焦点事件
|
|
|
|
|
|
function computeBonusPenalty(enent){
|
|
|
|
|
|
var thisValue = $(enent).val();
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//合价
|
2024-07-29 17:51:23 +08:00
|
|
|
|
var totalPrice = $(enent).parent().parent().prev().prev().children().children().text();
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//通讯费
|
|
|
|
|
|
var phonePrice = $(enent).parent().parent().prev().children().children().val();
|
2024-07-29 17:51:23 +08:00
|
|
|
|
var value = ""
|
2024-08-20 10:13:07 +08:00
|
|
|
|
|
2024-07-29 17:51:23 +08:00
|
|
|
|
//判断是否是数字
|
2024-08-20 10:13:07 +08:00
|
|
|
|
if(isNumber(thisValue) && isNumber(totalPrice) && isNumber(phonePrice)){
|
|
|
|
|
|
value = Number(thisValue) + Number(totalPrice) + Number(phonePrice);
|
2024-07-29 17:51:23 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
value = "0"
|
|
|
|
|
|
}
|
|
|
|
|
|
$(enent).parent().parent().next().next().children().children().text(value);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-08-20 10:13:07 +08:00
|
|
|
|
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
//保存
|
|
|
|
|
|
function save(){
|
2024-08-20 10:13:07 +08:00
|
|
|
|
// 获取表格的所有数据
|
|
|
|
|
|
var data = table.cache['layui_table'];
|
|
|
|
|
|
|
2024-07-29 17:51:23 +08:00
|
|
|
|
//获取通讯费 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++) {
|
2024-08-20 10:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
var userId = data[i].userId;
|
|
|
|
|
|
var proName = data[i].proName;
|
|
|
|
|
|
var makeId = data[i].makeId;
|
|
|
|
|
|
var wagesMonth = $("#wagesMonth").val();
|
|
|
|
|
|
//巡视工作量(基*次)
|
|
|
|
|
|
var xsNum = data[i].xsNum;
|
|
|
|
|
|
//约定巡视工价(元/(基*次))
|
|
|
|
|
|
var xsPrice = data[i].xsPrice
|
|
|
|
|
|
//特巡工作量(人*天)
|
|
|
|
|
|
var txNum = data[i].txNum
|
|
|
|
|
|
//约定特巡工价(元/(人*天))
|
|
|
|
|
|
var txPrice = data[i].txPrice
|
|
|
|
|
|
//合价(元)
|
|
|
|
|
|
var allPrice = data[i].allPrice
|
|
|
|
|
|
|
2024-07-29 17:51:23 +08:00
|
|
|
|
//获取此行数据 的id
|
2024-08-20 10:13:07 +08:00
|
|
|
|
// var id = $(messages[i]).attr("key");
|
2024-07-29 17:51:23 +08:00
|
|
|
|
//获取通讯费
|
2024-08-20 10:13:07 +08:00
|
|
|
|
var phonePrice = $(messages[i]).val();
|
2024-07-29 17:51:23 +08:00
|
|
|
|
//获取奖惩
|
2024-08-20 10:13:07 +08:00
|
|
|
|
var reward = $(bonusPenaltys[i]).val();
|
2024-07-29 17:51:23 +08:00
|
|
|
|
//获取备注
|
|
|
|
|
|
var remark = $(remarks[i]).val();
|
2024-07-31 19:01:05 +08:00
|
|
|
|
//获取实发金额
|
2024-08-20 10:13:07 +08:00
|
|
|
|
var wages = $(netSalarys[i]).text();
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
2024-08-20 10:13:07 +08:00
|
|
|
|
if(phonePrice == ""){
|
2024-07-31 19:01:05 +08:00
|
|
|
|
layer.msg("请填写通讯费", {icon: 0});
|
|
|
|
|
|
$(messages[i]).focus();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-08-20 10:13:07 +08:00
|
|
|
|
if(reward == ""){
|
2024-07-31 19:01:05 +08:00
|
|
|
|
layer.msg("请填写奖惩", {icon: 0});
|
|
|
|
|
|
$(bonusPenaltys[i]).focus();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(remark == ""){
|
|
|
|
|
|
layer.msg("请填写备注", {icon: 0});
|
|
|
|
|
|
$(remarks[i]).focus();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-08-20 10:13:07 +08:00
|
|
|
|
|
|
|
|
|
|
if(!isInteger(Number(phonePrice))){
|
|
|
|
|
|
layer.msg("通讯费必须为整数", {icon: 0});
|
|
|
|
|
|
$(messages[i]).focus();
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if(!isInteger(Number(reward))){
|
|
|
|
|
|
layer.msg("奖惩必须为整数", {icon: 0});
|
|
|
|
|
|
$(bonusPenaltys[i]).focus();
|
2024-07-31 19:01:05 +08:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-07-29 17:51:23 +08:00
|
|
|
|
var json = {
|
2024-08-20 10:13:07 +08:00
|
|
|
|
'userId': userId,
|
|
|
|
|
|
'proName': proName,
|
|
|
|
|
|
'makeId': makeId,
|
|
|
|
|
|
'wagesMonth': wagesMonth,
|
|
|
|
|
|
'xsNum': xsNum,
|
|
|
|
|
|
'xsPrice': xsPrice,
|
|
|
|
|
|
'txNum': txNum,
|
|
|
|
|
|
'txPrice': txPrice,
|
|
|
|
|
|
'allPrice': allPrice,
|
|
|
|
|
|
'phonePrice': phonePrice,
|
|
|
|
|
|
'reward': reward,
|
|
|
|
|
|
'remarks': remark,
|
|
|
|
|
|
'wages': wages
|
2024-07-29 17:51:23 +08:00
|
|
|
|
}
|
|
|
|
|
|
arr.push(json);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2024-08-20 10:13:07 +08:00
|
|
|
|
console.log('arr:', arr)
|
2024-07-29 17:51:23 +08:00
|
|
|
|
|
|
|
|
|
|
//将整合的数据传至后台
|
|
|
|
|
|
// 加载提示
|
|
|
|
|
|
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0, shade: [0.8, '#393D49']});
|
|
|
|
|
|
// form请求地址
|
2024-08-20 10:13:07 +08:00
|
|
|
|
let formUrl = PATH_URL + "/wages/insertWages";
|
2024-07-29 17:51:23 +08:00
|
|
|
|
$.ajax({
|
|
|
|
|
|
type: 'POST',
|
2024-08-20 10:13:07 +08:00
|
|
|
|
contentType: "application/json; charset=utf-8",
|
2024-07-29 17:51:23 +08:00
|
|
|
|
url: formUrl, // 请求地址
|
|
|
|
|
|
data: JSON.stringify(arr),
|
|
|
|
|
|
success: function (data) {
|
|
|
|
|
|
layer.close(loadingMsg); // 关闭提示层
|
|
|
|
|
|
if(data.code == 200){
|
2024-08-20 10:13:07 +08:00
|
|
|
|
parent.layer.msg("添加成功", { icon: 1 });
|
|
|
|
|
|
var index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
|
|
|
|
|
parent.layer.close(index); //再执行关闭
|
2024-07-29 17:51:23 +08:00
|
|
|
|
}else{
|
|
|
|
|
|
layer.alert(data.msg);
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
error: function (XMLHttpRequest, textStatus, e) {
|
|
|
|
|
|
layer.msg('数据请求发生异常,请稍后重试', {icon: 16, scrollbar: false});
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//判断是否为数字
|
|
|
|
|
|
function isNumber(variable){
|
|
|
|
|
|
return !isNaN(Number(variable));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-08-20 10:13:07 +08:00
|
|
|
|
//判断是不是整数
|
|
|
|
|
|
function isInteger(obj){
|
|
|
|
|
|
return typeof obj === 'number' && obj % 1 === 0
|
|
|
|
|
|
}
|