一、控制日期字段选择范围,比如费用产生日期只能选择当前日期往前十天至今天,否则不允许流程提交
封装方法: cus_judgeDateRange(fieldid, floorday, upperday)
* @param {
fieldid} 日期字段ID
* @param {
floorday} 下限天数(与当前日期比较),空值代表不限制
* @param {
upperday} 上限天数(与当前日期比较),空值代表不限制
* @return 返回true表示在范围内,false表示超出限定范围或日期置为空
二、实时计算两个日期时间字段组合相差小时数,并赋值给另一字段
封装方法:cus_CalTimeDiff(begfields, endfields, unit, digit)
* @param {
begfields} 开始时间
* @param {
endfields} 结束时间
* @param {
unit} 计量结果单位1(天)、2(小时)、3(分钟)、4(秒),默认为天
* @param {
digit} 计算结果保留小数位数,默认2位小数
* @return 以endfields字段值减去beginfields字段值得到时间差值
三、提交流程时校验结束时间必须大于开始时间,否则不允许流程提交
封装方法:cus_CompareTime(timefield1, timefield2)
* @param {
timefield1} 字段1(开始时间)
* @param {
timefield2} 字段2(结束时间)
* @return 返回true表示timefield2较大,false表示timefield1较大或相等
* 注:timefield1/timefield2结构,可为单独日期字段、单独时间字段、日期+时间组合字段(以英文逗号隔开);日期字段空值默认取今天,时间字段空值默认为00:00
四、E8表单字段中没有单选框(Radio样式),如何实现单选框?将选择框字段转换成单选框显示/编辑
封装方法:cus_ConvertSelectToRadio(fieldids)
* @param {
fields}字段id集合,以逗号隔开
* 注:转换后可能不支持联动功能,只是转换样式显示/编辑
五、根据选择框值不同控制明细区域的显示及隐藏
步骤一:设计器明细所在单元格/行设置自定义属性name:_detailarea
步骤二:代码块插入
cus_HideAreaByName("_detailarea"); //封装的根据name属性隐藏区域方法
cus_ShowAreaByName("_detailarea"); //封装的根据name属性显示区域方法
六、根据选择框值不同控制明细列的隐藏/显示
步骤一:需要隐藏的列设置列自定义属性class:_detailcolumn
步骤二:代码块插入
封装接口:cus_ControlDetailColumnByClass(cusclassname, status)
* @param {
cusclassname} 列自定义class属性
* @param {
status} 1为显示,2为隐藏
七、验证指定字段必填
cus_verifyExistNullField("field13031,field13032", "字段未填写"); //封装的校验是否存在空值字段方法
八、根据字段ID,直接获取字段对应值
cus_getFieldValue(fieldid)
九、给文本类型字段赋值
cus_setInputFieldValue(fieldid, fieldvalue)
十、明细行需要注意的地方
明细行数据行数:indexnum0
明细行序号行数:nodesnum0
十一、流程浏览按钮拼接
function BrowseBoxData(viewtype, ahtml, id) {
var ismust = 1;
if (viewtype == '1') {
ismust = 2;
}
var str = "<span class=\"e8_showNameClass\">";
str += ahtml;
// str += "<span class=\"e8_delClass\" id=\"" + id + "\" οnclick=\"del(event,this," + ismust + ",false,{});\" style=\"opacity: 1; visibility: visible;\"> x </span></span>";
str += "<span class=\"e8_delClass\" id=\"" + id + "\" οnclick=\"del(event,this," + ismust + ",false,{});\" style=\"opacity: 0; visibility: hidden;\"> x </span></span>";
return str;
};
十二、移除所有明细行
$("#detailDiv_0").find("tr").each(function(){
if("datarow" == $(this).attr("_target")){
$(this).remove();
}
});
十三、模拟浏览按钮
1、 重写浏览点击事件
2、 用ajax调用后台jsp页面
十四、流程绑定事件注意事项
由于流程本身自带很多绑定事件,所以很多时候你不能用attr去拼接对应的事件,建议用bindProperty这样的去绑定
十五、提交之前走的js
checkCustomize = function (){
//提交的时候判断
if(true){
流程提交
}else{
流程不提交
}
}
请在评论区留言,共同探讨~~~
如有需要,请联系微信:hdygzh2019 同时请说明来意,共同进步!!!