V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
devilte
V2EX  ›  JavaScript

请教如何实现 BPMN 图自动布局的其他实现方法?

  •  
  •   devilte · 2021-11-07 13:34:58 +08:00 · 1830 次点击
    这是一个创建于 1117 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个功能是, 后端通过算法生成一个 BPMN 图出来给前端, 但是图形里所有节点元素的位置都是 x=0 y=0. 需要有一个 自动布局 BPMN 的工具来实现这个 BPMN 图在画布里呈现出来的是可读(有布局) 的效果.

    目前在用的是bpmn-auto-layout这个 js 工具库, 但是发现有以下问题:

    1. 解析不了后端生成的 BPMN 图形, 源码里各种报错, 但是该数据上传到 bpmn-js 线上编辑器能正常上传;后面下了源码改了一点点入口代码勉强能解析, 但是还是会有些 BPMN 传进去报错;

    2. 最近遇到部分 BPMN 数据直接导致页面卡死, 必须从任务管理器强关才行, 怀疑是 bpmn-auto-layout 内部代码陷入死循环;

    3. 这个库看起来也没人维护了

    目前暂时也没有发现其他类似功能的前端库, 或者是有只是我没找到?

    改库里的源码或者自己写一个都需要大量时间, 甚至效果并不理想,目前时间还挺急的.

    所以来请教万能的 Ver 们有没有解决方案, 跪谢~

    python 有类似的功能库的话也可推荐一下😬

    2 条回复    2021-11-08 16:33:34 +08:00
    mouxinzi
        1
    mouxinzi  
       2021-11-08 14:38:25 +08:00
    我们是用 bpmn-moddle 解决图元问题
    所有节点都是 x=y=0 那看看能不能在生成 bpmn.xml 的时候 解决这个问题
    devilte
        2
    devilte  
    OP
       2021-11-08 16:33:34 +08:00
    @mouxinzi 我们 bpmn.xml 的生成是算法根据流程数据 计算出数据关系然后生成的,所以位置信息不属于他们关心的?或者是 python 那边没有类似的布局库,所以就放在前端做布局。

    不过昨天正发愁的时候,无意中找到了 java 有一个叫 activiti 的库,里面有我们需要的 bpmn 的自动布局功能,刚好我们的后端服务是 java ,就把文档和使用案例都发给 java 那边,让他们在中间做一下处理后再给前端,现在基本满足了这个需求,目前还没发现是否有其他附带问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3716 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:37 · PVG 18:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.