基于G6的弓字形流程图

这篇具有很好参考价值的文章主要介绍了基于G6的弓字形流程图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求

现在有个需求是类似于步骤条、流程图,但是节点比较多。
搜了很多类似组件,还是有各种问题。

尝试过的已有组件

一开始用的是element-ui自带的步骤条组件(下图所示),但是节点过多,宽度不够的时候,换行就是直接从新一行开始接上,但是这样节点一多就不美观,不够直观。
基于G6的弓字形流程图,流程图

后面尝试用G6自带的一些例子做改动,但是G6的整体走向都是从左往右,或者从上往下扩展。也尝试过用Grid网格布局,但是有个bug怎么也弄不好。
bug:每次第一个节点都会跑到最后面,然后第二个节点放第一位,这样就会有一条线穿过了整个流程图。(所有的配置都是根据官方例子写的,还是有问题就很无语…)
基于G6的弓字形流程图,流程图

组件

后面就只能是基于G6的基础上,固定节点大小,手动计算节点位置。
缺点:固定节点大小,有些标题很短的就会有很多空位,标题很长的就会超出节点大小

效果图

基于G6的弓字形流程图,流程图

  • 深色的为已完成流程,灰色的为待办。
  • 因为是固定节点大小,为了预防节点标题过长,设置了标题超长部分用...截取,并设置了tooltip显示全部内容
  • 组件整体可以随窗口大小变化,每行显示的节点数量根据窗体大小自适应

实现

节点样式

因为是第一次接触 G6 组件,从官网找了个比较切合自己需求的自定义节点进行修改
基于G6的弓字形流程图,流程图

tooltip

有时候会有这么个需求,要求鼠标悬浮的时候,显示该节点的详细内容

  • 一开始用的是内置的behavior的方法实现的
    基于G6的弓字形流程图,流程图
    但是这里有个问题,tooltip 会出现偏移,无论怎么设置offset也没用。后面搜了很久都没有在网上找到类似的问题,就把这个认为又是自己写的代码的未解之谜…
    然后当我用了plugin这种方法实现的时候,意外搜到了出现类似问题的博客(点击可查看),但是没实验过不知道是否真的能解决

  • 插件 plugin
    后面直接用了官网给的例子,没有任何坑,功能正常~
    基于G6的弓字形流程图,流程图

节点自适应

流程图自适应的效果,从另一个角度看就是每行显示的节点数量根据窗口大小进行变化。
在初始化G6组件的方法后,添加一个监听resize的方法,根据 G6 现有的宽度再除以节点大小,就可以直到一行有多少个节点。
先把现有的G6组件this.graph.destroy(),再重新初始化G6组件即可。

if (typeof window !== 'undefined') {
    window.onresize = () => {
        if (!this.graph || this.graph.get('destroyed')) return;
        if (!this.$refs.flowChart || !this.$refs.flowChart.scrollWidth || !this.$refs.flowChart.scrollHeight) return;

        let height = this.$refs.flowChart.offsetHeight, width = this.$refs.flowChart.offsetWidth;
        this.cols = Math.floor(width / 160);
        this.graph.destroy();
        this.initG6(this.list);
    };
}

一些奇奇怪怪的问题

  • 节点大小过小的时候,箭头会向下倾斜,如下图所示
    基于G6的弓字形流程图,流程图
    解决方法:设置节点的连接点anchorPoints
    基于G6的弓字形流程图,流程图
    将连接节点的边有可能接触到的点都添加到节点数据中,这样边就可以水平连接了
nodes: [
    {
      id: 'node1',
      label: 'node1',
      x: 100,
      y: 200,
      // 该节点可选的连接点集合,该点有两个可选的连接点
      anchorPoints: [
        [0, 1],
        [0.5, 1],
      ],
      type: 'rect',
    }
]

NPM 下载地址,附上 vue封装组件并上传到 npm 教程文章来源地址https://www.toymoban.com/news/detail-586138.html

到了这里,关于基于G6的弓字形流程图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 流程图实现,基于vue2实现的流程图

    flex布局 + 伪元素实现竖直的连接线+组件递归 2.1基础的(未截全,大致长这样)  2.2带有收缩功能的,可以展开和收缩并显示数量     4.项目源码地址 GitHub - yft-code/flow: 流程图 纯css实现流程图

    2024年02月16日
    浏览(48)
  • 基于drawio构建流程图编辑器

    drawio 是一款非常强大的开源在线的流程图编辑器,支持绘制各种形式的图表,提供了 Web 端与客户端支持,同时也支持多种资源类型的导出。 在我们平时写论文、文档时,为了更好地阐述具体的步骤和流程,我们经常会有绘制流程图的需求,这时我们可能会想到 Visio ,可能

    2024年02月10日
    浏览(79)
  • 详解《基于 javascript 的流程图编辑框架LogicFlow》

    1、LogicFlow 是什么 LogicFlow 是一款流程图编辑框架,提供了一系列流程图交互、编辑所必需的功能和灵活的节点自定义、插件等拓展机制。LogicFlow 支持前端研发自定义开发各种逻辑编排场景,如流程图、ER 图、BPMN 流程等。在工作审批配置、机器人逻辑编排、无代码平台流程配

    2024年02月05日
    浏览(52)
  • 132、仿真-基于51单片机主从串口通信家用防盗报警器设计(程序+Proteus仿真+流程图等)

    毕设帮助、开题指导、技术解答(有偿)见文未 目录 一、设计功能 二、Proteus仿真图​编辑 三、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号

    2024年02月16日
    浏览(42)
  • 122、仿真-基于51单片机的电量监测电压电流和温度报警系统设计(Proteus仿真+程序+流程图+配套资料等)

    方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字

    2024年02月16日
    浏览(48)
  • 基于java Swing 和 mysql实现的飞机订票系统(源码+数据库+ppt+ER图+流程图+架构说明+论文+运行视频指导)

    本项目是一套基于java Swing 和 mysql实现的飞机订票系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、项目文档、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 技术栈:Jav

    2024年02月11日
    浏览(41)
  • 153、仿真-基于51单片机四相步进电机正反转控制系统设计(程序+Proteus仿真+参考论文+流程图+配套资料等)

    目录 一、设计功能 二、Proteus仿真图​ 三、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。

    2024年02月16日
    浏览(57)
  • 流程图如何制作?5步快速画出好看的流程图!

    流程图是一种图形化工具,描述某个过程或者操作的步骤,以及某种业务系统的具体流程。流程图通常由各种图形符号、形状、箭头组成,可以清晰的表示出流程或系统中各种步骤、每个环节之间的关系、条件判断、数据的流动和处理过程等。           对于负责策划的职场

    2024年02月14日
    浏览(48)
  • Qt (高仿Visio)流程图组件开发(七) 流程图 简单操作界面搭建

    Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框架构思 Qt (高仿Visio)流程图组件开发(二) 基本图元绘制 图元间连线绘制 Qt (高仿Visio)流程图组件开发(三) 图元基类如何定义,流程图多种图元类型实现 Qt (高仿Visio)流程图组件开发(四) 流程图 图元

    2023年04月25日
    浏览(54)
  • Python 代码一键转流程图---python=>flowchart-dsl=>流程图

    这个项目是基于大名鼎鼎的 flowchart.js。 下面贴几张运行图片:  如果直接输入dsl代码,再进行转化就可以很好的画出流程图       如果你使用 Typora,可能知道在 Typora 中用 flow 可以用一种简单的文本语言来写流程图,根据 Typora 的文档,这个功能来自开源的 flowchart.js。

    2024年02月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包