Loading... 参考 [泛微在线文档 (e-cloudstore.com)](https://e-cloudstore.com/doc.html?appId=98cb7a20fae34aa3a7e3a3381dd8764e#3.5%20) E9前端的所有接口统一封装在全局对象window.WfForm中,大部分操作都可使用WfForm实现。虽然官方不建议使用jquery,但有些需求还是得靠它来实现。 1. 如何实现明细字段只读、编辑、必填? 以下涉及2个场景: 一个是新增明细行时,实现属性变化; 一个是变动主表字段时,实现属性变化; ``` <script> jQuery(document).ready(function(){ //明细表1,新增行触发事件 WfForm.registerAction(WfForm.ACTION_ADDROW+"1", function(index){ var origValue = WfForm.getFieldValue("field10821"); //主表字段值 selectChange(origValue,index); }); //绑定主表字段变更事件 WfForm.bindFieldChangeEvent("field10821", function(obj,id,value){ var rowArr = WfForm.getDetailAllRowIndexStr("detail_1").split(","); for(var i=0; i<rowArr.length; i++){ var rowIndex = rowArr[i]; if(rowIndex !== ""){ selectChange(value,rowIndex); } } }); //明细行属性变更 function selectChange(_value,_i){ var field_poid = "field10815_" + _i; var field_itemid = "field10813_" + _i; if (_value == "1") { //清空poid的值,并设置属性为必填 WfForm.changeSingleField(field_poid , {value:""}, {viewAttr:"3"}); //设置itemid属性为只读 WfForm.changeFieldAttr(field_itemid, 1); } else { //设置poid属性为编辑 WfForm.changeFieldAttr(field_poid, 2); //清空itemid的值,并设置属性为编辑 WfForm.changeSingleField(field_itemid, {value:""}, {viewAttr:"2"}); } } }); </script> ``` 2. 如何实现明细行的列隐藏? 官方API只有控制明细数据行的显示及隐藏,没有给出如何隐藏列。本人实测,可通过以下步骤来实现此功能。 step 1,进入流程表单的模版编辑界面,并进入明细行选择需要隐藏的列 ![](https://naye.cc/usr/uploads/2023/03/3237607350.png) step 2,右键D列,选择列自定义属性,输入自定义的属性值; 注意:设置自定义属性后,D会变为红色,明显的区别于其它列 ![](https://naye.cc/usr/uploads/2023/03/2646872333.png) step 3,在明细行属性变更的方法selectChange中添加如下代码 ``` //明细行属性变更 function selectChange(_value,_i){ //...... if (_value == "1") { //隐藏poid列 $(".etc_po").each(function () { $(this).hide(); }); } else { //显示poid列 $(".etc_po").each(function () { $(this).show(); }); } } //...... } ``` 大功告成 Last modification:August 20, 2023 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 如果觉得我的文章对你有用,请随意赞赏