flowchart.js使用总结

本文总结了flowchart.js库的使用,包括定义元素、连接元素的方式与修饰,渲染流程图的步骤,以及如何通过JavaScript进行交互操作,详细解析了流程图创建的各个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

主要分为三部分,1、定义流程图所需要的元素。2、将定义好的元素按照需求进行连接。3、执行js对流程图进行渲染。

1、定义元素

格式
	名称=>类型 : 显示内容 | 模块Id:点击事件(跳转链接)
	//模块Id主要用于对某一单独的模块进行渲染时的选择
//例如
st=>start: 资料预审|past:>http://www.baidu.com[blank]
类型描述
start
end在这里插入图片描述
operation在这里插入图片描述
condition在这里插入图片描述
subroutine在这里插入图片描述
inputoutput在这里插入图片描述
parallel可定义两条任务线

类型只是代表样式,样式与功能并无关系

2、连接元素

2.1、连接方式

格式
		定义元素名称->定义元素名称->定义元素名称
//例如
st->op1(right)->cond

注意:可以添加括号来定义连接下一任务时的方向,默认为下。(只能定义right,因为流程图是从左上角开始往右下角进行的)
在这里插入图片描述

//判断框连接方法
cond(yes)->op2//yes判断为真时执行,下一任务框为向下连接
cond(no)->sub1//no判断为假时执行,下一任务框为向右连接

在这里插入图片描述

2.2、修饰连接线

格式
		定义元素名称@>定义元素名称({"属性":"值","属性":"值"})@>定义元素名称({"属性":"值"})
//自定义任务框连接线的样式
st@>op1({"stroke":"blue"})//连线颜色
st@>op1({"stroke-width":6})//连线粗细
st@>op1({"arrow-end":"classic-wide-long"})//连线箭头样式
//也可将属性用逗号进行拼接,对一条连线进行修饰
st@>op1({"stroke":"Red","stroke-width":6,"arrow-end":"classic-wide-long"})

注:自定义连接线不能与连接方法写在一起,需要在连接方法后面,单独定义。
在这里插入图片描述

3、渲染流程图

// An highlighted block
                      'line-width': 3,//连线、边框的宽度
                      'maxWidth': 3,//确保流程图符合一定的宽度
                      'line-length': 50,//连线长度
                      'text-margin': 10,//任务框文字与任务框距离
                      'font-size': 14,//字体大小
                      'font': 'normal',
                      'font-family': 'Helvetica',
                      'font-weight': 'normal',
                      'font-color': 'black',//字体颜色
                      'line-color': 'black',//连线颜色
                      'element-color': 'black',//边框颜色
                      'fill': 'white',//背景填充颜色
                      'yes-text': 'yes',//判断为正时,判断框连线上的显示值
                      'no-text': 'no',//判断为负时,判断框连线上的显示值
                      'arrow-end': 'block',//连线箭头样式
                      'scale': 1,//流程图整体大小,放大级别
                      'symbols': {
                        'start': {
                          'font-color': 'red',
                          'element-color': 'green',
                          'fill': 'yellow'
                        },
                        'end':{
                          'class': 'end-element'//定义class属性,可用于css选择器
                        }
                      },
                      'flowstate' : {
                      //根据定义元素的Id来单独进行渲染
                        'past' : { 'fill' : '#CCCCCC', 'font-size' : 12},
                        'current' : {'fill' : 'yellow', 'font-color' : 'red', 'font-weight' : 'bold'},
                        'future' : { 'fill' : '#FFFF99'},
                        'request' : { 'fill' : 'blue'},
                        'invalid': {'fill' : '#444444'},
                        'approved' : { 'fill' : '#58C4A3', 'font-size' : 12, 'yes-text' : 'APPROVED', 'no-text' : 'n/a' },
                        'rejected' : { 'fill' : '#C45879', 'font-size' : 12, 'yes-text' : 'n/a', 'no-text' : 'REJECTED' }

4、js操作

1、方式1

                    $('[id^=sub1]').click(function(){//id取定义的名称
                      alert('info here');
                    });

2、方式2

//模块Id后面添加“:函数”
op1=>operation: 执行框|past:$myFunction
            function myFunction(event, node) {//node为当前点击模块的内容及其属性
              console.log("You just clicked this node:", node);
            }

输出内容为
在这里插入图片描述

 跨浏览器,可兼容IE7--IE10, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件。  多系统兼容性、可移植性:由于只包括前台UI,因此二次开发者可很方便将本插件用在任何一种需要流程图的B/S系统应用上,流程图的详细实现逻辑完全交于后台程序开发者自己实现;对于后台,只要能返回/接收能被本插件解析的JSON格式数据即可.所以本插件可用于不同的服务器语言建立的后台上.  跨领域:流程图设计器不止用在电信领域,在其它需要IT进行技术支持的领域中都有重大作用.  以下从纯技术实现层面具体描述:  页面顶部栏、左边侧边栏均可自定义;  当左边的侧边栏设为不显示时,为只读状态,此时的视图区可当作是一个查看器而非编辑器。  侧边工具栏除了基本和一些流程节点按钮外,还自定义新的节点按钮,自定义节点都可以有自有的图标、类型名称,定义后在使用可可在工作区内增加这些自定义节点。  顶部栏可显示流程图数据组的标题,也可提供一些常用操作按钮。  顶部栏的按钮,除了撤销、重做按钮外,其余按钮均可自定义点击事件。  可画直线、折线;折线还可以左右/上下移动其中段。  具有区域划分功能,能让用户更直观地了解哪些节点及其相互间的转换,是属于何种自定义区域内的。  具有标注功能,用橙红色标注某个结点或者转换线,一般用在展示流程进度时。  能直接双击结点、连线、分组区域中的文字进行编辑  在对结点、连线、分组区域的各种编辑操作,如新增/删除/修改名称/重设样式或大小/移动/标注时,均可捕捉到事件,并触发自定义事件,如果自定义事件执行的方法返回FALSE,则会阻止操作。  具有操作事务序列控制功能,在工作区内的各种有效操作都能记录到一个栈中,然后可以进行撤销(undo())或重做(redo()),像典型的C/S软件一样。  0.4版中,加入了只导出在初始载入后被编辑的流程图中,只作了增删改等变更的元素,这样可用于用户快速存储,只保存本次变更过的内容,不用重新保存整个流程。  0.5版中,结点的样式不再受到原有程序的限制,所有样式均默认为淡蓝色长方形;如果要指定为圆形,可在初始化时定义结点类型为”原有类型”+” round”;如果要指定为复合结点,则可在初始化时定义结点类型为”原有类型”+” mix”。”原有类型”+” myType”:myType可为自己写的一种特殊样式类.  0.6版中,修正了一些BUG,改善了用户操作体验,并增加在可编辑状态下时,能用键盘上DELETE按键对元素进行删除功能。  0.7版中,修正了一些BUG,增加了连线变更要连的起始结点或结束结点的功能。  0.8版,取消原来的拟物化页面,变成如今的扁平化页面,并且支持主要位置的颜色自定义功能(如果想沿用原来老版本中的拟物化页面,只需保留原来的GooFlow.css文件即可);修正0.7版中的画线BUG。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值