基于jeecgboot-vue3的Flowable流程-我的任务(三)

2024-06-02 11:04

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

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

这一部分主要讲我的任务里的详情,看流程情况

1、主要调用record/index.vue,调用参数如下:

/*** 详情*/function handleDetail(record: Recordable) {console.log("handleDetail record",record)router.push({ path: '/flowable/task/record/index',query: {procInsId: record.procInsId,deployId: record.deployId,taskId: record.taskId,businessKey: record.businessKey,appType: record.appType,finished: false}})}

2、表单显示部分,用的VForm3,所以是下面的显示代码,根据需要可以修改成formdesigner

<!--流程处理表单设计器模块,从flowable表里获取表单数据--><el-col :span="16" :offset="4" v-if="variableOpen"><div><!--处理流程过程中显示formdesigner表单信息--><v-form-renderv-if="startUserForm.isStartUserNode && startUserForm.editFormType === 'oa' && finished === 'true'"ref="refStartBuilder":form-json="formModel":form-data="formData"/><v-form-render v-else :form-json="formModel" :form-data="formData" ref="refStartBuilder" /></div>

3、获取上面的相应值从下面的接口获取

/** 获取流程变量内容 */const processVariables = (taskId, deployId) => {if (taskId) {// 提交流程申请时填写的表单存入了流程变量中后续任务处理时需要展示getProcessVariables(taskId, deployId).then((res) => {console.log('getProcessVariables res=', res);variables.value = res.result.variables;if (res.success) {if (res.result.hasOwnProperty('variables')) {formData.value = res.result.variables;variableOpen.value = true;formModel.value = res.result.formModel;taskForm.values = formData.value;}getNextFlowNodeInfo(taskForm.taskId);} else {createMessage.error(res.message);}});}};

4、审批记录相关代码如下:

<!--流程流转记录--><el-card class="box-card" v-if="flowRecordList"><template #header class="clearfix"><span class="el-icon-notebook-1">审批记录</span></template><el-col :span="16" :offset="4"><div class="block"><el-timeline><el-timeline-itemv-for="(item, index) in flowRecordList":key="index":icon="setIcon(item.finishTime)":color="setColor(item.finishTime)"><p style="font-weight: 700">{{ item.taskName }}</p><el-card v-if="item.activityType === 'startEvent'" class="box-card" shadow="hover">{{ item.assigneeName }} 在 {{ item.createTime }} 发起流程</el-card><el-card v-if="item.activityType === 'userTask'" :body-style="{ padding: '10px' }"><label v-if="item.assigneeName" style="font-weight: normal; margin-right: 30px">实际办理:{{ item.assigneeName }}<el-tag type="info" size="small">{{ item.deptName }}</el-tag></label><label v-if="item.candidate" style="font-weight: normal; margin-right: 30px">候选办理: {{ item.candidate }}</label><label style="font-weight: normal">接收时间: </label><label style="color: #8a909c; font-weight: normal">{{ item.createTime }}</label><label v-if="item.finishTime" style="margin-left: 30px; font-weight: normal">办结时间: </label><label style="color: #8a909c; font-weight: normal">{{ item.finishTime }}</label><label v-if="item.duration" style="margin-left: 30px; font-weight: normal">耗时: </label><label style="color: #8a909c; font-weight: normal">{{ item.duration }}</label><p v-if="item.listFlowCommentDto.length > 0" v-for="(commentitem, index) in item.listFlowCommentDto" :key="index"><el-tag type="success" v-if="commentitem.type === '1'"> {{ commentitem.comment }}</el-tag><el-tag type="warning" v-if="commentitem.type === '2'"> {{ '退回: ' + commentitem.comment }}</el-tag> <el-tag type="danger" v-if="commentitem.type === '3'"> {{ '驳回: ' + commentitem.comment }}</el-tag><el-tag type="success" v-if="commentitem.type === '4'"> {{ commentitem.comment }}</el-tag><el-tag type="success" v-if="commentitem.type === '5'"> {{ commentitem.comment }}</el-tag><el-tag type="warning" v-if="commentitem.type === '7'"> {{ '撤回: ' + commentitem.comment }}</el-tag><!--撤回信息--><el-tag type="warning" v-if="commentitem.type === '6'"> {{ commentitem.comment }}</el-tag><!--终止信息--><el-tag type="warning" v-if="commentitem.type === '8'"> {{ commentitem.comment }}</el-tag><!--跳过信息--><el-tag type="success" v-if="commentitem.type === '9'"> {{ commentitem.comment }}</el-tag><!--前加签--><el-tag type="success" v-if="commentitem.type === '10'"> {{ commentitem.comment }}</el-tag><!--后加签--><el-tag type="success" v-if="commentitem.type === '11'"> {{ commentitem.comment }}</el-tag><!--多实例加签--><el-tag type="success" v-if="commentitem.type === '12'"> {{ commentitem.comment }}</el-tag><!--跳转信息--></p></el-card><el-card v-if="item.activityType === 'endEvent'" class="box-card" shadow="hover"> {{ item.createTime }} 流程结束 </el-card></el-timeline-item></el-timeline></div></el-col></el-card>

目前上面的审批记录没有考虑上传文件的显示与处理,后续再根据需要处理

5、流程图,这里采用process-viewer

<el-card class="box-card"><template #header class="clearfix"><span class="el-icon-picture-outline">流程图</span></template><!-- 流程图 --><process-viewer:key="`designer-${loadIndex}`":style="'height:' + height" :xml="xmlData":finishedInfo="taskList":allCommentList="historyProcNodeList"ref="refNode"/> </el-card>

6、相应的上面值代码如下,目前还没有考虑historyProcNodeList

/** xml 文件 */const getModelDetail = (deployId) => {// 发送请求,获取xmlreadXml(deployId).then((res) => {console.log('readXml res', res);xmlData.value = res.result;getFlowViewerById(taskForm.procInsId);});};const getFlowViewerById = (procInsId) => {getFlowViewer(procInsId).then((res) => {taskList.value = res.result || [];console.log('taskList=', taskList.value);//fillColor();});};

7、效果图如下:

这篇关于基于jeecgboot-vue3的Flowable流程-我的任务(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

使用JavaConfig配置Spring的流程步骤

《使用JavaConfig配置Spring的流程步骤》JavaConfig是Spring框架提供的一种基于Java的配置方式,它通过使用@Configuration注解标记的类来替代传统的XML配置文... 目录一、什么是 JavaConfig?1. 核心注解2. 与 XML 配置的对比二、JavaConf

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行

CSS 样式表的四种应用方式及css注释的应用小结

《CSS样式表的四种应用方式及css注释的应用小结》:本文主要介绍了CSS样式表的四种应用方式及css注释的应用小结,本文通过实例代码给大家介绍的非常详细,详细内容请阅读本文,希望能对你有所帮助... 一、外部 css(推荐方式)定义:将 CSS 代码保存为独立的 .css 文件,通过 <link> 标签