lulujianglab / blog

:bento:lulujiang blog
https://lulujianglab.com/
83 stars 4 forks source link

超级好用的流程库 - ggEditor #49

Open lulujianglab opened 4 years ago

lulujianglab commented 4 years ago

在一些中后台应用的开发中,有些业务往往需要用到流程设计器,比如:管理网络、审批流程等等...正是因为有多种业务都需要使用到流程图的功能,所以对于能快速产出一个流程设计器是非常必须的

工具选择

古话说的好,预先善其事,必先利其器。所以首先要做的就是选择一个合适的开源基础库,站在巨人的肩膀上,总是跑的更快

开源时代,社区的资源总是非常丰富,身为小程序媛的我漏出幸福的微笑😊

最终,我选择了 ggEditor,因为它完全开源,使用很简单,很轻量级,而且天然基于 react,非常完美

快速构建

引用 ggEditor

我们可以按照 github 上 ggEditor 的安装步骤操作

启动之后的界面效果可以参考:http://ggeditor.com/demo/#/flow

我们可以看到它的官方 demo 功能是比较齐全的,基本上已经实现了一个元素拖拽及元素属性编辑的完整功能

属性解析

我们知道整个流程编辑器基本可以分为三部分,一部分是左侧的元素面板区,另一部分是右侧的元素属性配置区,再就是中间的流程展示区,每个流程元素上可以有相应的事件响应

所以这里主要介绍以上相应的属性

以上只是 ggEditor 的核心组件和功能。还有很多组件没有提交,比如 <Minimap><ContextMenu><Toolbar> ,我们可以具体去看项目 demo

其他的属性解析可以参考官网 API

自定义节点

如果 <Item> 自带的参数不满足需求,可以使用 <ReisterNode> 来封装自己的 <Item>

比如自定义一个 start-node,就可以自行封装一个 node 组件

具体可以参考 Issues

兼容 IE11

ggEditor 是基于 umijs 脚手架的, umijs不得不说,太简单粗暴,默认不支持IE,如果需要支持,需要我们开启配置

需要在 .umirc.js 中配置

targets: {
  ie: 11,
}

dva 版本问题

Chrome warning

image

IE bug

image

查看后发现都是指向同一个问题,因为 dva 的最新版本,具体可以看看升级dva最新版提示Warning: Please use require("dva").dynamic instead of require("dva/dynamic"). Support for the latter will be removed in the next major release.2.6.0-beta.4 版本新抛出警告

为了快速解决这个问题,我去瞅了眼 ant-design-pro,发现它三天前提交的,但是dva版本仍是用的低版本,非常 nice

以上,便可快速解决 IE11 白屏的问题

参考文档

在 React 项目中引入 GG-Editor 编辑可视化流程

常见问题

PS:终于用上自己写的博客系统写文章啦,体验还是非常八错的 😊😊