返回顶部
首页 > 资讯 > 前端开发 > JavaScript >绘制flowable 流程图的Vue 库使用详解
  • 511
分享到

绘制flowable 流程图的Vue 库使用详解

2024-04-02 19:04:59 511人浏览 安东尼
摘要

目录引言workflow-bpmn-modeler注册 bpmnModeler 组件muheflow-bpmn-modeler引言 之前松哥发了一篇文章和小伙伴们介绍了前端的 bpm

引言

之前松哥发了一篇文章和小伙伴们介绍了前端的 bpmn.js 这个库,利用这个库我们可以自己将绘制流程图的功能嵌入到我们的项目中。

然而,这个库默认是给 Camunda 设计的,所以画出来的流程图导出来的 XML 文件无法直接使用,必须要做一些深度定制,才能将 XML 文件转为 Flowable 流程引擎可用的 XML 文件。这个深度定制太太太麻烦了。

所以我就在想前端有没有现成的库,可以直接用来绘制 Flowable 流程图的?找来找去,找到了两个,这两个的相似度还蛮高的,不过这两个都有一个问题,那就是都是基于 Vue2 开发的,在 vue3 中用不了,算了,作为一个工具,Vue2 就 Vue2 吧,忍了。毕竟我也不是专业的前端工程师,掌握的前端技能能满足我后端的需求也就足够了,要是专业的前端工程师,我肯定把 bpmn.js+Vue3 整的明明白白了。

好啦,接下来就不废话了,跟小伙伴们介绍一下这两个可以绘制 Flowable 流程图的前端库。

workflow-bpmn-modeler

workflow-bpmn-modeler 基于 Vue 和 bpmn.io@7.0,实现了 flowable 的工作流设计器。使用这个流程绘制工具,建议采用 flowable6.4.1 版本,flowable6.4.2 版本开始进行商业化重构,为了方便刨码学习,推荐使用 flowable6.4.1 版本。

这个用法其实很简单,首先我们创建一个 Vue2 的项目,注意 Vue 的版本不要选错了,项目创建好之后,添加 workflow-bpmn-modeler 依赖,执行如下任意命令添加:

npm i workflow-bpmn-modeler

或者:

yarn add workflow-bpmn-modeler

添加完成后,package.JSON 内容如下:

{
  "name": "bpmn_demo02",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
  },
  "dependencies": {
    "core-js": "^3.8.3",
    "element-ui": "^2.15.9",
    "vue": "^2.6.14",
    "vue-router": "^3.5.1",
    "workflow-bpmn-modeler": "^0.2.8"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-plugin-router": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "vue-template-compiler": "^2.6.14"
  }
}

注意看版本号。

接下来我们就可以在一个 .vue 文件中使用这个组件了,代码如下:

<template>
  <div>
    <bpmn-modeler
            ref="refnode"
            :xml="xml"
            :users="users"
            :groups="groups"
            :cateGorys="categorys"
            :is-view="false"
            @save="save"
    />
  </div>
</template>

<script>
  import bpmnModeler from "workflow-bpmn-modeler";

  export default {
    components: {
      bpmnModeler,
    },
    data() {
      return {
        xml: "", // 后端查询到的xml
        users: [
          { name: "javaboy", id: 1 },
          { name: "itboyhub", id: 2 },
          { name: "江南一点雨", id: 3 },
        ],
        groups: [
          { name: "经理", id: 4 },
          { name: "组长", id: 5 },
          { name: "员工", id: 6 },
        ],
        categorys: [
          { name: "OA", id: "oa" },
          { name: "财务", id: "finance" },
        ],
      };
    },
    methods: {
      getModelDetail() {
        // 发送请求,获取xml
        // this.xml = response.xml
      },
      save(data) {
        console.log(data);  // { process: {...}, xml: '...', svg: '...' }
      },
    },
  };
</script>

我们来分析一下这段代码:

首先从 workflow-bpmn-modeler 中导入 bpmnModeler。

注册 bpmnModeler 组件

在页面中直接使用 bpmnModeler 组件,使用该组件时候,有五个属性一个方法,我们挨个来说:

xml:这个属性是 bpmnModeler 要展示的流程图的 XML 字符串,我们可以提前给一个流程图的 XML 字符串,这样 bpmnModeler 组件就会将这个 XML 字符串所对应的流程图给画出来,如果我们只是单纯的想自己绘制流程图,那么这个可以不用管,给一个空字符串就行了。

users:这是一个数组,当我们配置 UserTask 的时候,可以设置这个 UserTask 由谁来处理,users 配置的就是这里用到的用户。

