隐藏明细列效果如下:
隐藏明细列效果
表单字段设计如下,主要是通过主表的“是否隐藏”字段来联动明细表的“附件”,达到附件显示、隐藏的效果。
在做表单样式设置时,需要给明细表的“附件”列添加class属性,使用jQuery来实现。
代码块如下:
需要注意:
1、隐藏字段时一定要先修改字段的状态(必须为“只读”或“可编辑”),否则提交时会报以下错误,导致流程无法正常提交。
2、添加明细列时,一定要执行IsShow方法,不然新增的行无法隐藏“附件”列,导致页面排版问题。
---------------------------------------------------------------------------------------------------------------------------------
var sfycField = WfForm.convertFieldNameToId("sfyc"); //主表-是否隐藏
var fjField = WfForm.convertFieldNameToId("fj","detail_1"); //明细表-附件
jQuery(document).ready(function(){
//是否隐藏-值改变触发
WfForm.bindFieldChangeEvent(sfycField,function(obj,id,value){
IsShow(value);
});
//添加明细行后触发事件
WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){
var sfycValue = WfForm.getFieldValue(sfycField);
IsShow(sfycValue);
});
});
//隐藏
function IsShow(showValue){
//获取明细表行数
var detailRows = WfForm.getDetailRowCount("detail_1");
//修改字段属性
if(showValue == "0"){
ChangeAttr(fjField,2,detailRows);
$(".ptoc").hide();
}else{
ChangeAttr(fjField,3,detailRows);
$(".ptoc").show();
}
}
//id 字段id viewAttr字段属性状态 row明细表行数
function ChangeAttr(id,viewAttr,row){
if(row!=0){
for(let i=0;i<row;i++){
WfForm.changeFieldAttr(id+"_"+i,viewAttr);
}
}else{
WfForm.changeFieldAttr(id,viewAttr);
}
}