@ -2,7 +2,6 @@
<script>
/**
*
* @param pleavetype 出差方式: 0: 全天出差; 1: 按时间区间出差; 2: 半天; 3: 按时间长度出差
@ -17,6 +16,7 @@
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("jssj"), 3);
//出差时间长度不可编辑
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("ccsc"), 1);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("mttsdcc"), 2);
break;
case '3'://按时间区间出差
WfForm.changeFieldValue(WfForm.convertFieldNameToId("scdw"),{ value: '1' });//出差时长单位为小时
@ -26,6 +26,8 @@
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("ccsc"), 3);
//每天出差时长默认为1小时
WfForm.changeFieldValue(WfForm.convertFieldNameToId("ccsc"),{ value: '1' });
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("mttsdcc"), 1);
WfForm.changeFieldValue(WfForm.convertFieldNameToId("mttsdcc"),{ value: '1' });
break;
default:
WfForm.changeFieldValue(WfForm.convertFieldNameToId("scdw"),{ value: '0' });//出差时长单位为小时
@ -33,20 +35,19 @@
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("kssj"), 5);
//出差时间长度不可编辑
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("ccsc"), 1);
WfForm.changeFieldAttr(WfForm.convertFieldNameToId("mttsdcc"), 1);
WfForm.changeFieldValue(WfForm.convertFieldNameToId("mttsdcc"),{ value: '1' });
break;
}
}
jQuery().ready(function(){
WfForm.registerCheckEvent(WfForm.OPER_ADDROW+"1", function(callback){
callback(); //允许继续添加行调用callback, 不调用代表阻断添加
});
});
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
//adddetail()
});
/**
* 自动添加出差明细
*/
@ -79,7 +80,6 @@
startDate:ksrq,
endDate:jsrq
}
let dateList=undefined;
$.ajax({
url:"/api/attendance/askforleave/getRestDayInterval",
@ -92,10 +92,8 @@
if (res.api_status){
dateList = res.data.data;
}
}
})
//清空第一明细所有记录
WfForm.delDetailRow("detail_1", "all");
//判断出差是否跨天
@ -104,12 +102,13 @@
var arr_ids = (WfForm.getFieldValue(WfForm.convertFieldNameToId("ccr"))).split(',');
//出差人名字数组
var arr_names = (WfForm.getBrowserShowName(WfForm.convertFieldNameToId("ccr"))).split(',');
for (let index = 0; index < arr_ids.length; index++) {
//预置明细记录开始日期
var v_tmpbdate = new Date(ksrq);
//预置明细记录结束日期
var v_tmpedate = new Date(v_tmpbdate);
if (mttsdcc == '1') {
if (mttsdcc == '1') {
for (let index = 0; index < arr_ids.length; index++) {
//预置明细记录开始日期
var v_tmpbdate = new Date(ksrq);
//预置明细记录结束日期
var v_tmpedate = new Date(v_tmpbdate);
//首次循环时,明细开始与结束日期均等于主表开始日期,而主表结束日期一定大于等于开始日期,所以至少添加一笔明细
//当出差为跨天差时,每笔明细的结束日期会加一天
while(v_tmpedate <= jsrq && v_tmpedate <= jsrq){
@ -131,16 +130,12 @@
v_tmpedate = new Date(v_tmpedate);
continue;
}
//初始化明细记录
var addObj = {};
//添加出差人信息
addObj[WfForm.convertFieldNameToId("ccr", "detail_1")] = {value:arr_ids[index],specialobj:[{id:arr_ids[index],name:arr_names[index]}]};
//添加出差类型
addObj[WfForm.convertFieldNameToId("cclx", "detail_1")] = {value:arr_cclx[0].id,specialobj:[{id:arr_cclx[0].id,name:arr_cclx[0].mc}]};
//添加开始日期字段信息
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:v_tmpbdate};
if (ccsd === '1'){
@ -191,59 +186,28 @@
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
}
}else{
//非每天同时段出差方式出差
//设置第一笔明细结束日期为出差开始日期加一天
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
while (v_tmpedate <= jsrq) {
var addObj = {};
addObj[WfForm.convertFieldNameToId("ccr", "detail_1")] = {value:arr_ids[index],specialobj:[{id:arr_ids[index],name:arr_names[index]}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:v_tmpbdate};
if (ccsd === '1'){
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:v_tmpedate};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:kssj};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:"00:00"};
}else{
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:''};
if (ccsd == '0'){
addObj[WfForm.convertFieldNameToId("qtcc", "detail_1")] = {value:'1'};
addObj[WfForm.convertFieldNameToId("btcc", "detail_1")] = {value:'0'};
}else{
addObj[WfForm.convertFieldNameToId("qtcc", "detail_1")] = {value:'0'};
addObj[WfForm.convertFieldNameToId("btcc", "detail_1")] = {value:'1'};
}
}
//追加明细记录
WfForm.addDetailRow("detail_1", addObj);
v_tmpbdate = new Date(v_tmpedate);
kssj = '00:00';
//明细结束日期加一天
v_tmpedate = v_tmpedate.setDate(v_tmpedate.getDate() + 1);
v_tmpedate = new Date(v_tmpedate);
}
var addObj = {};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:v_tmpbdate};
if (ccsd === '1'){
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:jsrq};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:kssj};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:jssj};
}else{
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:''};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:''};
if (ccsd == '0')
addObj[WfForm.convertFieldNameToId("qtcc", "detail_1")] = {value:'1'};
else
addObj[WfForm.convertFieldNameToId("btcc", "detail_1")] = {value:'1'};
}
//追加明细记录
WfForm.addDetailRow("detail_1", addObj);
}
//});
};
//});
};
}else{
var addObj = {};
let ccr =WfForm.getFieldValue(WfForm.convertFieldNameToId("ccr"));
let ccrshowName =WfForm.getBrowserShowName(WfForm.convertFieldNameToId("ccr"));
let cclx = WfForm.getFieldValue(WfForm.convertFieldNameToId("cclx"));
let cclxshowName = WfForm.getBrowserShowName(WfForm.convertFieldNameToId("cclx"));
addObj[WfForm.convertFieldNameToId("ccr", "detail_1")] = {value: ccr,specialobj:[{id:ccr,name:ccrshowName}]};
addObj[WfForm.convertFieldNameToId("cclx", "detail_1")] = {value: cclx,specialobj:[{id:cclx,name:cclxshowName}]};
addObj[WfForm.convertFieldNameToId("ksrq", "detail_1")] = {value:ksrq};
addObj[WfForm.convertFieldNameToId("kssj", "detail_1")] = {value:kssj};
addObj[WfForm.convertFieldNameToId("jsrq", "detail_1")] = {value:jsrq};
addObj[WfForm.convertFieldNameToId("jssj", "detail_1")] = {value:jssj};
var v_hours = (new Date(jsrq+" "+jssj).getTime() - new Date(ksrq+" "+kssj).getTime())/(1000 * 60 * 60);
addObj[WfForm.convertFieldNameToId("ccsc", "detail_1")] = {value:v_hours};
WfForm.addDetailRow("detail_1", addObj);
}
//添加完明细后,更新主表的总出差时长栏位信息
var totalsc = getTotalsc();
WfForm.changeFieldValue(WfForm.convertFieldNameToId("ccsc"), {value:totalsc});
@ -272,7 +236,6 @@
}
}
}
/**
* 计算明细总出差长度
*/
@ -295,14 +258,11 @@
}
return totalsc;
}
//依据当前出差方式,对页面上的控件显示属性进行调整
resetAttr(WfForm.getFieldValue(WfForm.convertFieldNameToId("ccsd")));
//是否自动产生明细记录标记
//考虑到影响明细记录的栏位如开始结束日期时间等发生变更时,需要重新生成明细,而出差方式变更时又需要对相应栏位的值做修改,所以添加这个开关,防止重复生成明细记录
var autodetail = true;
//差期类别值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("cclx"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -312,7 +272,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//出差人员值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ccr"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -322,7 +281,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//出差方式变更时,同样进行页面显示属性的调整
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ccsd"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -334,7 +292,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//是否每日重复时间段值变更时,自动生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("mttsdcc"),function(obj,id,value){
//关掉自动生成明细记录功能
@ -344,7 +301,6 @@
//打开自动生成明细记录功能
autodetail = true;
});
//开始日期变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ksrq"),function(obj,id,value){
if (autodetail){
@ -353,7 +309,6 @@
autodetail = true;
}
});
//结束日期变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jsrq"),function(obj,id,value){
if (autodetail){
@ -362,7 +317,6 @@
autodetail = true;
}
});
//开始时间变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("kssj"),function(obj,id,value){
if (autodetail){
@ -371,7 +325,6 @@
autodetail = true;
}
});
//结束时间变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("jssj"),function(obj,id,value){
if (autodetail){
@ -380,7 +333,6 @@
autodetail = true;
}
});
//出差时长发生变更后,自动重新生成明细
WfForm.bindFieldChangeEvent(WfForm.convertFieldNameToId("ccsc"),function(obj,id,value){
if (autodetail){
@ -389,7 +341,6 @@
autodetail = true;
}
});
//绑定全天差栏位值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qtcc", "detail_1"),function(id,rowIndex,value){
@ -405,7 +356,6 @@
}
});
});
//绑定半天差值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("btcc", "detail_1"),function(id,rowIndex,value){
@ -421,7 +371,6 @@
}
});
});
//绑定出差时长栏位值变更事件
jQuery(document).ready(function(){
WfForm.bindDetailFieldChangeEvent(WfForm.convertFieldNameToId("qjsc", "detail_1"),function(id,rowIndex,value){
@ -433,7 +382,6 @@
}
});
});
WfForm.registerCheckEvent(WfForm.OPER_SAVE+","+WfForm.OPER_SUBMIT,function(callback){
var d_count = WfForm.getDetailRowCount("detail_1");
if (Number(d_count) === 0){
@ -449,3 +397,4 @@