流程控制信息
控制信息 JS SDK
详细使用可参考“$UI/comp/wfmui/components/wfmui/js/processControl.js”文件
获取流程配置信息
函数名:toJSON
返回
json
示例:
let { processControl } = event;
const data=processControl.toJSON();
重置流程控制信息
函数名:reset
示例:
let { processControl } = event;
processControl.reset();
获取第一个选择的活动环节
函数名:getFirstSelectableActivity
返回
json
示例:
let { processControl } = event;
const data=processControl.getFirstSelectableActivity();
判断是否有选择的活动环节
函数名:hasSelectedActivity
返回
boolean
示例:
let { processControl } = event;
let hased=processControl.hasSelectedActivity();
更新环节选中状态
函数名:updateActivityStatus
参数
activity 为环节id
status 为boolean类型
示例:
let { processControl } = event;
processControl.updateActivityStatus("activity.id",true);
根据环节id获取环节信息
函数名:getActivityByID
参数
id 为环节id
返回
json
示例:
let { processControl } = event;
const data=processControl.getActivityByID("activity.id");
获取流程配置信息
函数名:getData
返回
json
示例:
let { processControl } = event;
const data=processControl.getData();
获取json字符串流程配置信息
函数名:toString
返回
string
示例:
let { processControl } = event;
const data=processControl.toString();
是否允许打开对话框
函数名:enableDialog
示例:
let { processControl } = event;
processControl.enableDialog();
是否包含环节执行人(处理人及通知人)信息
函数名:hasProcessData
返回
boolean
示例:
let { processControl } = event;
let has=processControl.hasProcessData();
获取流程流程提示信息
函数名:getMessage
返回
string
示例:
let { processControl } = event;
const data=processControl.getMessage();
获取流程对话框下处理意见
函数名:getPostscript
返回
string
示例:
let { processControl } = event;
const data=processControl.getPostscript();
设置流程对话框下处理意见
函数名:setPostscript
参数
postscript 处理意见
示例:
let { processControl } = event;
processControl.setPostscript("处理意见");
获取流程对话框内上传的附件信息
函数名:getFiles
返回
json字符串
示例:
let { processControl } = event;
const files=processControl.getFiles();
设置流程对话框内上传的附件信息
函数名:setFiles
参数
files 文件信息
返回
json字符串
示例:
let { processControl } = event;
processControl.setFiles("[{\"storeFileName\":\"\",\"realFileName\":\"\"}]");
判断当前环节是否正常
函数名:isOk
返回
boolean
示例:
let { processControl } = event;
const isok=processControl.isOk();
获取活动环节信息
函数名:getActivities
返回
json
示例:
let { processControl } = event;
const data=processControl.getActivities();
获取环节所有处理人信息
函数名:getToItems
返回
json
示例:
let { processControl } = event;
const data=processControl.getToItems();
获取指定环节处理人item下id信息
函数名:getToItemByID
参数
id 执行人信息id
返回
json
示例:
let { processControl } = event;
const data=processControl.getToItemByID("id");
获取所有通知人信息
函数名:getNoticeItems
返回
json
示例:
let { processControl } = event;
const data=processControl.getNoticeItems();
获取指定通知人信息
函数名:getNoticeItemByID
参数
id 执行人id
返回
json
示例:
let { processControl } = event;
const data=processControl.getNoticeItemByID("id");
删除没有选中的执行人(处理人及通知人)信息 ,同时也会删除对应的环节
函数名:deleteUnSelectedItems
示例:
let { processControl } = event;
processControl.deleteUnSelectedItems();
获取流程配置信息
函数名:getExts
返回
json
示例:
let { processControl } = event;
const data=processControl.getExts();
清除流程配置信息
函数名:clearExts
示例:
let { processControl } = event;
processControl.clearExts();
获取流程配置中扩展
函数名:getExt
返回
属性值
示例:
let { processControl } = event;
const data=processControl.getExt("signHidden");
设置取流程配置扩展信息中指定属性值
函数名:setExt
参数
name 属性名
value 属性值
示例:
let { processControl } = event;
processControl.setExt("signHidden",true);
环节信息 JS SDK
获取环节id
函数名:getID
返回
string
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const data=activity.getID();
获取环节名称
函数名:getName
返回
string
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const data=activity.getName();
获取环节下子节点
函数名:getChildren
返回
json
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const data=activity.getChildren();
获取当前环节父节点
函数名:getParent
返回
json
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const data=activity.getParent();
获取环节显示名称
函数名:getLabel
返回
string
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const data=activity.getLabel();
判断当前环节是否选中
函数名:isSelected
返回
boolean
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const selected=activity.isSelected();
设置当前环节选中状态
函数名:setSelected
参数
value 状态,true/false
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
activity.setSelected(true);
判断环节是否能选
函数名:isSelectable
返回
boolean
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const isSelectable=activity.isSelectable();
判断环节是否可选
函数名:isOptional
返回
boolean
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const isOptional=activity.isOptional();
判断环节是否或执行
函数名:isXor
返回
boolean
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const isXor=activity.isXor();
判断环节是否同步执行
函数名:isAnd
返回
boolean
示例:
let { processControl } = event;
const activity=processControl.getFirstSelectableActivity();
const isAnd=activity.isAnd();
执行人信息 JS SDK
获取执行人全路径名称fname
函数名:getExecutorNames
参数
defaultValue 默认fname
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getExecutorNames("默认fname");
获取执行人信息id
函数名:getID
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getID();
获取执行人对应的环节ID
函数名:getActivityID
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getActivityID();
是否结束
函数名:isEnd
返回
boolean
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const isEnd=currentItem.isEnd();
是否只读
函数名:isReadonly
返回
boolean
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const isReadonly=currentItem.isReadonly();
是否选中
函数名:isSelected
返回
boolean
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const isSelected=currentItem.isSelected();
设置是否选中
函数名:setSelected
参数
value 状态,true/false
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
currentItem.setSelected(true);
获取流程实例
函数名:getProcess
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getProcess();
获取流程环节编码
函数名:getUnit
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getUnit();
获取任务分配方式
函数名:getTaskAssignMode
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getTaskAssignMode();
获取执行者类型
函数名:getExecutorKinds
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getExecutorKinds();
获取执行者范围
函数名:getExecutorRange
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getExecutorRange();
获取执行者
函数名:getExecutors
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getExecutors();
清除执行者
函数名:clearExecutors
返回
string
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
currentItem.clearExecutors();
添加执行者
函数名:addExecutor
参数
fid 人员fid
fname 人员fname
responsible 默认为false,非必填
vote 废弃,非必填
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
currentItem.addExecutor("/oOg1fXG3346nxZPwzKw.ogn/oOg1pdu33sVaIM3LN1V.ogn/oOrhPtu33iHo3ND9AtO.dpt/oOrclly33Hho8h57PMO.psm","/阳光集团/北京公司/开发部/李云");
获得所有任务关系
函数名:getTaskRelationValues
返回
json
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getTaskRelationValues();
获得指定任务关系的值
函数名:getTaskRelationValue
参数
relation 关系编码
返回
jdon
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getTaskRelationValue("relation");
设置指定任务关系的值
函数名:setTaskRelationValue
参数
relation 关系编码
value 关系内容
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
currentItem.setTaskRelationValue({关系对象});
获取执行人扩展信息
函数名:getExts
返回
json
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getExts();
清除执行人扩展信息
函数名:clearExts
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
currentItem.clearExts();
获取执行人扩展信息中指定属性值
函数名:getExt
参数
name
返回
属性值
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
const data=currentItem.getExt("name");
设置执行人扩展信息中指定属性值
函数名:setExt
参数
name 属性名
value 属性值
示例:
let { processControl } = event;
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
currentItem.setExt("name","value");
完整使用案例
/**
* 打开流程对话框前事件
* 流程需要通过js自定义的操作建议在该事件中处理
* @param {*} event
*/
onWfmuiOpenDialogBefore = (event) => {
/**
* event参数包含:
* action:当前动作,例如"advanceQuery"等
* cancel:是否取消流程流转,类型boolean
* context:上下文内容,包含页面对象、页面参数、页面上数据集对象
* processControl:流程控制信息
* activities:活动环节信息,包含环节处理人,通知人及后续环节信息等
* data:流程配置数据,包含流程内置的配置数据及流程配置功能下自定义的数据
* exts:流程配置数据,具体参考“流程配置”
* noticeItems:流程环节通知人信息,常用信息如下:
* executors:执行人设置
* executor-range:执行人范围
* unit:环节编码
* unitType:环节类型
* object:流程配置数据,兼容老版本流程,其内容与data属性内容一致
* toItems:流程环节处理人信息,常用信息如下:
* unit:环节编码
* unitType:环节类型
* executors:执行人设置
* executor-range:执行人范围
* promises:事件异步执行对象(流程对话框打开前事件没有)
* source:流程组件对象
* _taskVars:流程变量
* task:当前任务id
* vars:变量内容
* formData:流程表单内容
*/
//表单内容必填校验
let mainData = this.comp("mainData");
mainData.enabledCheck.set(true);//没有接管保存时需要设置
let checkInfo = mainData.check();
if (!checkInfo.valid) {
message.error(checkInfo.msg.join());
//如果表单内容不满足规则要求,不进行流转
event.cancle=true;
return;
}
const {source:wfmui,action}=event;
//当前流程环节动作
console.log("当前请求动作:"+action);
if(action=="backQuery"){
message.warning("你正在进行回退操作");
}
//自定义流程配置
let { processControl } = event;
//设置全局流转不要签名
processControl.setExt("signHidden", true);
//指定环节,js动态设置隐藏签名及展示附件上传内容
switch(this.params.activity){
case "businessActivity1":
//js动态设置展示附件上传内容
processControl.setExt("showFiles", true);
break;
case "businessActivity2":
//如果当前操作不是流转确认动作,不做其他处理
if(action!="advanceQuery"){
break;
}
//设置环节变量(根据实际需求设置)
wfmui.updateFlowVars(wfmui.getTask(), {"myVars": "{rating:'一般'}"});
//js动态设置展示签名
processControl.setExt("signHidden", false);
//下一个环节新增一个处理人
//获取环节处理人信息
const currentItem=processControl.getToItems().filter(({data})=>data.unit=="businessActivity3")?.[0];
if(!currentItem){
message.error("你要设置的环节不存在!");
break;
}
currentItem.addExecutor("/oOg1fXG3346nxZPwzKw.ogn/oOg1pdu33sVaIM3LN1V.ogn/oOrhPtu33iHo3ND9AtO.dpt/oOrclly33Hho8h57PMO.psm","/阳光集团/北京公司/开发部/李云");
break;
case "businessActivity3":
//隐藏流转意见
processControl.setExt("postscriptHidden", true);
break;
default:break;
}
}