基于jeecgboot-vue3的Flowable流程-流程表单显示控制

本文主要是介绍基于jeecgboot-vue3的Flowable流程-流程表单显示控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

       这个部分主要讲流程起始表单的显示控制,因为开始的时候可以进行输入处理,在流程过程中只能只读状态,当然返回到发起人节点也可以进行编辑提交

  1、开始发起流程的时候起始表单的处理

       注意这里需要处理开始发起流程的情况与退回到发起人重新编辑两种不同的处理方式

 else if (res.result.hasOwnProperty('taskFormData')) {console.log("flowRecord res.result.taskFormData", res.result.taskFormData);taskFormData.value = res.result.taskFormData;console.log("flowRecord taskFormData.value", taskFormData.value);taskFormOpen.value = true;nextTick(async () => {taskFormBuilder.value?.setFormJson(taskFormData.value || { formConfig: {}, widgetList: [] });console.log("formData startUserForm.isStartUserNode",startUserForm.isStartUserNode)if (!startUserForm.isStartUserNode) {taskFormList.value.forEach((item: any, index: any) => {console.log("disableForm item",item);taskFormBuilder.value[index].disableForm();})}});}} 

  2、在流程过程中任务节点表单的相关代码处理如下:

这样要对是否是发起人节点做特殊处理,其它情况下只读,在第一个发起人是可以编辑的

//倒序显示,跟流程记录刚好相反taskFormList.value.reverse();taskFormVal.value.reverse();console.log('taskFormList=', taskFormList.value);console.log('taskFormVal=', taskFormVal);taskFormViewOpen.value = true;if (!(res.result.hasOwnProperty('isStartUserNode') && res.result.isStartUserNode)) {nextTick(() => {taskFormList.value.forEach((item: any, index: any) => {console.log("disableForm item",item);item.formModel.widgetList.forEach((fieldItem: any, fieldIndex: any) => {console.log("disableForm fieldItem",fieldItem);fieldItem.options.disabled = true;})})})  }  

3、另外对审批任务做一个逻辑判断,增加有没有节点表单的不同处理方式

  /** 审批任务选择 */const handleComplete = () => {console.log('taskFormBuilder=', taskFormBuilder);const taskFormRef = taskFormBuilder.value;console.log('taskFormRef=', taskFormRef);const isExistTaskForm = taskFormRef !== null;// 若无任务表单,则 isExistTaskForm 为 false,即不需要校验if ( isExistTaskForm ) {taskFormRef?.validateForm(async (valid: boolean) => {console.log("valid",valid)if (valid) {if (isExistTaskForm) {//校验通过completeOpen.value = true;completeTitle.value = '审批流程';getTreeselect();}}  });}else {completeOpen.value = true;completeTitle.value = '审批流程';getTreeselect();}};

4、效果图如下:

这篇关于基于jeecgboot-vue3的Flowable流程-流程表单显示控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1069587

相关文章

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行