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

news/2024/10/22 14:31:43/
因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。

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

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

javascript">/*** 详情*/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

javascript"><!--流程处理表单设计器模块,从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、获取上面的相应值从下面的接口获取

javascript">/** 获取流程变量内容 */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、审批记录相关代码如下:

javascript"><!--流程流转记录--><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

javascript"><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

javascript">/** 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、效果图如下:


http://www.ppmy.cn/news/1465867.html

相关文章

Harmonyos Next——图片上传与下载

Harmonyos Next——图片上传与下载 图片上传至服务器描述选取图片从相册选择图片通过拍摄获取图片 将获取的图片上传至服务器拷贝文件上传图片 图片下载 图片上传至服务器 描述 从手机相册中选择一张图片&#xff0c;然后上传至服务器 选取图片 在从相册或者拍摄获取的图片…

探索iOS上的C语言编程软件:从入门到精通的全方位指南

探索iOS上的C语言编程软件&#xff1a;从入门到精通的全方位指南 在iOS平台上进行C语言编程&#xff0c;虽然不如其他主流编程语言那么普及&#xff0c;但仍然有一批热衷于C语言的开发者们在这个领域里耕耘。本文将深入探索iOS上的C语言编程软件&#xff0c;从四个方面、五个方…

docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)

EFK日志系统搭建 EFK日志系统介绍功能需求搭建elasticsearch集群规划前提部署核对证书及权限 EFK日志系统介绍 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎&#xff0c;允许进行全文、结构化搜索&#xff0c;它通常用于索引和搜索大量日志数据&#xff0c;也可用于…

View->Bitmap缩放到自定义ViewGroup的任意区域(Matrix方式绘制Bitmap)

Bitmap缩放和平移 加载一张Bitmap可能为宽高相同的正方形&#xff0c;也可能为宽高不同的矩形缩放方向可以为中心缩放&#xff0c;左上角缩放&#xff0c;右上角缩放&#xff0c;左下角缩放&#xff0c;右下角缩放Bitmap中心缩放&#xff0c;包含了缩放和平移两个操作&#xf…

让低代码平台插上AI的翅膀 - 记开源驰骋AI平台升级

让低代码系统插上AI的翅膀——驰骋低代码开发平台引领新时代 在当今日新月异的科技世界中&#xff0c;人工智能&#xff08;AI&#xff09;已经成为各个行业不可或缺的一部分。从制造业的自动化生产到金融行业的智能风控&#xff0c;再到医疗领域的精准诊断&#xff0c;AI技术…

NoSQL是什么?NoSQL数据库存在SQL注入攻击?

一、NoSQL是什么&#xff1f; NoSQL&#xff08;Not Only SQL&#xff09;是一种非关系型数据库的概念。与传统的关系型数据库不同&#xff0c;NoSQL数据库使用不同的数据模型来存储和检索数据。NOSQL数据库通常更适合处理大规模的非结构化和半结构化数据&#xff0c;且能够…

深度解析:从概念到变革——Transformer大模型的前世今生以及大模型预备知识讲解[知存科技]

深度解析&#xff1a;从概念到变革——Transformer大模型的前世今生 点击&#xff1a;知存科技相关课程推荐 知存科技是全球领先的存内计算芯片企业。针对AI应用场景&#xff0c;在全球率先商业化量产基于存内计算技术的神经网络芯片。凭借颠覆性的技术创新&#xff0c;知存科…

STM32 定时器与PWM的LED控制

学习目标&#xff1a; 1. 使用定时器的某一个通道控制LED周期性亮灭&#xff1b; 2. 采用定时器PWM模式&#xff0c;让 LED 以呼吸灯方式渐亮渐灭。 一、定时器 1、STM32定时器介绍 STMicroelectronics是STM32微控制器中的重要块&#xff0c;具有丰富的外设和功能&#xff0…