流程控制信息

控制信息 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;
    }
}

results matching ""

    No results matching ""