murongqimiao / DAG-diagram

VUE plugin for DAG graph , u can use it 4 flow diagram or machine learning visualization
https://murongqimiao.github.io/DAG-diagram/#/example
MIT License
402 stars 124 forks source link
dag diagram visualization vue

VUE DAG diagram

=========== for English guide , click there

DEMO DEMO 国内用

使用说明

B站视频 https://www.bilibili.com/video/av80288517/

重要提醒

老版本为vue2, node版本16以上强烈建议使用vue3版本. 示例项目安装方法为joao-cli安装 npm install -g joao-cli joao init 根据提示输入新建项目名称 cd project npm i && npm run dev 打开localhost:5173 localhost:5173/dag就是示例页面

效果展示

使用方法

数据源的扩展性 / 样式自定义

为了更多同学能友好体验,在github右侧有JSON模拟器.使用如下图.

很多内容致敬了阿里PAI的早期样式

如果使用当中有任何问题或者实现不了的需求,

可以qq群艾特我.793841737.

更新说明 2020年10月17日15:44:49

增加了删除按钮的取消范围 增加了path的可选范围 正在做自动布局

更新说明 2020年04月29日17:30:15

增加新示范页, 可以进行节点拖拽添加,及单节点表单信息编辑功能,以帮助新用户快速上手.

更新说明 2019-12-04 15:55:15

增加横版模式 ( demo页点击右上角 change version 体验 )

开启横版模式
缓存放入
GlobalConfig: {
  isVertical: Boolean // true是默认模式 false为横版模式
}

拖拽更加顺滑 缩放效率更加合理

更新说明 2019年09月23日17:34:22

节点可以添加

  rightClickEvent": [
                {
                    "label": "do some thing1",
                    "eventName": "eventOfDoSomeThingFirst"
                },
                {
                    "label": "do some thing2",
                    "eventName": "evnetOfDoSomeThingSecond"
                }
            ],

属性来实现私有方法追加, 右键的面板会展示私有方法名.点击可以触发 doSthPersonal方法, 第一个参数为你定义的方法名, 第二个参数可以拿到节点id, 具体看demo即可.

    <DAGBoard :DataAll="DataAll" @updateDAG="updateDAG" @editNodeDetails="editNodeDetails" @doSthPersonal="doSthPersonal"></DAGBoard>

更新说明 2019年10月09日12:26:25

节点可以添加

  edgesText
  textStyle
  {
            "dst_input_idx": 0,
            "dst_node_id": 2,
            "id": 1,
            "src_node_id": 1,
            "src_output_idx": 3,
            "edgesText": "example text"
        },
        {
            "dst_input_idx": 1,
            "dst_node_id": 3,
            "id": 2,
            "src_node_id": 1,
            "src_output_idx": 1,
            "edgesText": "personal style",
            "textStyle": {
                "fontSize": "12px",
                "stroke": "yellow"
            }
        },

属性来实现文字的展示, edgesText是文字内容, textStyle是文字的私有样式,注意是svg的标签, 字段与普通dom不同