ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理

本文主要是介绍ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

更多ruoyi-nbcio功能请看演示系统

gitee源代码地址

前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio

演示地址:RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/

更多nbcio-boot功能请看演示系统 

gitee源代码地址

后端代码: https://gitee.com/nbacheng/nbcio-boot

前端代码:https://gitee.com/nbacheng/nbcio-vue.git

在线演示(包括H5) : http://122.227.135.243:9888

1、后端的处理

      因为这个收回审批的提交跟原先的VForm表单提交不一样了,如下界面,这个是可以表单信息里进行修改了,修改后要能提交保存起来,因为原先肯定没有考虑这些

       因为原先提交的时候保存起来,在变量里面,所以用下面的formConf.setFormData(variables);就可以了,但这个variables需求前端进行重新设置修改后的值。

FormConf formConf = new FormConf();Map<String, Object> formModel = JsonUtils.parseObject(formInfo.getContent(), Map.class);if (null != formModel && !formModel.isEmpty()) {formConf.setTitle(title);formConf.setDisabled(true);formConf.setFormBtns(false);formConf.setFormModel(formModel);formConf.setFormData(variables);procFormList.add(formConf);}

2、前端的处理

判断是否是退回到第一个节点

taskFormVisible.value = data.existTaskForm;if (taskFormVisible.value) {taskFormData.value = data.taskFormData;}if(data.startUserNode) {startUserForm.value.isStartUserNode = true;}formVisible.value = true;nextTick(() => {processFormList.value.forEach((item: any, index: any) => {if (item.disabled && !startUserForm.value.isStartUserNode) {vFormRenderRef.value[index].disableForm();}})})

是的话,不要disable了,可以进行编辑,

同时通过任务修改如下:

/** 通过任务 */const handleComplete = () => {const isExistTaskForm = taskFormRef !== undefined;// 校验表单taskFormRef.value?.validate(async (valid: boolean) => {if (valid) {if (isExistTaskForm) {const data = await vFormRenderRef.value[0]?.getFormData();const Widgetlist = await vFormRenderRef.value[0]?.getFieldWidgets();//替换文件上传成功后的文件名称与url,以便后面回显用let fileUpload = Widgetlist?.filter(item => item.type === "file-upload");fileUpload?.forEach((fileitem) => {data[`${fileitem.name}`]?.forEach((dataitem,index) => {data[`${fileitem.name}`][index].name = data[`${fileitem.name}`][index].response.data?.newFileName;data[`${fileitem.name}`][index].url = data[`${fileitem.name}`][index].response.data?.url;})})//替换图片上传成功后的文件名称与url,以便后面回显用let picUpload = Widgetlist?.filter(item => item.type === "picture-upload");picUpload?.forEach((picitem) => {data[`${picitem.name}`]?.forEach((dataitem,index) => {data[`${picitem.name}`][index].name = data[`${picitem.name}`][index].response.data?.newFileName;data[`${picitem.name}`][index].url = data[`${picitem.name}`][index].response.data?.url;})})const variables = data;taskFormData.formValue = data;variables.variables = taskFormData;taskForm.variables = variables;}console.log("handleComplete taskForm",taskForm)const res = await complete(taskForm)proxy?.$modal.msgSuccess(res.msg);goBack();}});}

3、效果图如下:

这篇关于ruoyi-nbcio-plus基于vue3的flowable收回任务后重新进行提交表单的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

mybatis-plus如何根据任意字段saveOrUpdateBatch

《mybatis-plus如何根据任意字段saveOrUpdateBatch》MyBatisPlussaveOrUpdateBatch默认按主键判断操作类型,若需按其他唯一字段(如agentId、pe... 目录使用场景方法源码方法改造首先在service层定义接口service层接口实现总结使用场景my