mxGraph是一个强大的JavaScript流程图前端库,可以快速创建交互式图表和图表应用程序,国内外著名的ProcessOne和draw.io都是使用该库创建的强大的在线流程图绘制网站.

这个库相当强大和复杂,以至于初次接触会无从下手,不过官方的文档是相当强大和完善的,还有众多的示例可以参考,因此,做出简单的效果是没有问题的,我主要介绍一下我自己在项目中遇到的问题。

  • 1.HTML元素作为流程图元素

在项目中,我们要实现如下所示的流程图。每个节点左侧是图标,中间是文字描述,右侧是状态展示,这种样式使用HTML是很好处理的,那么在mxGraph中节点可以使用HTML吗,当然是可以的。

首先,我们需要设置使用HTML标签

graph.htmlLabels = true;

然后,在创建cell的时候传入HTML,大小,以及样式即可,如下:

var style = 'text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;';var html = '<table class="cellTable">' +'                        <tr>' +'                            <td>' +'                                <div class="cellIcon"><div></div></div>' +'                            </td>' +'                            <td class="cellLabel"></td>' +'                            <td class="cellState"><i class="fa"></i></td>' +'                        </tr>' +'                    </table>';
//创建cellvar cell = new mxCell(html, new mxGeometry(0, 0, 293, 89), style);cell.vertex = true;

使用HTML元素作为节点,可以很好的控制样式,而且HTML节点也能很方便的添加事件和其他操作,十分方便。

  • 2.流程图自动布局
    mxGraph提供了多种流程图布局算法,常用紧凑树布局算法即可,即

    new mxCompactTreeLayout(graph);

    不过这种算法只针对只有一个根节点的,对于这种有多个节点的,如下面这种:


则需要使用另外的算法来完成布局:

new mxHierarchicalLayout(graph, mxConstants.DIRECTION_NORTH);

通过根节点的数量来选择不同的布局算法,以上。
又烂尾了,写不下去,综上,可以用HTML节点,以及根节点数量不同要选用不同的布局算法。

使用mxGraph绘制流程图相关推荐

  1. Vue中使用mxgraph开发流程图工具

    1.什么是mxgraph mxGraph是一个JavaScript图表库,可以快速创建交互式图形和图表应用程序,这些应用程序可以在其供应商支持的任何主要浏览器中运行.mxGraph 提供图形绘制.图形 ...

  2. python流程图-使用Graphviz快速绘制流程图

    简介 自己在绘制流程图的时候一般用到的是Visio,但是感觉连线以及框图位置调整起来很烦-经过一番了解之后发现了Graphviz可以使用Python代码来绘制流程图的软件,使用这个工具我们可以更专注于 ...

  3. java.awt.Graphics2D绘制流程图基本元素

    java.lang.Object ----java.awt.Graphics ----java.awt.Graphics2D 由于项目需要,要求对用户流程进行图形化展示:用户对自己的操作通过查看流程图 ...

  4. 1过程流程图 3 apqp_如何绘制流程图?这里有3种绘制方法,既简单又高效!1分钟可学会...

    工作中,很多小伙伴需要绘制流程图,那么如何绘制流程图呢?其实并不难,今天小编就来给大家分享流程图的3种绘制方法,大家可以根据自己的想法选择最适合自己的那一种哦~ 一.Word制作 1.借助SmartA ...

  5. VSCode来绘制流程图真是得心应手

    场景 在分析某业务时常常需要绘制流程图等一些图.通常会使用一些专门的绘图软件比如Viso.亿图图示. 但是如果只是想简单的绘制一下流程或者其他图.又或者不想打开其他IDE,如果能在开发的同时也能 实现 ...

  6. omnigraffle 画曲线_「技法」三步学会用绘图利器 OmniGraffle 绘制流程图

    OmniGraffle 是 Mac 上的绘图利器,曾获2002年苹果设计奖.Graffle 在很多方面对标 Windows 系统上的 Microsoft Visio,是制作各种文档的绝妙工具.这篇文章 ...

  7. html绘制流程图飞线,基于jsplumb绘制流程图

    效果图 jspumb.gif 需要用到以下四个文件包 jQuery.js jquery-ui.min.css jquery-ui.min.js jquery.jsPlumb-1.6.2-min.js ...

  8. 流程图符号以及绘制流程图方法

    流程图是显示过程中的操作步骤的流程图,最通俗点来讲就像路线图一样可以给路人指引方向般的神圣的存在,那要绘制神圣的流程图要怎样操作呢?有什么注意事项呢?不同的流程图符号代表的意义也不尽相同,所以关于流程 ...

  9. mermaid与flowchart.js绘制流程图分支结构试验

    mermaid与flowchart.js绘制流程图分支结构试验 近日绘制流程图时对不断修改调整流程图中节点位置感到很厌烦,想要改用代码方式来写流程图.以下试验均基于CSDN编辑器的的mermaid和f ...

最新文章

  1. Ajax方式上传文件报错Uncaught TypeError: Illegal invocation
  2. eclipse添加maven环境
  3. 【VBA编程】15.WorkSheet对象常用属性
  4. IETester - IE5.5、IE6、IE7、IE8、IE9共存
  5. 为了分析WebRTC, 重学Windows开发
  6. 排序序列排序算法总结(二)——快速排序、归并排序
  7. 在MySQL中删除重复的行
  8. UVA10679 I Love Strings!!【字符串匹配】
  9. js parsefloat 相加_JS高程小记-基本概念
  10. tkmybatis简单教程
  11. python绘制网络拓扑图_python 画网络拓扑图
  12. 原来CSS可以添加多个阴影
  13. 如何在Vue.js和ElementUI框架中获取Collapse组件最后选中的值
  14. 火狐浏览器解除端口限制
  15. QThread 结束后,不发射Finished问题
  16. 计算机软件版权注册,计算机软件版权注册费是多少
  17. 美通社日历 | 媒体关注、会展信息、企业财报发布,节假日备忘(8月31日—9月6日)...
  18. python去掉字典重复项_从字典列表中删除重复项python
  19. signature=5a522a8356f9906b0b775bdada02a4c6,阜阳境内车辆违章信息公示(4月3—4月23)
  20. 微信读书项目记录(1)

热门文章

  1. 软件工作的薪水是全国平均水平的两倍
  2. Doris(16):物化视图
  3. eclise创建java项目和在src下创建包和在包下创建类
  4. FreeSwitch mod_dptools: playback
  5. 阿土的/home/userA/的访问问题
  6. [多活] 分布式、多活数据中心如何实现DNS域名解析和负载均衡?
  7. Android帧动画特点,Android帧动画和补间动画看这篇足够了
  8. u盘里的文件删除了怎么恢复
  9. 如何处理网站页面劫持、网站页面劫持原理及解决方法
  10. scrapy,scrapy-redis显示:什么都没爬取到:Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)