一、相关资源:
泛微Ecology9.0流程二开演示:使用Ecode对流程浏览框进行赋值
泛微Ecology9.0流程二开亲测:隐藏新建流程页面中的Tab页签
泛微Ecology9.0流程Ecode实践:新建流程页面增加自定义页签简单实例
泛微Ecology9.0流程Ecode实践:新建流程页面隐藏操作按钮及右键菜单实例
泛微Ecology9.0流程Ecode实践:流程明细表重复检验,列内容重复禁止提交
泛微Ecology9.0流程Ecode实践:流程加载时调用后端接口返回数据实例
泛微Ecology9.0流程Ecode实践:通过复写接口彻底隐藏流程明细表列数据实例
二、效果展示:
通过Ecode复写流程表头组件参数接口,修改数据达到载入流程表单时隐藏明细列的功能,效果如图:
三、实现方式:
新建项目(详细步骤可参考之前发布的文章链接)
1.进入Ecode,新建项目文件夹;
2.在项目文件夹下新建js代码文件register.js,并设置前置加载;
const config = {//配置区
enable: true, // 总开关
hash: '#/main/workflow/req',
workflowid: 13,
fields:[5931,5932],//要隐藏的明细字段列数组,字段ID数据,不带行号
nodeid:0,
};
const detail_hide_col={display: "none"}; //隐藏样式
const isTargetLocation = () => { //定位到要修改的位置
//如果不是pc流程表单或移动端流程表单中,则不执行下面逻辑
//if (!(ecodeSDK.hash('#/main/workflow/req') || ecodeSDK.checkLPath('/spa/workflow/static4mobileform/index.html#/req')))
if (!config.enable) return;
const {hash} = window.location;
if (hash.indexOf(config.hash) < 0) return; //判断页面地址
//if (!window.comsMobx) return;
if(!ecCom.WeaTools.Base64) return ; //完整组件库加载完成
const {workflowid,nodeid} = WfForm && WfForm.getBaseInfo();
if (workflowid!=config.workflowid) return;
if (config.nodeid>0 && nodeid!=config.nodeid) return;
return true;
}
ecodeSDK.overwritePropsFnQueueMapSet('WeaReqTop',{
fn:(newProps)=>{
if (!isTargetLocation()) return; //定位流程
//判断字段id,并且判断组件是否允许不能复写,如果不能复写,直接返回空
if(newProps._noOverwrite) return ;
//通过给列添加样式达到隐藏的的目的
config.fields.map(fieldid=>{
let detailsymbol=WfForm.getLayoutStore().cellInfo.fieldCellInfo[fieldid].symbol
let {colid}=WfForm.getLayoutStore().cellInfo.fieldCellInfo[fieldid];
let {colattrs}=WfForm.getLayoutStore().dataJson.etables[detailsymbol]
if (!colattrs) WfForm.getLayoutStore().dataJson.etables[detailsymbol].colattrs={};
WfForm.getLayoutStore().dataJson.etables[detailsymbol].colattrs['col_'+colid]={class:'detail_hide_col'};
});
return newProps;
},
order:1,
desc:'通过修改Store对象隐藏流程明细表列实例'
});
发布项目
1.选中新建的项目文件夹,右键点击【发布】,发布成功后文件夹显示为黄色。
2.<完>。