基于jeecgboot-vue3的Flowable设计器新增流程类型的操作

本文主要是介绍基于jeecgboot-vue3的Flowable设计器新增流程类型的操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

1、新增流程定义,需要可以选择流程分类,同时带出应用类型,以便做相应的逻辑处理

2、ElementBaseInfo.vue 这个文件进行修改

<template><div class="panel-tab__content"><el-form size="small" label-width="90px" @submit.prevent><el-form-item label="ID"><el-inputv-model="elementBaseInfo.id":disabled="idEditDisabled || elementBaseInfo.$type === 'bpmn:Process'"clearable@change="updateBaseInfo('id')"/></el-form-item><el-form-item label="名称"><el-input v-model="elementBaseInfo.name" clearable @change="updateBaseInfo('name')" /></el-form-item><!--流程的基础属性--><template v-if="elementBaseInfo.$type === 'bpmn:Process'"><el-form-item label="流程分类"><el-select v-model="elementBaseInfo.processType" @change="changeAppType"><el-optionv-for="item in processType":key="item.id":label="item.name":value="item.id"></el-option></el-select></el-form-item><el-form-item label="应用类型"><el-select v-model="appType"><el-optionv-for="item in appType":key="item.id":label="item.name":value="item.id"></el-option></el-select></el-form-item><el-form-item label="版本标签"><el-input v-model="elementBaseInfo.versionTag" clearable @change="updateBaseInfo('versionTag')" /></el-form-item><el-form-item label="可执行"><el-switch v-model="elementBaseInfo.isExecutable" active-text="是" inactive-text="否" @change="updateBaseInfo('isExecutable')" /></el-form-item></template><el-form-item v-if="elementBaseInfo.$type === 'bpmn:SubProcess'" label="状态"><el-switch v-model="elementBaseInfo.isExpanded" active-text="展开" inactive-text="折叠" @change="updateBaseInfo('isExpanded')" /></el-form-item></el-form></div>
</template>
<script lang="ts" setup>import { ref, watch, onBeforeUnmount, toRaw } from 'vue'; defineOptions({ name: 'ElementBaseInfo' })const props = defineProps({businessObject: {type: Object,default: () => {}},processType: {type: Array,default: () => []},type: String,idEditDisabled: {type: Boolean,default: true}})const bpmnElement = ref()const elementBaseInfo = ref<any>({})const bpmnInstances = () => (window as any)?.bpmnInstancesconst appType = ref("")const resetBaseInfo = () => {bpmnElement.value = bpmnInstances()?.bpmnElement || {}elementBaseInfo.value = bpmnElement.value.businessObjectconsole.log("resetBaseInfo props.processType",props.processType);if(props.processType.length === 1) {appType.value = props.processType[0].appType;}//elementBaseInfo.value.processAppType = props.appType[0];//显示流程应用类型if (elementBaseInfo.value && elementBaseInfo.value.$type === "bpmn:SubProcess") {elementBaseInfo.value["isExpanded"] = elementBaseInfo.value.di?.isExpanded}}const updateBaseInfo = (key: string) => {if (key === "id") {bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), {id: elementBaseInfo.value[key],di: { id: `${elementBaseInfo.value[key]}_di` }});return;}if (key === "isExpanded") {bpmnInstances().modeling.modeling.toggleCollapse(toRaw(bpmnElement.value));return;}const attrObj = Object.create(null);attrObj[key] = elementBaseInfo.value[key]bpmnInstances().modeling.updateProperties(toRaw(bpmnElement.value), attrObj);}const changeAppType = (value: String) => {if (value) {const selectItem = props.processType.find(item => item.id == value);appType.value = selectItem.appType;}}watch(() => props.businessObject,(val) => {if (val) {resetBaseInfo()}})onBeforeUnmount(() => {bpmnElement.value = null})</script>

3、效果图

这篇关于基于jeecgboot-vue3的Flowable设计器新增流程类型的操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解