当前位置: 首页 > news >正文

泛微Ecology9实现流程界面隐藏按钮

1. 前言

        在泛微Ecology9系统中,流程界面默认显示多个操作按钮。为满足特定业务需求,需要隐藏部分按钮。本文将介绍三种实现方法,分别针对"提交"、"保存"、"转发"三个按钮进行演示。

首先我先建了个平白无奇的测试流程,我们可以看到目前流程上方存在四个按钮:

        经过我的调研,目前一共有三种方式来实现这个功能:1、代码块CSS样式实现、2、编写ecode代码实现:复写WeaReqTop组件:overwritePropsFnQueueMapSet 3、也是ecode实现:复写API请求入参和返参:rewriteApiDataQueueSet; 现在我分别用三种方式来隐藏 三个不同的流程按钮:提交、保存、转发来作为测试

2. 实现方案对比

        方案一:CSS样式隐藏法(推荐用于简单场景)

实现思路:通过CSS选择器直接隐藏目标按钮元素

适用场景:简单的按钮隐藏需求,无需复杂逻辑判断

操作步骤

  1. 登录系统后台,进入流程引擎管理界面

  2. 定位目标流程,进入流程设计界面

  3. 在代码块区域添加CSS样式代码

  4. 保存配置并测试效果


<style type="text/css">.ant-menu-item:has(.wea-right-menu-item span[title="提交"]) {display: none !important;}button[title="提交"] {display: none !important;}
</style>

保存之后,即可实现隐藏效果

        方案二:ECode组件复写法(推荐用于复杂条件控制)

实现思路:复写WeaReqTop组件:overwritePropsFnQueueMapSet

通过复写WeaReqTop组件的属性,动态控制按钮显示

对于ecode腹泻我们可以先打印出参数查看,看看有啥参数可以修改达到目的:

核心代码

ecodeSDK.overwritePropsFnQueueMapSet('WeaReqTop', {fn: (newProps) => {// 环境检查if (!ecodeSDK.checkLPath('/spa/workflow/static4form/index.html')) return;if (!WfForm) return;// 流程节点验证let baseInfo = WfForm.getBaseInfo();let workflowId = baseInfo.workflowid;let nodeId = baseInfo.nodeid;// 仅对特定流程生效(测试环境workflowId: 1537)这里需要换成你自己的流程id和节点idif (workflowId !== 1537 || nodeId !== 2622) return;// 按钮处理逻辑var buttons = newProps.buttons;console.log(buttons);// 隐藏保存按钮buttons = buttons.filter(button => button.props.title !== '保存');newProps.buttons = buttons;},order: 1,desc: '隐藏保存按钮'
});
方案三:ECode API复写法(推荐基于后端数据控制)

实现思路

复写API请求入参和返参:rewriteApiDataQueueSet,通过拦截API请求的入参和返参,间接控制按钮显示状态

核心代码

ecodeSDK.rewriteApiDataQueueSet({fn: (url, params, data) => {var workflowids='87029,134021'var workflowArray = workflowids.split(',');  var workflowidsByDelete = '134021,131021,65523,43021';var workflowArrayByDelete = workflowidsByDelete.split(','); var workflowid = params.workflowid+''if (workflowArray.includes(workflowid)){var value = '1'} // 判断流程是否是需要隐藏的流程if (workflowArrayByDelete.includes(workflowid)){var valueByDelete = '1'}var allow = window.location.hash.indexOf('#/main/workflow/req') >= 0 && (url.indexOf('/api/workflow/reqform/rightMenu') >= 0 ||url.indexOf('/api/workflow/reqform/loadForm') >=0 )&& (params.workflowid=='4061' || params.workflowid=='4062' || value=='1')if (!allow) return data;if (data.rightMenus && data.rightMenus.length > 0 && valueByDelete!='1') {data.rightMenus = data.rightMenus.filter((item,index)=>{return item.menuName!='转发'})}return data;},desc: '拦截接口参数,同一个接口会在多个页面请求,需注意路径的判断'
});

目前上诉代码都是使用按钮名称汉字匹配,也可以改为ecId匹配,原理都是一样的;

方案选择建议

方案适用场景优点缺点
CSS样式法简单隐藏需求实现简单、维护成本低可能被绕过,灵活性差
组件复写法复杂条件控制灵活性高,可基于流程节点控制实现复杂度中等
API复写法基于数据条件控制控制粒度细,稳定性好需要了解API结构

注意事项

  1. 生产环境部署前务必充分测试

  2. 建议添加详细的注释说明业务逻辑

  3. 考虑系统升级对自定义代码的影响

  4. 推荐使用方案二或三实现条件性隐藏需求

总结

三种方案各有优势,可根据具体业务场景灵活选择。CSS方法适合简单场景,ECode方法适合需要条件判断的复杂场景。建议在开发过程中充分考虑代码的可维护性和系统的稳定性。

http://www.dtcms.com/a/536659.html

相关文章:

  • Viewport:网页设计中的关键元素及其优化策略
  • 网站建设功能报山东城乡建设厅网站首页
  • wordpress 页脚加链接外贸网站优化哪家好
  • 如何检索跟踪文献
  • 【u-boot】u-boot网络系统剖析
  • 生物突触功能总结
  • 搭建AI智能翻译器:快速部署Dify,接入AiOnly平台GPT-5模型
  • 树莓派的OpenCV的人脸识别开锁
  • ifnull 和 isnull 的用法 以及其平替方法
  • ROS2系列 (0) : Linux 常用命令
  • 做网站编码如何制作微信链接
  • Nacos配置中心动态刷新全解析:从基础配置到源码级调优(一)
  • 《HTTP 实战:常用调试工具与抓包技巧》
  • Shell编程基本介绍
  • 龙港 网站建设青海建设网站价格低
  • 建设软件资源网站大学生网站开发总结报告
  • 代码随想录 701.二叉搜索树中的插入操作
  • 自定义监控大屏项目实现方案
  • h5游戏免费下载:HTML5拉杆子过关小游戏
  • 电商系统经典陷阱
  • 5.5类的主方法
  • 带后台的php网站模板营销推广是一种什么的促销方式
  • 神经网络进化史:从理论到变革
  • 系统集成项目管理工程师案例分析:整合管理高频考点精要
  • 快速达建网站怎么给餐饮店做网站
  • 国产化Excel开发组件Spire.XLS教程:使用Python将CSV转换为XML(处理现实数据问题)
  • 常用软件下载地址
  • 开网站做外贸东莞市阳光网
  • 面向光学引导热红外无人机图像超分辨率的引导解耦网络
  • Java医院管理系统HIS源码带小程序和安装教程