在process和activity中可以设置通知规则,当满足生效条件时在流转对话框中会显示通知,并且通知是勾选上的
当流转对话框中有多个环节选中流转到不同环节时根据业务需要可能有些环节不需要选中通知,可以通过对流转对话框的修改控制选择某些环节是通知不勾选,选择某些环节是通知勾选
某个具体流程功能的流转对话框可以参考http://docs.wex5.com/bex5-process-question-list-10008/
由于平台默认的/UI2/system/service/process/dialog/processDialog.w是继承/UI2/system/service/process/dialog/processDialog.m.w实现的,所以processDialog.w中调用的某些js方法是在/UI2/system/service/process/dialog/processDialog.m.js中定义的,因此在自己扩展流转对话框中如果有需要修改平台原始的js方法的,需要自己把/UI2/system/service/process/dialog/processDialog.m.js中的函数定义复制到自己的js中然后进行修改
对于通知勾选的控制需要自己重写Model.prototype.addNotice和Model.prototype.checkbox2Change方法
下面实现的是xor输出“活动环节3,活动环节4”两个环节,如果流转对话框中选中的‘活动环节3’通知不勾选,如果选中的‘活动环节4’通知勾选,具体实现如下:
Model.prototype.addNotice = function(noticeRows, executorRows, item, control){ var row = {rowid: "", selected: 0, sName: ""}; row.rowid = item.getActivityID(); var activityData = this.comp("activityData"); var itemActivity = activityData.find(['label','selected'], ['活动环节3',true]);//查找流转对话框中的环节是否有活动环节3,并且是勾选流转的数据 if(itemActivity.length>0){//如果有活动环节3,并且是勾选的设置通知的不勾选,否则通知勾选 row.selected = false; }else row.selected = item.isSelected(); row.sName = item.getTaskRelationValue("sName") || ""; noticeRows.push(row); this.addExecutors(executorRows, item); }; Model.prototype.checkbox2Change = function(event){ var context = justep.Bind.contextFor(event.source.domNode).$object; this.control.updateActivityStatus(context.val("rowid"), event.checked); var data = this.comp("noticeData"); if(context.val("label") == '活动环节3'){ //环节勾选改变是判断当前选择的是活动环节3设置通知不勾选,是活动环节4透过指勾选 data.setValue("selected",false); } else if((context.val('label') == '活动环节4')){ data.setValue("selected",event.checked); } var self = this; context.data.each(function(options){ var row = options.row; var id = row.val("rowid"); var activity = self.control.getActivityByID(id); row.ref("selected").set(activity.isSelected()); }); };
评一波