vue+bpmn捕获用户正在操作的元素节点

我们编写一个函数
在data中声明一个 element 默认值为null
我们就用 element 储存当前节点目标

handleModeler() {
 this.bpmnModeler.on('root.added', e => {
    if (e.element.type === 'bpmn:Process') {
      this.element = null
      this.$nextTick().then(() => {
        this.element = e.element
        console.log(this.element);
      })
    }
  })
  this.bpmnModeler.on('element.click', e => {
    const { element } = e
    console.log(element)
    if (element.type === 'bpmn:Process') {
      this.element = element
      console.log(this.element);
    }
  })
  this.bpmnModeler.on('selection.changed', e => {
    // hack 同类型面板不刷新
    this.element = null
    const element = e.newSelection[0]
    if (element) {
      this.$nextTick().then(() => {
        this.element = element
        console.log(this.element);
      })
    }
  })
},

然后在 mounted 周期中调用handleModeler 需要注意的是 必须要bpmn 实例化完成之后执行 不然可能捕获不到事件了

mounted () {
const canvas = this.$refs.canvas
  // 生成实例
  this.bpmnModeler = new BpmnModeler({
    container: canvas,
    additionalModules: [
      {
        translate: ['value', customTranslate]
      }
    ],
  })
  this.createNewDiagram() // 新增流程定义
  this.handleModeler()
}

在这里插入图片描述
然后我们操作节点 就会打印出对应的对象 我们就可以用this.element拿到用户正在操作的节点 进而调用updateProperties
修改属性 等方法
我们也可以把这个 this.element存在vuex中 全局保存

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue项目中使用BPMN适配Activiti的步骤如下: 1. 首先,你需要引入Activiti的相关依赖。你可以使用Activiti提供的activiti-bpmn-converter模块来实现BpmnModel对象与XML之间的转换操作。你可以通过创建org.activiti.bpmn.converter.BpmnXMLConverter类对象并调用相应的方法来实现转换操作。\[1\] 2. 接下来,你需要在Vue项目中引入BPMN相关的样式。你可以在左侧工具栏中引入样式,例如导入"bpmn-js/dist/assets/diagram-js.css"、"bpmn-js/dist/assets/bpmn-font/css/bpmn.css"、"bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css"和"bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css"等样式文件。\[2\] 3. 然后,你可以在Activiti引擎配置文件中配置属性"preBpmnParseHandlers"和"postBpmnParseHandlers"来添加BPMN解析处理器。你可以根据需要分别添加Pre(前置)和Post(后置)类型的解析处理器。这些解析处理器可以在解析BPMN文件时执行一些自定义的逻辑。\[3\] 总结起来,你可以在Vue项目中使用Activiti的activiti-bpmn-converter模块来实现BpmnModel对象与XML之间的转换操作,并在左侧工具栏中引入相关的BPMN样式。此外,你还可以通过配置Activiti引擎的属性来添加BPMN解析处理器。这样,你就可以在Vue项目中适配Activiti了。 #### 引用[.reference_title] - *1* *3* [[完全自定义]使用vue+bpmn-js实现activiti的流程设计器](https://blog.csdn.net/weixin_39696518/article/details/112933330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue+bpmnjs+activiti 基本使用](https://blog.csdn.net/qq_42155347/article/details/129648681)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值