运行时的流程图和波特图其实是用的processChart组件,在组件上提供的有下面两个事件,事件中具体的参数说明可以参考API
onPertItemClick (PertItemClickEvent event) [回调型事件]在波特图上某个元素点击时触发 onTrackItemClick (TrackItemClickEvent event) [回调型事件]在轨迹图上某个业务环节点击时触发
如果是所有的流程图统一的处理这个两个事件中的执行逻辑,可以通过扩展空间的方式实现/UI2/system/service/process/dialog/processChart.w对应的js中
Model.prototype.trackItemClick = function(event){(流程图的事件)和
Model.prototype.pertItemClick = function(event){(波特图的事件)
如果是单个功能中的,需要自己在功能页面中放processChart组件,在需要查看的时候调用processChart组件的API(如图)加载流程图,,具体的参数说明可以看API手册,然后在事件中操作
事件中获取相关的数据可以参考如下:
//轨迹图click事件 Model.prototype.processChart2TrackItemClick = function(event){ var activity = event.activity;//获取activity var activityName = event.activityName;//获取activityName var process = event.process //获取process var process = event.processName //获取processName //已经执行过的环节获取task或者执行者的数据,注意没有执行过的环节是获取不到的 if(event.bot.task){ var taskid = event.bot.task.id //获取taskid } //获取执行者 var executors = event.bot.executors; if(executors){ for(var i = 0;i<executors.length;i++){ var executorFID = executors[i].sExecutorFID;//执行者FID var executorFName = executors[i].sExecutorFName;//执行者FName } } }; //波特图click事件 Model.prototype.processChart2PertItemClick = function(event){ var activity = event.task.sActivity;//获取activity var activityName = event.task.sActivityName;//获取activityName var process = event.source.process //获取process var process = event.task.sProcessName //获取processName var taskid = event.task.id //获取taskid //获取执行者 var executors = event.executors; if(executors){ for(var i = 0;i<executors.length;i++){ var executorFID = executors[i].sExecutorFID;//执行者FID var executorFName = executors[i].sExecutorFName;//执行者FName } } };
需要注意的是在轨迹图中通过event.process获取process需要在5.3.6.5569之后版本中才可以
评一波