bpmn-js:vue集成bpmn-js流程设计器并汉化

本文介绍了如何在Vue项目中集成bpmn-js流程设计器,并提供了汉化的步骤和资源。通过集成bpmn-js,可以实现流程设计、XML数据保存与导入等功能。此外,还分享了一篇关于Bpmn.js在线流程编辑器汉化的文章,以及一份详尽的汉化数据文件。
摘要由CSDN通过智能技术生成

最近工作转到工作流模块开发了,需要开发一个流程设计器。

于是就开始接触到bpmn-js,搜索了不少资料,整合demo。现在总结一下如何在vue工程中集成bpmn-js流程设计器。

集成的效果:

 

目前这个demo只是初步实现简单的几个功能。业务当中要扩展的话,就需要老铁更进一步进行改造和完善了。

1、保存模型为BPMN 的xml格式,这个xml数据可以提交到后端工作流引擎保存,完成流程设计的功能。

2、保存SVG。

3、导入BPMN。将文件中的xml数据转化为流程图,重新设计或保存。

相关资源

1、【bpmn.js教材目录】:

https://github.com/LinDaiDai/bpmn-chinese-document/blob/master/directory.md

 

package.json引入依赖

yarn add bpmn-js 

yarn add bpmn-js-properties-panel

yarn add bpmn-moddle

 

vue页面完整代码

<template>

    <div class="containers" ref="content">
        <a-space>
            <a-button @click="downloadBpmn">
                <a-icon type="download"/>
                保存BPMN
            </a-button>
            <a-button @click="downloadSvg">
                <a-icon type="download"/>
                保存SVG
            </a-button>

            <a-upload
                :file-list="uploadBpmnFileList"
                :before-upload="beforeUpload"
            >
                <a-button>
                    <a-icon type="upload"/>
                    导入BPMN
                </a-button>
            </a-upload>

            <a-button-group>
                <a-button @click="handlerUndo">撤销</a-button>
                <a-button @click="handlerRedo">恢复</a-button>
            </a-button-group>

            <a-button-group>
                <a-button @click="handlerZoom(0.1)">放大</a-button>
                <a-button @click="handlerZoom(-0.1)">缩小</a-button>
                <a-button @click="handlerZoom(0)">还原</a-button>
            </a-button-group>

            <a hidden ref="downloadLink"></a>
        </a-space>

        <div class="canvas" ref="canvas"></div>
        <div id="js-properties-panel" class="panel"></div>
    </div>

</template>

<script>

import BpmnModeler from 'bpmn-js/lib/Modeler';

import propertiesPanelModule from 'bpmn-js-properties-panel';
import propertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/bpmn';
import bpmnModdleDescriptor from 'bpmn-moddle/resources/bpmn/json/bpmn.json';

// BPMN国际化
import customTranslate from '@/bpmnJs/customTranslate/customTranslate';
// 自定义汉化模块
var customTranslateModule = {
    translate: ['value', customTranslate]
};

import {xmlStr} from '@/bpmnJs/mockBpmnXml/bpmnMockXml';

