You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

223 lines
10 KiB
Plaintext

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<script>
/**
* 自动添加出差明细
*/
function adddetail() {
//首先进行必填校验,不通过直接退出
//if(!WfForm.verifyFormRequired(false, true)){ return; }
let mainTableData = {
szjg: WfForm.getFieldValue(WfForm.convertFieldNameToId("szjg")),
jbry: WfForm.getFieldValue(WfForm.convertFieldNameToId("jbry")),
jblx: WfForm.getFieldValue(WfForm.convertFieldNameToId("jblx")),
mttsdjb: WfForm.getFieldValue(WfForm.convertFieldNameToId("mttsdjb")),
ksrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq")),
jsrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq")),
kssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("kssj")),
jssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("jssj"))
}
let param = {
mainTableData:JSON.stringify(mainTableData),
}
console.log(param);
$.ajax({
url:'/api/attendance/overtimeplan/generateOvertimePlanDetails',
data:param,
type:'GET',
dataType:'json',
async:false,
success:function(res){
if(res.api_status){
if(res.data.status){
WfForm.delDetailRow("detail_1", "all");
let resultData = res.data.data;
resultData.filter(item => {
let addObj = {};
addObj[WfForm.convertFieldNameToId("jbry", "detail_1")] = {value:item.jbry,specialobj:[{id:item.jbry,name:item.jbryName}]};
addObj[WfForm.convertFieldNameToId("jblx", "detail_1")] = {value:item.jblx,specialobj:[{id:item.jblx,name:item.jblxName}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")]={value:item.ksrq};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")]={value:item.kssj};
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")]={value:item.jsrq};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")]={value:item.jssj};
addObj[WfForm.convertFieldNameToId("gsrq", "detail_1")]={value:item.gsrq};
addObj[WfForm.convertFieldNameToId("jbsc", "detail_1")]={value:Number(item.jbsc)};
WfForm.addDetailRow("detail_1", addObj);
})
}else{
WfForm.delDetailRow("detail_1", "all");
let resultData = res.data.data;
resultData.filter(item => {
let addObj = {};
addObj[WfForm.convertFieldNameToId("jbry", "detail_1")] = {value:item.jbry,specialobj:[{id:item.jbry,name:item.jbryName}]};
addObj[WfForm.convertFieldNameToId("jblx", "detail_1")] = {value:item.jblx,specialobj:[{id:item.jblx,name:item.jblxName}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")]={value:item.ksrq};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")]={value:item.kssj};
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")]={value:item.jsrq};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")]={value:item.jssj};
addObj[WfForm.convertFieldNameToId("gsrq", "detail_1")]={value:item.gsrq};
addObj[WfForm.convertFieldNameToId("jbsc", "detail_1")]={value:Number(item.jbsc)};
WfForm.addDetailRow("detail_1", addObj);
});
WfForm.showMessage(res.data.errorInfo, 2, 5);
}
}
}
})
//添加完明细后,更新主表的总请假时长栏位信息
var totalsc = getTotalsc();
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jbsc"), {value:totalsc});
}
function updateDetail(rowindex){
let mainTableData = {
szjg: WfForm.getFieldValue(WfForm.convertFieldNameToId("szjg")),
jbry: WfForm.getFieldValue(WfForm.convertFieldNameToId("jbry","detail_1")+"_"+rowindex),
jblx: WfForm.getFieldValue(WfForm.convertFieldNameToId("jblx","detail_1")+"_"+rowindex),
mttsdjb: WfForm.getFieldValue(WfForm.convertFieldNameToId("mttsdjb")),
ksrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq","detail_1")+"_"+rowindex),
jsrq: WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowindex),
kssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("kssj","detail_1")+"_"+rowindex),
jssj: WfForm.getFieldValue(WfForm.convertFieldNameToId("jssj","detail_1")+"_"+rowindex)
}
let param = {
mainTableData:JSON.stringify(mainTableData),
}
if (mainTableData.ksrq == '' || mainTableData.jsrq == '' || mainTableData.kssj == '' || mainTableData.jssj==''){
return;
}
console.log(param);
$.ajax({
url:'/api/attendance/overtimeplan/generateOvertimePlanDetails',
data:param,
type:'GET',
dataType:'json',
async:false,
success:function(res){
if(res.api_status){
if(res.data.status){
let resultData = res.data.data;
if (resultData.length>0){
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jbsc", "detail_1")+"_"+rowindex, {
value: Number(resultData[0].jbsc)
});
WfForm.changeFieldValue(WfForm.convertFieldNameToId("gsrq", "detail_1")+"_"+rowindex, {
value: resultData[0].gsrq
});
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jblx", "detail_1")+"_"+rowindex, {
value: resultData[0].jblx,
specialobj:[
{id:resultData[0].jblx,name:resultData[0].jblxName}
]
});
}
}else {
let errorData = res.data.errorInfo;
if (errorData.length >0){
WfForm.showMessage(errorData[0], 2, 10);
}
}
}
}
})
var totalsc = getTotalsc();
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jbsc"), {value:totalsc});
}
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("kssj","detail_1"),
function(id,rowIndex,value) {
console.log("WfForm.bindDetailFieldChangeEvent--",id,rowIndex,value);
updateDetail(rowIndex);
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("jssj","detail_1"),
function(id,rowIndex,value) {
console.log("WfForm.bindDetailFieldChangeEvent--",id,rowIndex,value);
updateDetail(rowIndex);
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("jsrq","detail_1"),
function(id,rowIndex,value) {
if (WfForm.getFieldValue(WfForm.convertFieldNameToId("ksrq","detail_1")+"_"+rowIndex) != value){
WfForm.changeFieldValue(WfForm.convertFieldNameToId("ksrq","detail_1")+"_"+rowIndex,{value:value})
console.log("WfForm.bindDetailFieldChangeEvent--",id,rowIndex,value);
updateDetail(rowIndex);
}
});
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("ksrq","detail_1"),
function(id,rowIndex,value) {
if (WfForm.getFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowIndex) != value){
WfForm.changeFieldValue(WfForm.convertFieldNameToId("jsrq","detail_1")+"_"+rowIndex,{value:value})
console.log("WfForm.bindDetailFieldChangeEvent--",id,rowIndex,value);
updateDetail(rowIndex);
}
});
/**
* 计算明细总请假长度
*/
function getTotalsc(){
var totalsc = 0;
var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(",");
for(var i=0; i<rowArr.length; i++){
var rowIndex = rowArr[i];
if(rowIndex !== ""){
totalsc = Number(totalsc) + Number(WfForm.getFieldValue(WfForm.convertFieldNameToId("jbsc", "detail_1")+"_"+rowIndex));
}
}
return totalsc;
}
//加班类型值变更时自动生成明细jblx
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jblx"),function(obj,id,value){
//自动添加出差明细数据
adddetail();
});
//加班人员值变更时自动生成明细jblx
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jbry"),function(obj,id,value){
//自动添加出差明细数据
adddetail();
});
//加班开始日期值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ksrq"),function(obj,id,value){
//自动添加出差明细数据
adddetail();
});
//加班结束日期值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jsrq"),function(obj,id,value){
//自动添加出差明细数据
adddetail();
});
//加班开始时间值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("kssj"),function(obj,id,value){
//自动添加出差明细数据
adddetail();
});
//加班结束时间值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jssj"),function(obj,id,value){
//自动添加出差明细数据
adddetail();
});
</script>