基于jeecgboot-vue3的Flowable流程-流程处理(二)

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

对应VForm3,原先的后端解析也要做调整

1、获取历史任务的表单信息

// 获取历史任务节点表单数据值List<HistoricVariableInstance> listHistoricVariableInstance = historyService.createHistoricVariableInstanceQuery().processInstanceId(procInsId).taskId(histIns.getTaskId()).list();  Map<String, Object> variables = new HashedMap<String, Object>();Map<String, Object> formconf = new HashedMap<String, Object>();for(HistoricVariableInstance historicVariableInstance:listHistoricVariableInstance) {variables.put(historicVariableInstance.getVariableName(), historicVariableInstance.getValue());}formconf.put("formValue", variables);// 获取历史任务节点表单参数if(Objects.nonNull(histIns.getTaskId())) {HistoricTaskInstance taskIns = historyService.createHistoricTaskInstanceQuery().taskId(histIns.getTaskId()).includeIdentityLinks().includeProcessVariables().includeTaskLocalVariables().finished().singleResult();if (Objects.nonNull(taskIns)) {{String formId = taskIns.getFormKey();SysForm sysForm = sysDeployFormService.selectCurSysDeployForm(formId, deployId, taskIns.getTaskDefinitionKey());if (Objects.nonNull(sysForm)) {Map<String, Object> formModel = JSONObject.parseObject(sysForm.getFormContent(), Map.class);//formconf.put("config", JSONObject.parseObject(sysForm.getFormContent()).get("config"));//formconf.put("list", JSONObject.parseObject(sysForm.getFormContent()).get("list"));formconf.put("formModel",formModel);formconf.put("formData", variables);}}}}    flowTask.setTaskFormValues(formconf);

2、完成按钮的流程处理代码,主要是校验,同时打开对话框

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

3、支持完成方法

