svg 借助网格线画流程图

1,216 阅读1分钟

需求背景

公司需要在后台可配置医院的就诊流程,实现可单独关闭某个流程。 拿了网上的一张图,做个示范。

技术实现

现有的库调研 (供大家参考)

有一篇国外的技术文章有描述:有兴趣,请直接跳转
10+ JavaScript libraries to draw your own diagrams (2020 edition)

  • JointJS
  • flowchart.js
  • 等等

鉴于上面的库,都没有太符合我的需求。故我决定直接上手svg画。

采用纯svg描绘

迎面而来的问题

1. 我如何获取到每个流程框和线的 (起始,结束坐标)

灵感来自:最早的切图经验,“网格线” 每个大网格都是 50x50,那么流程框和线的坐标就跃然纸上了。
当然下面是我简化的版本,实际会更麻烦。

总结

用“网格线”去获取元素的坐标,有点投机取巧,不合适实现严谨的应用,也算不上很好的实践。算是抛砖引玉,给大家一个实现思路。