泛微oa流程表单之oa流程常用js

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

封装方法: 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;\">&nbsp;x&nbsp;</span></span>";
	str += "<span class=\"e8_delClass\" id=\"" + id + "\" οnclick=\"del(event,this," + ismust + ",false,{});\" style=\"opacity: 0; visibility: hidden;\">&nbsp;x&nbsp;</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 同时请说明来意,共同进步!!!

猜你喜欢

转载自blog.csdn.net/Y_6155/article/details/109018957
今日推荐