export default {
    components: {},
    data() {
        return {
            bpmnModeler: null,
            container: null,
            canvas: null,

            uploadBpmnFileList: [],
            scale: 1,
        }
    },
    created() {

    },
    mounted() {
        this.init();
    },
    methods: {

        /**
         * 初始化流程设计器对象
         * @returns {Promise<void>}
         */
        async init() {
            // 获取到属性ref为“content”的dom节点
            this.container = this.$refs.content
            // 获取到属性ref为“canvas”的dom节点
            const canvas = this.$refs.canvas
            // 创建BpmnModeler
            this.bpmnModeler = new BpmnModeler({
                container: canvas,
                // 加入工具栏支持
                propertiesPanel: {
                    parent: '#js-properties-panel'
                },
                additionalModules: [
                    // 左边工具栏以及节点
                    propertiesProviderModule,
                    // 右边的工具栏
                    propertiesPanelModule,
                    // 国际化
                    customTranslateModule
                ],
                moddleExtensions: {
                    bpmn: bpmnModdleDescriptor
                }
            });
            // 创建新流程
            await this.createNewDiagram(xmlStr);
        },

        /**
         * 创建新流程
         * @param bpmn BPMN流程XML报文
         * @returns {Promise<void>}
         */
  
  • 19
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: Vue-BPMN-Element是一个基于Vue.js框架开发的业务流程建模工具。它提供了一套丰富的组件和功能,帮助开发人员快速搭建并定制化业务流程设计Vue-BPMN-Element的主要特点包括: 1. 强大的可扩展性:Vue-BPMN-Element提供了丰富的组件和插件,允许开发人员根据项目需求进行定制化开发。这些组件和插件可实现诸如拖拽、连接线、节点属性编辑等功能,满足各种业务流程的建模需求。 2. 可视化编辑:Vue-BPMN-Element提供了直观的界面,允许用户通过拖拽和连接线的方式创建和编辑业务流程。用户可以通过可视化的界面来管理和优化业务流程,极大地提高了开发效率和用户体验。 3. 高度定制化:Vue-BPMN-Element提供了丰富的配置选项和事件钩子,可以完全适应不同的业务需求。开发人员可以根据具体项目需求,灵活地定制展示样式、交互方式等,实现个性化的业务流程建模工具。 4. 良好的兼容性:Vue-BPMN-Element基于Vue.js框架开发,具有良好的兼容性和扩展性。它可以与其他Vue.js插件和工具库无缝集成,为项目提供更加全面和高效的解决方案。 总之,Vue-BPMN-Element是一个强大、可定制化和易用的业务流程建模工具,通过它可以快速搭建和管理业务流程,提高开发效率和项目质量。无论是小型项目还是大型企业应用,Vue-BPMN-Element都是一个值得考虑的选择。 ### 回答2: vue-bpmn-element是一个基于Vue.js框架的BPMN(Business Process Model and Notation)流程图绘制组件库。BPMN是一种用于描述业务流程的图形化标准,可以方便地表示和分析企业的各个流程vue-bpmn-element提供了一系列可复用的组件,用户可以在自己的Vue应用中轻松地集成和使用这些组件。这个库的设计目标是提供一个简洁、易用且高度可定制的BPMN流程图绘制解决方案。 使用vue-bpmn-element,用户可以创建自定义的BPMN流程图,包括各种元素如任务、网关、事件等。这些元素可以通过拖拽、缩放和连接等操作进行编辑和布局。用户还可以为每个元素设置相关属性和约束条件,以便更好地描述和分析业务流程。 在vue-bpmn-element中,还提供了一些实用的功能,如历史记录、撤销恢复、导入导出等。这些功能可以帮助用户方便地管理和操作流程图,提高工作效率。 总之,vue-bpmn-element是一个功能丰富且易于使用的BPMN流程图绘制组件库,通过它,用户可以轻松地创建、编辑和管理自定义的业务流程,帮助企业提高业务流程的可视化管理水平,提高工作效率。 ### 回答3: vue-bpmn-element是一个基于Vue.js的开源项目,它提供了一组可在业务流程管理界面中使用的BPMN(Business Process Model and Notation)元素和功能。 首先,vue-bpmn-element具有良好的可定制性。它提供了一系列可自定义的BPMN元素,如任务、网关、边界事件等,使用户能够根据自己的需求进行灵活的配置和设计。此外,它还支持自定义样式和图标,让用户能够根据自己的品牌或用户界面的要求对BPMN流程进行个性化的呈现。 其次,vue-bpmn-element提供了丰富的交互功能。用户可以通过拖拽、缩放等操作来创建、修改和连接BPMN元素,实现业务流程设计和调整。同时,它还支持多种事件,如点击、双击、鼠标悬停等,使用户能够对BPMN流程进行更加直观和便捷的操作。 此外,vue-bpmn-element还提供了一些实用的功能和工具。例如,它允许用户导入/导出BPMN文件,从而方便地与其他系统或工具进行集成。它还支持撤销/重做操作,保证用户在编辑过程中的操作精确和安全。另外,它也提供了一些常用的扩展,如条件流程、消息传递等,使用户能够更加灵活地定义和管理业务流程。 总之,vue-bpmn-element是一个功能强大且易于使用的BPMN元素集合,它为用户提供了一套完整的工具和功能,帮助用户进行业务流程设计、管理和优化。无论是初学者还是有经验的开发者,都可以通过vue-bpmn-element轻松地搭建出高效和可扩展的业务流程管理系统。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值