groups:这个类似于 users,也是在 UserTask 中,如果我们想要配置一个 UserTask 的候选组的话,那么就会用到 groups 中的内容。

categorys:这个属性亲测没有任何功能,源代码我也看了,源代码中也没有用这个属性,这完全就是一个没有用的属性,可忽略之。

is-view:这个表示当前 bpmnModeler 是要画流程图还是单纯的只是将流程图展示出来,false 表示我们是用 bpmnModeler 画流程图的,如果设置为 true,就表示 bpmnModeler 只是用来展示流程图(提前准备好流程图的 XML 文件,可以用 bpmnModeler 将之展示出来)。

@save:这个是点击网页上的保存模型按钮的时候,会触发的一个回调函数。

好啦,这就可以了。

接下来,我们启动 Vue 项目,就可以看到这个流程图绘制页面了:

现在就可以愉快的画流程图了~

接下来,松哥就用这个,手把手教大家画一下之前文章中和大家用的请假流程图,当时的流程图是这样的:

我们来看下如何绘制:

  • 首先我们先来定义一下流程的基本信息:

  • 接下来绘制经理批准还是拒绝流程:

点击这个扳手按钮可以设置任务类型:

为这个任务设置一个监听器:

设置监听器的原因是因为前端用户在提交请假申请的时候,选择审批人可以直接选择审批人,也可以选择审批人的身份(例如经理),这两种选择都是被允许的。所以我们就添加一个任务监听器,当流程执行到这个 Task 的时候,我们就在任务监听器中,根据前端传来的参数去设置这个任务是由候选人处理还是候选用户组处理。

  • 添加互斥网关:

  • 审批通过线

接下来,先是审批通过,审批通过的条件是 approved 字段为 true 就表示审批通过:

  • 审批通过发送通知

审批通过后,给用户发送一个通知,这是一个服务任务,发送通知的类是我们自己写的,所以也需要配置一下自定义类的位置:

  • 结束

最后进入到审批通过 UserTask 并且结束:

  • 绘制拒绝线

按照如上流程,继续绘制请假被拒绝的流程:

muheflow-bpmn-modeler

松哥要和大家介绍的第二个工具就是 muheflow-bpmn-modeler,这个基于 Vue 和 bpmn.io@8.0,实现了 flowable 的工作流设计器。使用这个流程绘制工具,建议采用 flowable6.4.1 版本,flowable6.4.2 版本开始进行商业化重构,为了方便刨码学习,推荐使用 flowable6.4.1 版本。

没找到这个的源代码,但是我发现这个的用法和 workflow-bpmn-modeler 的用法毫无差别~所以我就不废话了,照着上面的用这个就行了。

以上就是绘制flowable 流程图的Vue 库使用详解的详细内容,更多关于Vue 库绘制flowable 流程图 的资料请关注编程网其它相关文章!

--结束END--

本文标题: 绘制flowable 流程图的Vue 库使用详解

