vue3中使用工作流插件 bpmn.js中bo.get is not a function问题处理-bpmn右侧属性面板不显示问题

文章讲述了在使用vuebpmn.js时遇到的bo.getisnotafunction问题,原因是版本不兼容。作者提供了推荐使用的bpmn-js@7.3.1、bpmn-js-properties-panel@0.37.2和bpmn-moddle@6.0.0版本,并给出了安装命令及示例代码,展示如何初始化BpmnModeler并实现右侧属性栏的显示。
摘要由CSDN通过智能技术生成

这个问题我搞了一天,最后发现是版本兼容问题, vue bpmn.js中bo.get is not a function问题处理-bpmn右侧属性问题

版本的兼容性问题 ,推荐使用以下版本
bpmn-js@7.3.1
bpmn-js-properties-panel@0.37.2
bpmn-moddle@6.0.0

npm install bpmn-js@7.3.1
npm install bpmn-js-properties-panel@0.37.2
npm install bpmn-moddle@6.0.0

运行源代码

<template>
  <div class="containers">
    <div class="canvas" ref="canvas"></div>
    <div id="js-properties-panel" class="panel"></div>
    <!-- <properties-view v-if="bpmnModeler" :modeler="bpmnModeler" /> -->
  </div>
</template>

<script setup>
  import { ref, onMounted, reactive } from 'vue'
  import BpmnModeler from 'bpmn-js/lib/Modeler'
  import { xmlStr } from '../../../mock/xmlStr'

  import propertiesPanelModule from 'bpmn-js-properties-panel'
  import propertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda'
  import camundaModdleDescriptor from 'camunda-bpmn-moddle/resources/camunda'

  // import { BpmnpropertiesProviderModule, BpmnpropertiesPanelModule } from 'bpmn-js-properties-panel'

  // bpmn建模器
  let bpmnModeler = reactive({})
  // let container = ref(null)
  let canvas = ref()

  //挂载时初始化
  onMounted(() => {
    init()
  })

  function init() {
    console.log('@@', 7898)
    //可操作时候创建实例为BpmnModeler
    bpmnModeler = new BpmnModeler({
      container: canvas.value,
      //添加控制板
      //添加控制板
      propertiesPanel: {
        parent: '#js-properties-panel',
      },
      additionalModules: [
        // 右边的属性栏
        propertiesPanelModule,
        propertiesProviderModule,
      ],
      moddleExtensions: {
        camunda: camundaModdleDescriptor,
        //   // authority: authorityModdleDescriptor,
      },
    })
    createNewDiagram()
  }

  function createNewDiagram() {
    // 将字符串转换成图显示出来
    bpmnModeler.importXML(xmlStr, (err) => {
      if (err) {
        // console.error(err)
      } else {
        // 这里是成功之后的回调, 可以在这里做一系列事情
        success()
      }
    })
  }

  function success() {
    // console.log('创建成功!')
  }
</script>

<style scoped>
  .containers {
    position: absolute;
    background-color: #fff;
    width: 100%;
    height: 55.5rem;
  }

  .canvas {
    width: 100%;
    height: 100%;
  }

  .panel {
    position: absolute;
    right: 0;
    top: 0;
    width: 300px;
  }
</style>

此时右边的属性栏就出来了

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸥总

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值