Flowable6.x导出/查看/跟踪流程图(续)

书接上回

项目源码仓库

无论是待办、已办,亦或是流转中、已结束的流程实例,通过使用JS绘制SVG格式的交互式流程图,与以上篇博文中三种方式相比,在效果上都具有明显优势。
运行效果如下图所示:
Flowable6.x导出/查看/跟踪流程图(续)_第1张图片

整合、改造Flowable中displaymodel页面

从flowable官方发布包获取前端源码

  • 下载官方数据包flowable-6.4.1.zip
  • 从压缩包中解压出flowable-6.4.1\wars下面的flowable-modeler.war
  • 从flowable-modeler.war中解压出WEB-INF\classes\static\display 文件夹下的11个文件,如下图所示:
    {% asset_img trac.gif 流程跟踪 %}
  • 在前端vue-element-admin的public下创建display文件夹,将11个文件放入
  • 在前端vue-element-admin的public创建displayModel.html
DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="utf-8" />
    <meta name="renderer" content="webkit|ie-comp|ie-stand" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport"
      content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <link type="text/css" rel="stylesheet" href="./display/jquery.qtip.min.css" />
    <link type="text/css" rel="stylesheet" href="./display/displaymodel.css" />
    <script type="text/javascript" src="./editor-app/editor-utils.js">script>
    <script type="text/javascript" src="./jquery_1.11.0/jquery.min.js">script>
    <script type="text/javascript" src="./jquery_1.11.0/jquery.cookie.js">script>
    <script type="text/javascript" src="./display/jquery.qtip.min.js">script>
    <script type="text/javascript" src="./display/raphael.js">script>
    <script type="text/javascript" src="./display/bpmn-draw.js">script>
    <script type="text/javascript" src="./display/bpmn-icons.js">script>
    <script type="text/javascript" src="./display/Polyline.js">script>
    <script type="text/javascript" src="./display/displaymodel.js">script>
  head>
  <body>
    <div id="bpmnModel" data-model-id="1">div>
  body>
html>

通过vue组件iframe方式,将displaymodel页面嵌入

  • 将Dialog封闭为vue组件
import request from '@/utils/request'
//获取流程办理历史记录
export function fetchFlowLog(data) {
  return request({
    url: '/api/workflow/auth/activiti/task/log',
    method: 'post',
    data
  })
}

流程跟踪组件代码:



  • 以待办页面为例引入vue组件(概略)