本文链接: https://lsjlt.com/news/167245.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 绘制flowable 流程图的Vue 库使用详解
    目录引言workflow-bpmn-modeler注册 bpmnModeler 组件muheflow-bpmn-modeler引言 之前松哥发了一篇文章和小伙伴们介绍了前端的 bpm...
    99+
    2024-04-02
  • Android view绘制流程详解
    目录绘制流程Measure 测量流程MeasureSpeclayout 布局流程draw 绘制流程相关类 & 概念DecorViewWindowViewRootActivit...
    99+
    2024-04-02
  • Vue+Echarts绘制饼图的示例详解
    目录1 引入Echarts1.1 安装1.2 引入1.3 基本使用2 基本饼状图3 为饼图添加标题等属性3.1 标题图例3.2 数据展示3.3 样式设置4 饼图扩展5 总结1 引入E...
    99+
    2023-03-19
    Vue Echarts绘制饼图 Vue Echarts饼图 Vue Echarts
  • 怎么用电脑绘制流程图
    流程图作为我们日常办公中常见的一种图形图表,不仅可以绘制会议流程图、财务报销流程图还有项目管理流程图等等。流程图的绘制也有相应的技巧和方法,掌握了方法想要画好也不是难事。以往我们通过Word画流程图,由...
    99+
    2024-04-02
  • Qt使用QWT绘制柱状图详解
    目录1:设置QChart的整体背景色2:设置有效区域的背景色3:设置X、Y坐标轴数据4:设置网格线5:插入实际数据6:X轴刻度值优化7:设置X轴文本偏移8:设置每个柱状体的宽度9:设...
    99+
    2024-04-02
  • 使用Python绘制热图的库 pyHea
    pyHeatMap 详细介绍 这是一个生成热图的小程序,基于 Python 和 PIL 开发。 程序截图: 点击图 热图 安装: 通过 pip 安装: pip install pyheatmap 通过 easy_install 安...
    99+
    2023-01-31
    热图 Python pyHea
  • Vue+Canvas绘图使用的讲解
    目录Vue使用Canvas绘图1、前言2、实现原理Vue使用Canvas的小demo顺便总结一波Vue使用Canvas绘图 1、前言 图片储存在后台中,根据图片的地址,在vue页面中...
    99+
    2022-11-13
    Vue使用Canvas Canvas绘图使用 Vue Canvas绘图
  • Python绘制散点图的教程详解
    少废话,直接上代码  import matplotlib.pyplot as plt import numpy as np # 1. 首先是导入包,创建数据 n = 10 ...
    99+
    2024-04-02
  • 怎么使用Vue+Echarts绘制饼图
    这篇文章主要介绍“怎么使用Vue+Echarts绘制饼图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Vue+Echarts绘制饼图”文章能帮助大家解决问题。1 引入Echarts1.1 安...
    99+
    2023-07-05
  • 如何绘制好看的数据库基本流程图
    这篇文章主要讲解了“如何绘制好看的数据库基本流程图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何绘制好看的数据库基本流程图”吧!专业的图形图表软件,让流...
    99+
    2024-04-02
  • 如何利用vue3.x绘制流程图
    这篇文章主要介绍“如何利用vue3.x绘制流程图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用vue3.x绘制流程图”文章能帮助大家解决问题。下面是效果图:整体结构布局:需要实现的功能列表:...
    99+
    2023-07-02
  • Flowable设置流程变量的四种方式详解
    目录引言1. 为什么需要流程变量2. 流程变量的分类3. 全局流程变量3.1 启动时设置3.2 通过 Task 设置3.3 完成任务时设置3.4 通过流程设置4. 本地流程变量4.1...
    99+
    2022-11-16
    Flowable 设置流程变量 Flowable 流程变量
  • 使用PythonNumPy库绘制渐变图案
    目录1. 导入模块2. 基本绘画流程3. 生成随机彩色图像4. 生成渐变色图像5. 在渐变色背景上画曲线6. 使用颜色映射(ColorMap)7. 展示NumPy的魅力NumPy也可...
    99+
    2024-04-02
  • Android Canvas和Bitmap结合绘图详解流程
    目录Rect/RectFMatrixCanvasBitmapRect/RectF 存储四个值的矩形类:左侧、顶部、右侧和底部。可用于直接在画布上绘制或仅用于存储要绘制的对象的大小。R...
    99+
    2024-04-02
  • VUE 使用canvas绘制管线管廊示例详解
    目录引言drawRealTimePipeline:绘制实时管线drawRealTimeEquipment:绘制实时设备:drawRealTimeText:绘制实时文本:moveAll...
    99+
    2023-05-18
    VUE canvas绘制管线/管廊 VUE canvas绘制
  • Python利用Matplotlib绘制图表详解
    目录前言折线图绘制与显示绘制数学函数图像散点图绘制绘制柱状图绘制直方图饼图前言 Matplotlib 是 Python 中类似 MATLAB 的绘图工具,如果您熟悉 MATLAB,那...
    99+
    2024-04-02
  • Python绘图库之pyqtgraph的用法详解
    plot 设置plot的pen属性的几种方法,通过画笔可以设置绘制图像的颜色、线宽等参数: pen=(255,0,0)pen=pg.mkPen(color=‘b&rsqu...
    99+
    2022-12-30
    Python绘图库pyqtgraph使用 Python绘图库pyqtgraph Python pyqtgraph
  • Matlab绘制散点密度图的教程详解
    目录效果1工具函数完整代码2参数说明3使用方式3.1散点赋色3.2等高线图3.3带直方图的散点图3.4带直方图的等高线图4使用方式扩展–与ggplot修饰器联动效果 ...
    99+
    2024-04-02
  • Python可视化绘制图表的教程详解
    目录1.Matplotlib 程序包2.绘图命令的基本架构及其属性设置3.Seaborn 模块介绍3.1 未加Seaborn 模块的效果4.描述性统计图形概览4.1制作数据4.2 频...
    99+
    2024-04-02
  • Java绘图库JFreeChart的详细使用教程(入门级)
    JFreeChart是一个用于绘制图表的Java库,它提供了丰富的功能和灵活的配置选项。以下是一个入门级的JFreeChart使用教...
    99+
    2023-09-09
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作