一、表单设计器模板如何自定义开发

表单设计器可设置自定义属性以及插入代码块,二者相辅结合、灵活运用,可实现多样化客户需求
自定义属性分为:行自定义属性(绑定在table布局tr行标签上)、单元格自定义属性(绑定在table布局td标签子元素div上)、列自定义属性(绑定在明细table此列所有td标签上);
代码块可填写 Script代码块、Style样式块及直接对JS/CSS文件的引用;

二、常用开发场景实现

场景1: 控制日期字段选择范围,比如费用产生日期只能选择当前日期往前十天至今天,否则不允许流程提交

实现方式: 代码块插入

<script type="text/javascript">
function checkCustomize(){//流程提交校验方法var isconform = cus_judgeDateRange("field11", -10, 0);//封装校验日期范围方法if(!isconform){window.top.Dialog.alert("费用产生日期超出范围");return false;}return true;
}
</script>

封装方法: cus_judgeDateRange(fieldid, floorday, upperday)

  • @param {fieldid} 日期字段ID
  • @param {floorday} 下限天数(与当前日期比较),空值代表不限制
  • @param {upperday} 上限天数(与当前日期比较),空值代表不限制
  • @return 返回true表示在范围内,false表示超出限定范围或日期置为空
场景2: 实时计算两个日期时间字段组合相差小时数,并赋值给另一字段

实现方式:代码块插入

jQuery(document).ready(function(){var bindFun = function(){var diffhours = cus_CalTimeDiff("field31,field32", "field35,field36", 2);jQuery("[name=field39]").val(diffhours);}jQuery("#field31,#field32,#field35,#field36").bindPropertyChange(bindFun);bindFun();
});

封装方法:cus_CalTimeDiff(begfields, endfields, unit, digit)

  • @param {begfields} 开始时间
  • @param {endfields} 结束时间
  • @param {unit} 计量结果单位1(天)、2(小时)、3(分钟)、4(秒),默认为天
  • @param {digit} 计算结果保留小数位数,默认2位小数
  • @return 以endfields字段值减去beginfields字段值得到时间差值
场景3: 提交流程时校验结束时间必须大于开始时间,否则不允许流程提交

实现方式: 代码块插入

function checkCustomize(){var state= cus_CompareTime("field31", "field32");if(!state){window.top.Dialog.alert("结束时间必须大于开始时间");return false;}return true;
}

封装方法:cus_CompareTime(timefield1, timefield2)

  • @param {timefield1} 字段1(开始时间)
  • @param {timefield2} 字段2(结束时间)
  • @return 返回true表示timefield2较大,false表示timefield1较大或相等
  • 注:timefield1/timefield2结构,可为单独日期字段、单独时间字段、日期+时间组合字段(以英文逗号隔开);日期字段空值默认取今天,时间字段空值默认为00:00
场景4: E8表单字段中没有单选框(Radio样式),如何实现单选框?将选择框字段转换成单选框显示/编辑

实现方式:代码块插入

jQuery(document).ready(function(){cus_ConvertSelectToRadio("field41");
});

封装方法:cus_ConvertSelectToRadio(fieldids)

  • @param {fields}字段id集合,以逗号隔开
  • 注:转换后可能不支持联动功能,只是转换样式显示/编辑
场景5: 根据选择框值不同控制明细区域的显示及隐藏

实现方式:
步骤一:设计器明细所在单元格/行设置自定义属性name:_detailarea
步骤二:代码块插入

