vue中使用gojs/jointjs的示例代码
因为公司项目需求,要画出相关业务的流程图,以便客户了解自己身处何处
成都创新互联公司专注于企业成都全网营销、网站重做改版、贺兰网站定制设计、自适应品牌网站建设、成都h5网站建设、商城建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为贺兰等各大城市提供网站开发制作服务。
搜索框输入 “前端流程图插件”,查了很多资料,总结一下有以下几种
flow-chart
代码写法繁琐,不是json就可以解决,效果也比较丑,PASS
darge-d3
github :https://github.com/dagrejs/dagre-d3
效果图
下载里面的demo,改一下json就可以了
// States var states = [ "NEW", "SUBMITTED","FINISHED" ,"FAILED","DELIVER", "CANCELED", "ABOLISHED" , "DELETED","REFUNDING","REFUNDED"]; var map = ['新创建','已提交','已完成','提交失败',"交付中", '已取消','废除','已删除','退款中',"已退款"] // Automatically label each of the nodes states.forEach(function(state,index) { g.setNode(state, { label: `${map[index]}(${state})`})}); // Set up the edges g.setEdge("NEW", "FAILED", { label: "后台接口自动"}); g.setEdge("NEW", "SUBMITTED", { label: "后台接口自动" }); g.setEdge("NEW", "CANCELED", { label: "用户取消订单" }); g.setEdge("SUBMITTED","CANCELED", { label: "用户取消订单" }); g.setEdge("SUBMITTED", "ABOLISHED", { label: "用户超过48小时未支付,\n系统自动取消"}); g.setEdge("ABOLISHED","DELETED", { label: "已删除" }); g.setEdge("CANCELED", "DELETED", { label: "已删除"}); g.setEdge("FAILED", "SUBMITTED", { label: "后台接口自动" }); g.setEdge("SUBMITTED", "DELIVER", { label: "用户支付" }); g.setEdge("FINISHED", "REFUNDING", { label: "用户退款" }); g.setEdge("DELIVER", "FINISHED", { label: "交付完成" }); g.setEdge("REFUNDING", "REFUNDED", { label: "已退款" }); g.setEdge("REFUNDED", "DELETED", { label: "已删除" }); g.setEdge("DELIVER", "REFUNDING", { label: "用户退款" }); g.setEdge("FAILED", "CANCELED", { label: "用户取消订单" });
不满意的地方:画出来的图是垂直方向的,我要的是水平方向,PASS
gojs
GoJS是一个实现交互类图表(比如流程图,树图,关系图,力导图等等)的JS库。本文将介绍GoJs的精华部分。
因为GoJS依赖于HTML5,所以请保证您的浏览器版本支持HTML5,当然还要加载这个库。
github :https://github.com/NorthwoodsSoftware/GoJS
可以通过npm install gojs -save
安装
效果图
看里面的demo我自己包装了一下
您当前处于 用户提交资料 步骤 下一步等待供应商接单
展开 收起
不满意的地方:
- 免费版gojs是有水印的,百度搜索“gojs如何去水印”有一堆答案,我就不写了。
- 因为要自己手动去掉水印,所以我只能手动下载go.js放在我自己的组件目录下,但是这个文件太大了,800+KB,npm run dev 的时候停在这里停了好久。有时候还爆出“......maximun ....500KB”的错误,我也不知道是什么原因,不知道有什么方法,有的话麻烦通知我。
- 代码写法有点太繁琐
这是我自己包装的代码地址:https://github.com/LRY1994/vue-lib/tree/master/src/components/process-go
jointjs
相比Dagre-D3和jsPlumb,JointJS的API很详细,代码量少,连接线有多种选择,封装了多种常用的形状,而且能画的图很多,官方也给了一些demo可以参考。
github : https://github.com/clientIO/joint
效果图
可以通过npm install jointjs -save
安装
参照了很多demo和文档,用的是矩形,但是可以设置圆角的度数变成椭圆形,其他形状我就无力了。
可以自定义矩形的样式和矩形框里面的文字样式
//data.vue
您当前处于 用户提交资料 步骤 下一步等待供应商接单
展开 收起
这是我自己包装的代码地址:https://github.com/LRY1994/vue-lib/tree/master/src/components/process-joint
这个目前看来还算满意
jsplumb
这个看了官网,不太友好,而且下载只有一个js文件,没有demo代码,不知如何下手
参考资料:
https://gojs.net/latest/samples/pageFlow.html
http://www.daviddurman.com/assets/autolayout.js
http://resources.jointjs.com/demos/layout
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
名称栏目:vue中使用gojs/jointjs的示例代码
分享链接:http://myzitong.com/article/ihgccg.html