基于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

相关文章

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S