jQuery(document).ready(function(){var selectObj = jQuery("#field51");var controlDetailFun = function(vthis){if(jQuery(vthis).val()  == "1")cus_HideAreaByName("_detailarea");    //封装的根据name属性隐藏区域方法elsecus_ShowAreaByName("_detailarea");    //封装的根据name属性显示区域方法}selectObj.bindPropertyChange(controlDetailFun);controlDetailFun(selectObj[0]);
});
场景6: 根据选择框值不同控制明细列的隐藏/显示

实现方式:
步骤一:需要隐藏的列设置列自定义属性class:_detailcolumn
步骤二:代码块插入

jQuery(document).ready(function(){var trifieldid = "field10793";    //触发选择框字段IDvar dynEvent = function(){var fieldval = cus_getFieldValue(trifieldid);if(fieldval === "2")cus_ControlDetailColumnByClass("_detailcolumn", 1);elsecus_ControlDetailColumnByClass("_detailcolumn", 2);}jQuery("#"+trifieldid).bindPropertyChange(dynEvent);jQuery("input[name=indexnum0]").bindPropertyChange(dynEvent);//添加明细行时联动,0代表明细表1dynEvent();//页面加载联动
});

封装接口:cus_ControlDetailColumnByClass(cusclassname, status)

  • @param {cusclassname} 列自定义class属性
  • @param {status} 1为显示,2为隐藏
场景7: 当满足某条件时,提交流程验证指定字段必填

实现方式:代码块插入

function checkCustomize(){if(jQuery("#field10793").val() == "1"){var state = cus_verifyExistNullField("field13031,field13032", "字段未填写");    //封装的校验是否存在空值字段方法if(state)    return false;}return true;
}
场景8: 根据字段ID,直接获取字段对应值

封装接口:cus_getFieldValue(fieldid)

  • @param {fieldid} 字段ID
  • @return 字段对应值
  • 注:支持文本、多行文本框、浏览框(ID值)、选择框、check框(选中为1未选中为0)
场景9: 给文本类型字段赋值

封装接口:cus_setInputFieldValue(fieldid, fieldvalue)

  • 给文本字段赋值,支持只读/编辑/必填情况
  • @param {fieldid} 字段ID
  • @param {fieldvalue}字段应赋的值

以上场景参考使用方法:
一、下载附件文件customPublicFun_wev8.js文件放入应用服务器ecology/workflow/exceldesign/js目录下;
二、模板代码块中增加引用

 <script type="text/javascript" src="/workflow/exceldesign/js/customPublicFun_wev8.js"></script>;

三、参考样例,按照业务需要调整字段ID等参数;
注:从E8+KB81001611版本后可免去步骤1及步骤2,标准产品涵盖引用;
样例中所有以cus_开头的方法都封装在附件文件中,内含参数详细说明;后续我们会不断完善接口方法;

三、CSS块分享

场景1: 主表占比为百分比时,默认为屏幕总宽95%,如何调整总占比宽度(模板根据屏幕自适应同时控制总宽度)
代码块插入CSS样式

<style>
.excelMainTable{width:80% !important}
</style>

场景2: 主表浏览按钮字段默认为210px,如何自定义控制浏览按钮宽度
步骤一、在需要调整的浏览按钮字段所在单元格增加自定义属性class: cusbrowwidth
步骤二、代码块style标签内增加CSS内容

.cusbrowwidth .e8_os{min-width:130px !important;}

场景3: 明细按钮固定为单元格右侧显示,如何居左显示
代码块style标签内增加CSS内容

.detailButtonDiv{float:left !important; text-align:left !important;}

场景4: 单个模板上传Logo后到服务器成为独立图片,如何设置统一图片便于后续快速替换Logo
步骤一、在需要插入Logo的单元格增加自定义属性class:logocell
步骤二、代码块style标签内增加CSS内容

.logocell{background-image:url(/logoimage/logo.png) !important;background-repeat:no-repeat;height:100%;}

根据上述图片路径,将图片拷贝至应用服务器目录中;后续切换Logo替换此图片即可

ecology关于流程表单设计器自定义开发及常见场景方案分享相关推荐

  1. Vue——formcreate表单设计器自定义组件实现

    form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持3个UI框架,并且支持生成任何 Vue 组件.内置20种常用表单组件和自定义组件,再复杂 ...

  2. 基于Flowable 6.x 的工作流管理平台源码 在线流程设计器 在线流程表单设

    基于Flowable 6.x 的工作流管理平台源码 在线流程设计器 在线流程表单设计器 单节点配置表单 多实例会签任务 任务节点配置任务/执行监听器 动态配置任务候选人 其它流程相关功能点

  3. 要想工作流程更简便,试试开源web表单设计器

    繁杂的工作流程,让您头疼不已?传统的表单制作效率低?内部数据迟迟得不到有效管理?-作为职场人的你,是否经常遇到上述问题.别着急,在如今的快节奏发展时代,传统的表单制作已经满足不了行业和市场的需求了,想 ...

  4. python开源报表系统_流程设计器、表单设计器和简单报表管理开源OA系统smart-web...

    smart-web2是一套相对简单的OA系统:包含了流程设计器,表单设计器,权限管理,简单报表管理等功能: 系统后端基于SpringMVC+Spring+Hibernate框架,前端页面采用JQuer ...

  5. 流程设计器与表单设计器(Wxd.WF,BPM.Foundation,Wxwinter.WF 升级用)

    流程设计器 针对前一版本有如下变化: 1.重构了流程设计器的架构,重写了功能类库,第一个版本(红版)只是一个为实现各种功能和例子拼凑,本版则是正式设计版 2.将一些选项卡变为独立页面 3.将原有的对S ...

  6. vue自定义表单设计器思路

    Vue是一种流行的JavaScript框架,用于构建Web应用程序.Vue的灵活性使得它成为一种非常适合创建自定义表单设计器的框架.本文将介绍如何使用Vue实现一个自定义表单设计器,并最终实现单据自定 ...

  7. 怎么选工作流表单设计器?

    随着业务量的扩大,很多企业都想选择一款优良的工作流表单设计器来提升工作效率和质量.在大数据时代,操作简单.维护便利的工作流表单设计器确实能为企业的发展带来更大的帮助,也是企业实现数字化转型的得力帮手. ...

  8. 通过表单设计器动态生成数据库表以及动态查询的功能实现

    表单设计器动态生成数据库表以及动态查询的功能实现 前言 1. 功能实现 1.1 效果说明 1.2 功能流程图 1.3 具体后端实现 1.4 实现效果 2. 尾声 前言 前两天安排了作为Java小码农的 ...

  9. 基于vue Ant-Design 的表单设计器,快速开发

    基于vue Ant-Design 的表单设计器,快速开发https://gitee.com/kcz66/k-form-design/ 表单设计器 k-form-design image 简介 参考项目 ...

最新文章

  1. 这才是我想要的云盘工具
  2. AutoCAD 2013
  3. 互联网产品跨部门沟通的10个原则(转)
  4. java applet socket_Java swing applet中使用的套接字
  5. linux数字雨代码解释,linux提权 漏洞合集 linux-kernel-exploits
  6. commons-logging中无法寻找log4j
  7. 性能可靠服务器虚拟化,服务器虚拟化分析
  8. Oracle日期函数总结
  9. 阿里云效maven私服
  10. 2018年全国多校算法寒假训练营练习比赛(第三场)I 三角形【皮克公式+gcd】
  11. op 圣诞节活动_圣诞节到了–这是我们精选的IT饼干笑话
  12. 微信小程序----第二天(小程序 - 模板与配置)
  13. 架构漫谈(八):从架构的角度看如何写好代码 + 我的思考
  14. MySQL面试问题包含答案仅参考
  15. 个人网站学习实践(wordpress教程)
  16. XP系统的机械硬盘无法读取,Ntoskrnl.exe损坏硬盘锁定还是坏道?
  17. 腾讯邮箱 新浪邮箱 网易 免费企业邮箱 阿里云/万网域名MX解析配置
  18. 响应式布局以及提交网站
  19. 水滴舆情关于山西体育一周舆情总结
  20. 【博学谷学习记录】超强总结,用心分享丨前端开发:BootStrap框架基础用法

热门文章

  1. 欧几里德 和 拓展欧几里德算法
  2. 国内出版社的不足之处
  3. 在windwos 2012上安装onlyoffice的记录
  4. 解决Picasa网络相册打不开
  5. 老系统如何重构之最全总结
  6. 深度学习之图像识别核心技术与案例实战
  7. Q620D高强板抗拉屈服强度及Q620D厚度方向抗撕裂性能
  8. C51单片机简易密码锁(课程设计)
  9. ARM、ARM架构、ARM架构芯片
  10. Django模型——聚合函数的练习代码