/** 审批任务 */const taskComplete = (approved) => {if (taskForm.hasOwnProperty('values')) {if ((!taskForm.values.hasOwnProperty('approval') || (taskForm.values.hasOwnProperty('approval') && taskForm.values.approval === '')) &&checkSendUser.value) {if (!taskForm.hasOwnProperty('nextUsers') || (taskForm.hasOwnProperty('nextUsers') && taskForm.nextUsers === '')) {createMessage.error('请选择流程接收人员或选择下一审批人');return;}} else if (checkSendUser.value && taskForm.values.hasOwnProperty('approval') && taskForm.values.approval.split(',').length > 1) {createMessage.error('目前流程只能选择一个接收人员');return;}}if (!taskForm.comment) {createMessage.error('请输入审批意见');return;}const taskFormRef = taskFormBuilder.value;const isExistTaskForm = taskFormRef !== null;if (isExistTaskForm) {//流程里的设置表单console.log("taskFormRef",taskFormRef);taskForm.values.taskformvalues = taskFormRef.formDataModel;}if (startUserForm.isStartUserNode && startUserForm.editFormType === 'oa') {refStartBuilder.value.validate();const approval = taskForm.values.approval;const data = refStartBuilder.value.getFormData();formData.value = JSON.parse(JSON.stringify(data)); //需要转换一下const variables = formData.value;console.log('variables=', variables);taskForm.variables = variables;taskForm.values = variables;if (approval) {taskForm.values.approval = approval;}}if (startUserForm.isStartUserNode && startUserForm.editFormType === 'zdyyw') {//createMessage.error("目前还不支持自定义表单的编辑修改功能!!!");//$refs.refCustomForm.submitForm();}if (startUserForm.isStartUserNode && startUserForm.editFormType === 'online') {createMessage.error('目前还不支持online表单的编辑修改功能!!!');//$refs.refViewOnlForm.submitForm();}taskForm.approved = approved; //对特殊通用同意拒绝排它网关的处理taskForm.ccUsers = taskForm.ccUsers?.join(',');taskForm.nextUsers = taskForm.nextUsers?.join(',');console.log('taskForm=', taskForm);complete(taskForm).then((response) => {createMessage.success(response.message);goBack();});};

4、效果图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/26848.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flask快速入门(路由、CBV、请求和响应、session)

Flask快速入门&#xff08;路由、CBV、请求和响应、session&#xff09; 目录 Flask快速入门&#xff08;路由、CBV、请求和响应、session&#xff09;安装创建页面Debug模式快速使用Werkzeug介绍watchdog介绍快速体验 路由系统源码分析手动配置路由动态路由-转换器 Flask的CBV…

meilisearch的索引(index)的最佳实践

官网的第一手资料学新技术&#xff1a;meilisearch官方文档 安装的官网地址&#xff1a;meilisearch安装的官网 部署在生产环境的指导&#xff1a;meilisearch部署在生产环境的指导 Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重…

CentOS系统自带Python2无法使用pip命令

Linux运维工具-ywtool 目录 一. 系统环境二.解决三.验证四.备注(1)输入"yum install -y python-pip",提示没有可用 python-pip包(2)安装完pip后进行升级 一. 系统环境 centos7系统自带的python2.7无法使用pip命令 二.解决 yum install python-pip -y三.验证 pip…

Roboflow 图片分类打标

今天准备找个图片标注工具&#xff0c;在网上搜了一下&#xff0c;看 Yolo 的视频中都是用 Roboflow 工具去尝试了一下&#xff0c;标注确实挺好用的&#xff0c;可以先用一些图片训练一个模型&#xff0c;随后用模型进行智能标注。我主要是做标注然后到处到本地进行模型的训练…

上心师傅的思路分享(三)--Nacos渗透

目录 1. 前言 2. Nacos 2.1 Nacos介绍 2.2 鹰图语法 2.3 fofa语法 2.3 漏洞列表 未授权API接口漏洞 3 环境搭建 3.1 方式一: 3.2 方式二: 3.3 访问方式 4. 工具监测 5. 漏洞复现 5.1 弱口令 5.2 未授权接口 5.3.1 用户信息 API 5.3.2 集群信息 API 5.3.3 配置…

借力AI,助力网络钓鱼(邮件)检测

引言 互联网时代&#xff0c;邮件系统依然是人们工作、生活中的很重要的一部分&#xff0c;与此同时&#xff0c;邮件系统的发展带来的钓鱼邮件问题也成为网络中的最大的安全隐患之一。本文将为大家解开网络钓鱼&#xff08;邮件&#xff09;的神秘面纱&#xff0c;一探究竟&a…

和利时DCS数据采集对接安监平台

在工业互联网日益繁荣的今天&#xff0c;工业数据的采集、传输与利用变得至关重要。特别是在工业自动化领域&#xff0c;数据的实时性和准确性直接关系到生产效率和安全性。和利时DCS&#xff08;分布式控制系统&#xff09;以其卓越的稳定性和可靠性&#xff0c;在工业自动化领…

Ubuntu 24.04 屏蔽snap包

Ubuntu 24.04 屏蔽snap包 屏蔽 这里所说的屏蔽指的是&#xff1a;禁止sudo apt install firefox时安装snap版本的包。 如需卸载snap&#xff0c;请使用关键词搜索。 命令行 cat <<EOF | sudo tee /etc/apt/preferences.d/snap-apps-disable Package: chromium* firef…

yg校园易购电商系统(Go+Vue)

校园易购二手平台系统 GitHub项目地址&#xff1a;https://github.com/xzhHas/yg 文章目录 校园易购二手平台系统一、技术栈简介二、快速开始1、安装本系统使用到的插件&#xff0c;这里推荐使用docker安装&#xff0c;此操作皆在ubuntu系统下操作&#xff0c;如果是其他系统只…

学习笔记——网络管理与运维——概述(网络管理)

二、概述 1、什么是网络管理&#xff1f; 网络管理是通过对网络中设备的管理&#xff0c;保证设备工作正常&#xff0c;使通信网络正常地运行&#xff0c;以提供高效、可靠和安全的通信服务&#xff0c;是通信网络生命周期中的重要一环。 2、网络管理分类 网络管理(Network …

【代码随想录算法训练营第三十五天】 | 1005.K次取反后最大化的数组和 134.加油站 135.分发糖果

贪心章节的题目&#xff0c;做不出来看题解的时候&#xff0c;千万别有 “为什么这都没想到” 的感觉&#xff0c;想不出来是正常的&#xff0c;转变心态 “妙啊&#xff0c;又学到了新的思路” &#xff0c;这样能避免消极的心态对做题效率的影响。 134. 加油站 按卡哥的思路…

redis 06 集群

1.节点&#xff0c;这里是把节点加到集群中的操作&#xff0c;跟主从结构不同 这里是在服务端使用命令&#xff1a; 例子&#xff1a; 2.启动节点 节点服务器 首先&#xff0c;先是服务器节点自身有一个属性来判断是不是可以使用节点功能 一般加入集群中的节点还是用r…

【Spine学习06】之IK约束绑定,制作人物待机动画,图表塞贝尔曲线优化动作

引入IK约束的概念&#xff1a; 约束目标父级 被约束骨骼子集 这样理解更好&#xff0c;约束目标可以控制被约束的两个骨骼运作 IK约束绑定过程中呢&#xff0c;如果直接绑定最下面的脚掌骨骼会发生偏移&#xff0c;所以在开始处理IK之前&#xff0c;需要先设置一个ROOT结点下的…

创新入门|生成式AI创新赋能优势解析,获取生成式AI知识的10大方法

生成式AI技术对员工和企业影响深远。对于员工而言&#xff0c;生成式AI能够提升工作效率&#xff0c;简化重复性任务&#xff0c;并为创意和决策提供支持。对于企业而言&#xff0c;生成式AI在产品创新、市场营销、客户服务和运营优化等方面发挥重要作用&#xff0c;帮助预测市…

OpenHarmony napi 编译 .so 并打包成 .har

一、前言 最近在搞公司标准产品适配OpenHarmony 平台&#xff0c; 按照行业上的常用方法&#xff0c;在Android 是将底层代码用c 封装成 xxx.so &#xff0c;然后将其他一部分打包成 xxx.jar。 因此&#xff0c;在OpenHarmony 平台也是打算按照这个模式。正所谓&#xff0c;好…

JavaScript之函数

函数 使用 声明语法&#xff1a; function 函数名() {函数体 }命名规范&#xff1a; 小驼峰命名法前缀用动词 前缀词&#xff1a; 调用 函数名()函数传参 为了提高函数的灵活性 声明语法&#xff1a; function 函数名(参数列表) {函数体 }调用 函数名(参数)在函数声…

Python版本管理器-Miniconda

随着Python的版本更新&#xff0c;我们在开发Python软件的时候&#xff0c;对Python的版本选择越来越重要&#xff0c;但同时又要兼容已经开发好了的Python软件&#xff0c;因此选择一款合适的Python版本管理器对提高开发效率也越来越重要&#xff0c;今天就推荐一款Python的版…

深入理解指针(二)

目录 1. 数组名的理解 2. 使用指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟二维数组 1. 数组名的理解 有下面一段代码: #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[…

2024年6月14日 十二生肖 今日运势

小运播报&#xff1a;2024年6月14日&#xff0c;星期五&#xff0c;农历五月初九 &#xff08;甲辰年庚午月己酉日&#xff09;&#xff0c;法定工作日。今天世界献血日&#xff0c;捐献新鲜血液&#xff0c;挽救更多生命&#xff0c;每位献血者都是英雄&#xff01; 红榜生肖…

美创科技入选“2024网络安全提供商创新排行榜”

近日&#xff0c;DBC德本咨询公布了“2024网络安全提供商创新排行榜”&#xff0c;美创科技凭借近20年的数据安全创新耕耘&#xff0c;荣誉上榜。 此次&#xff0c;与360、华为、腾讯等互联网、网络安全头部厂商并肩上榜&#xff0c;是行业对美创的再次认可。 数据安全的发展离…