├── .eslintignore ├── .eslintrc.js ├── .gitignore ├── .npmignore ├── README.md ├── babel.config.js ├── examples ├── App.vue ├── main.js └── model │ └── flow.json ├── lib ├── BaseFlow.common.js ├── BaseFlow.common.js.map ├── BaseFlow.css ├── BaseFlow.umd.js ├── BaseFlow.umd.js.map ├── BaseFlow.umd.min.js ├── BaseFlow.umd.min.js.map ├── demo.html ├── fonts │ ├── font.9479e0b5.ttf │ ├── font_IE6.3d2483c7.eot │ └── font_IE9.3d2483c7.eot └── img │ └── font.f668b28b.svg ├── package.json ├── packages ├── assets │ ├── icon │ │ ├── font.css │ │ ├── font.svg │ │ ├── font.ttf │ │ ├── font_IE6.eot │ │ └── font_IE9.eot │ ├── logo.png │ └── nodes │ │ ├── 分叉节点.svg │ │ ├── 常规节点.svg │ │ ├── 模型节点.svg │ │ └── 起止节点.svg ├── index.js └── vue-g6-editor │ ├── index.js │ └── src │ └── BaseFlow.vue ├── public ├── favicon.ico └── index.html ├── vue.config.js └── yarn.lock /.eslintignore: -------------------------------------------------------------------------------- 1 | /public/ 2 | /dist/ 3 | /*.js -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: ['plugin:vue/essential', '@vue/airbnb'], 7 | rules: { 8 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 9 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 10 | // 在这里自定义修改 11 | 'linebreak-style': 0, 12 | semi: [2, 'never'], // 不加分号 13 | 'no-unused-expressions': [2, { allowShortCircuit: true, allowTernary: true }], // 允许三元 14 | 'no-plusplus': 0, // 开启i++ 15 | 'comma-dangle': [2, 'never'], // 结尾不使用逗号 16 | 'import/no-unresolved': [2, { ignore: ['esri', 'dojo'] }], // 解决import esri/xxx编译不通过 17 | 'import/extensions': 0, 18 | // 'no-console': 0, 19 | 'arrow-parens': [2, 'as-needed'], // 箭头函数参数只有一个时无需加括号 20 | 'no-param-reassign': [2, { props: false }], 21 | 'vue/no-parsing-error': [2, { 'x-invalid-end-tag': false }] 22 | }, 23 | parserOptions: { 24 | parser: 'babel-eslint' 25 | } 26 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | # 忽略目录 2 | examples/ 3 | packages/ 4 | public/ 5 | node_modules/ 6 | 7 | # 忽略指定文件 8 | vue.config.js 9 | babel.config.js 10 | *.map 11 | .eslintignore 12 | .eslintrc.js 13 | yarn-error.log 14 | yarn.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-g6-editor 2 | 3 | 一个基于vue & antv/g6-editor封装的基础流程图插件 4 | 5 | ## 写在前言 6 | 7 | 仅供学习,切勿商用。阿里经已放弃维护原版编辑器,鄙人也不会维护此插件,参考https://github.com/antvis/g6-editor,谢谢。 8 | 9 | ## install 10 | ``` 11 | npm install --save vue-g6-editor 12 | ``` 13 | 14 | ## use 15 | ``` 16 | import BaseFlow from 'vue-g6-editor' 17 | import 'vue-g6-editor/lib/BaseFlow.css' 18 | 19 | 20 | 21 | properties: 22 | data: 传入数据,数据格式参考:https://www.yuque.com/antv/g6-editor/flow-api#tg9kpf 23 | 或者参考example/model文件夹下的flow.json 24 | 25 | methods: 26 | getData: 获取数据接口,传入callback,如: 27 | getData(data) { 28 | console.log(data) 29 | ... 30 | } 31 | ``` 32 | 33 | # online preview 34 | 35 | http://www.coderlyc.xyz/vue-g6-editor/ 36 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ["@vue/app"] 3 | }; 4 | -------------------------------------------------------------------------------- /examples/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 24 | 25 | 39 | -------------------------------------------------------------------------------- /examples/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import ElementUI from 'element-ui' 3 | import 'element-ui/lib/theme-chalk/index.css' 4 | import BaseFlow from 'vue-g6-editor' 5 | import App from './App.vue' 6 | 7 | import 'vue-g6-editor/lib/BaseFlow.css' 8 | 9 | Vue.config.productionTip = false 10 | Vue.use(ElementUI) 11 | Vue.use(BaseFlow) 12 | 13 | new Vue({ 14 | render: h => h(App) 15 | }).$mount('#app') 16 | -------------------------------------------------------------------------------- /examples/model/flow.json: -------------------------------------------------------------------------------- 1 | { 2 | "nodes": [ 3 | { 4 | "id": "node1", 5 | "x": 50, 6 | "y": 100, 7 | "color": "#1890FF", 8 | "size": "80*48", 9 | "shape": "rect", 10 | "label": "文本标签1", 11 | "parent": "group1", 12 | "index": 1 13 | }, 14 | { 15 | "id": "node2", 16 | "x": 50, 17 | "y": 200, 18 | "color": "#1890FF", 19 | "size": "80*48", 20 | "shape": "rect", 21 | "label": "文本标签2", 22 | "parent": "group1", 23 | "index": 1 24 | }, 25 | { 26 | "id": "node3", 27 | "x": 50, 28 | "y": 300, 29 | "color": "#1890FF", 30 | "size": "80*48", 31 | "shape": "rect", 32 | "label": "文本标签3", 33 | "parent": "group1", 34 | "index": 1 35 | }, 36 | { 37 | "id": "node4", 38 | "x": 200, 39 | "y": 150, 40 | "color": "#1890FF", 41 | "size": "80*48", 42 | "shape": "rect", 43 | "label": "文本标签4", 44 | "parent": "group1", 45 | "index": 1 46 | }, 47 | { 48 | "id": "node5", 49 | "x": 200, 50 | "y": 250, 51 | "color": "#1890FF", 52 | "size": "80*48", 53 | "shape": "rect", 54 | "label": "文本标签5", 55 | "parent": "group1", 56 | "index": 1 57 | }, 58 | { 59 | "id": "node6", 60 | "x": 350, 61 | "y": 150, 62 | "color": "#1890FF", 63 | "size": "80*48", 64 | "shape": "rect", 65 | "label": "文本标签6", 66 | "parent": "group1", 67 | "index": 1 68 | }, 69 | { 70 | "id": "node7", 71 | "x": 350, 72 | "y": 250, 73 | "color": "#1890FF", 74 | "size": "80*48", 75 | "shape": "rect", 76 | "label": "文本标签7", 77 | "parent": "group1", 78 | "index": 1 79 | }, 80 | { 81 | "id": "node8", 82 | "x": 500, 83 | "y": 50, 84 | "color": "#1890FF", 85 | "size": "80*48", 86 | "shape": "rect", 87 | "label": "文本标签8", 88 | "parent": "group1", 89 | "index": 1 90 | }, 91 | { 92 | "id": "node9", 93 | "x": 500, 94 | "y": 150, 95 | "color": "#1890FF", 96 | "size": "80*48", 97 | "shape": "rect", 98 | "label": "文本标签9", 99 | "parent": "group1", 100 | "index": 1 101 | }, 102 | { 103 | "id": "node10", 104 | "x": 500, 105 | "y": 250, 106 | "color": "#1890FF", 107 | "size": "80*48", 108 | "shape": "rect", 109 | "label": "文本标签10", 110 | "parent": "group1", 111 | "index": 1 112 | }, 113 | { 114 | "id": "node11", 115 | "x": 500, 116 | "y": 350, 117 | "color": "#1890FF", 118 | "size": "80*48", 119 | "shape": "rect", 120 | "label": "文本标签11", 121 | "parent": "group1", 122 | "index": 1 123 | } 124 | ], 125 | "edges": [ 126 | { 127 | "id": "edge1", 128 | "source": "node1", 129 | "target": "node4", 130 | "controlPoints": [ 131 | { 132 | "x": 10, 133 | "y": 10 134 | } 135 | ], 136 | "sourceAnchor": 1, 137 | "targetAnchor": 3, 138 | "shape": "flow-polyline-round", 139 | "style": { 140 | "stroke": "#79838e" 141 | }, 142 | "labelRectStyle": { 143 | "fill": "#515759" 144 | }, 145 | "parent": "group1", 146 | "index": 1 147 | }, 148 | { 149 | "id": "edge2", 150 | "source": "node2", 151 | "target": "node4", 152 | "controlPoints": [ 153 | { 154 | "x": 10, 155 | "y": 10 156 | } 157 | ], 158 | "sourceAnchor": 1, 159 | "targetAnchor": 3, 160 | "shape": "flow-polyline-round", 161 | "style": { 162 | "stroke": "#79838e" 163 | }, 164 | "labelRectStyle": { 165 | "fill": "#515759" 166 | }, 167 | "parent": "group1", 168 | "index": 1 169 | }, 170 | { 171 | "id": "edge3", 172 | "source": "node2", 173 | "target": "node5", 174 | "controlPoints": [ 175 | { 176 | "x": 10, 177 | "y": 10 178 | } 179 | ], 180 | "sourceAnchor": 1, 181 | "targetAnchor": 3, 182 | "shape": "flow-polyline-round", 183 | "style": { 184 | "stroke": "#79838e" 185 | }, 186 | "labelRectStyle": { 187 | "fill": "#515759" 188 | }, 189 | "parent": "group1", 190 | "index": 1 191 | }, 192 | { 193 | "id": "edge4", 194 | "source": "node3", 195 | "target": "node5", 196 | "controlPoints": [ 197 | { 198 | "x": 10, 199 | "y": 10 200 | } 201 | ], 202 | "sourceAnchor": 1, 203 | "targetAnchor": 3, 204 | "shape": "flow-polyline-round", 205 | "style": { 206 | "stroke": "#79838e" 207 | }, 208 | "labelRectStyle": { 209 | "fill": "#515759" 210 | }, 211 | "parent": "group1", 212 | "index": 1 213 | }, 214 | { 215 | "id": "edge5", 216 | "source": "node4", 217 | "target": "node6", 218 | "controlPoints": [ 219 | { 220 | "x": 10, 221 | "y": 10 222 | } 223 | ], 224 | "sourceAnchor": 1, 225 | "targetAnchor": 3, 226 | "shape": "flow-polyline-round", 227 | "style": { 228 | "stroke": "#79838e" 229 | }, 230 | "labelRectStyle": { 231 | "fill": "#515759" 232 | }, 233 | "parent": "group1", 234 | "index": 1 235 | }, 236 | { 237 | "id": "edge6", 238 | "source": "node5", 239 | "target": "node7", 240 | "controlPoints": [ 241 | { 242 | "x": 10, 243 | "y": 10 244 | } 245 | ], 246 | "sourceAnchor": 1, 247 | "targetAnchor": 3, 248 | "shape": "flow-polyline-round", 249 | "style": { 250 | "stroke": "#79838e" 251 | }, 252 | "labelRectStyle": { 253 | "fill": "#515759" 254 | }, 255 | "parent": "group1", 256 | "index": 1 257 | }, 258 | { 259 | "id": "edge7", 260 | "source": "node6", 261 | "target": "node9", 262 | "controlPoints": [ 263 | { 264 | "x": 10, 265 | "y": 10 266 | } 267 | ], 268 | "sourceAnchor": 1, 269 | "targetAnchor": 3, 270 | "shape": "flow-polyline-round", 271 | "style": { 272 | "stroke": "#79838e" 273 | }, 274 | "labelRectStyle": { 275 | "fill": "#515759" 276 | }, 277 | "parent": "group1", 278 | "index": 1 279 | }, 280 | { 281 | "id": "edge8", 282 | "source": "node7", 283 | "target": "node10", 284 | "controlPoints": [ 285 | { 286 | "x": 10, 287 | "y": 10 288 | } 289 | ], 290 | "sourceAnchor": 1, 291 | "targetAnchor": 3, 292 | "shape": "flow-polyline-round", 293 | "style": { 294 | "stroke": "#79838e" 295 | }, 296 | "labelRectStyle": { 297 | "fill": "#515759" 298 | }, 299 | "parent": "group1", 300 | "index": 1 301 | }, 302 | { 303 | "id": "edge9", 304 | "source": "node8", 305 | "target": "node9", 306 | "controlPoints": [ 307 | { 308 | "x": 10, 309 | "y": 10 310 | } 311 | ], 312 | "sourceAnchor": 2, 313 | "targetAnchor": 0, 314 | "shape": "flow-polyline-round", 315 | "style": { 316 | "stroke": "#79838e" 317 | }, 318 | "labelRectStyle": { 319 | "fill": "#515759" 320 | }, 321 | "parent": "group1", 322 | "index": 1 323 | }, 324 | { 325 | "id": "edge10", 326 | "source": "node9", 327 | "target": "node10", 328 | "controlPoints": [ 329 | { 330 | "x": 10, 331 | "y": 10 332 | } 333 | ], 334 | "sourceAnchor": 2, 335 | "targetAnchor": 0, 336 | "shape": "flow-polyline-round", 337 | "style": { 338 | "stroke": "#79838e" 339 | }, 340 | "labelRectStyle": { 341 | "fill": "#515759" 342 | }, 343 | "parent": "group1", 344 | "index": 1 345 | }, 346 | { 347 | "id": "edge11", 348 | "source": "node10", 349 | "target": "node11", 350 | "controlPoints": [ 351 | { 352 | "x": 100, 353 | "y": 100 354 | } 355 | ], 356 | "sourceAnchor": 2, 357 | "targetAnchor": 0, 358 | "shape": "flow-polyline-round", 359 | "style": { 360 | "stroke": "#79838e" 361 | }, 362 | "labelRectStyle": { 363 | "fill": "#ffffff" 364 | }, 365 | "label": { 366 | "text": "边名称" 367 | }, 368 | "parent": "group1", 369 | "index": 1 370 | } 371 | ] 372 | } -------------------------------------------------------------------------------- /lib/BaseFlow.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:iconfont;src:url(fonts/font_IE9.3d2483c7.eot);src:url(fonts/font_IE6.3d2483c7.eot) format("embedded-opentype"),url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAxkAAsAAAAAFhgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAARAAAAFZW7kqhY21hcAAAAYAAAACyAAACShfSB3RnbHlmAAACNAAAB60AAA5gHgLkoWhlYWQAAAnkAAAALwAAADYQ7NeLaGhlYQAAChQAAAAgAAAAJAfsA4tobXR4AAAKNAAAABgAAABEQ+8AAGxvY2EAAApMAAAAJAAAACQZwB0obWF4cAAACnAAAAAfAAAAIAE3AMhuYW1lAAAKkAAAAUUAAAJtPlT+fXBvc3QAAAvYAAAAigAAAL30adEGeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/s84gYGVgYOpk+kMAwNDP4RmfM1gxMjBwMDEwMrMgBUEpLmmMDgwVLzYwNzwv4EhhrmBoQEozAiSAwAy2Q0leJzFkdkRwjAMBdcQwn0UQiEUxEeGcrhvKIUyXhfwbPFDBWhmrZFsJx4t0AHaZm4qSCsSOZbuptJvMyj9ioXr2jnRotHz/XbdaF2yj3ivLrnlO5W/XNOlR9/3h4wYM2HKzAdq/hbpf7/+jVFZX9/KU6H54idqHXiSaBNkS9oG2ZR2QTaofZDnr0Pg2aNjYAvoFNgHOgfZrC6BHaFrkF+nW2Bv6B7YIHoEdomeAbMPnYI8RwAAeJyNV11sHFcVPufO3Bnv2Lvr8f5M7GRt7453xsVrp9lfsvHPIMImKXGBphWkULIRIjw0oYCRojpUHYFIg0gEUlKBXBAhqVIJHgAlEtRUYp5Mxc8TT414KALaJx5QH5BCZ8y5M7vO2l4Vr/f+nTn33nPOfOd8a+AAm3+T3pD2QQqm4RAchU8CoDKDhQTLYd6uzrEZzOR5xkgnJNu086pZmJMW0Cgo6Wy5XrUMRVWSmMBxrOTLdXuO2VirLrIjWM7mEEf3j50aKR4Ykb6P2j57/NvBY+wWZibMA8nF2eBEaSldnkwNXBwaGRkdGbk6oHA+wJicTOAFIxvjMU0JXuXJscwbE4+wCRwatcdOno5P7h85e6X65VzRiCG6Lqb2TyZeW9LHdPp+YyybGhlVh+MD+8bi5lQaL/5jcF9qKGf9Hegjk68b0obkwEE40vF0HjN1y46RA8Y4GqpF3qSNbLmxiHbDULJiSs/nULUXsWHVUSnYVrVRLxvZdKpezqaVglXl2bTalUvtQo4Ha8EdeTRn3HjKWfrqo83m/CvzM5lU61g6OzO/tnBYaZZWHad53maz/n/NtlkoiO6Lyelcbnocr0RL6th1lOTHzrJgDU/j0x975EdPOnnjEB3WbJaerbda9eem6eyX50uZvNNcKQ0c9u/StjNThcLUGVxIjIvzfjZ1xoyEof8AkiNRByoMQpL8r+hm1DJmhhqC4zBqm9Qc0vRBNOY4ngMgsOLKKsUvDsOQBRs+RMJ8wbJ1Ck7e0BMoiUNqeT2P1DL5mp0vKBk9nTXyKcOU3vEfaElE0mt7XP+l620Cer7o6c8Lbib1YQ0tx3XdYY21SNULTvM4W3IdLyANRlZ4w5q/Sk/Yqhva40nr5M9+mACT7Jkhj/S0YpJNNd2s1o8QFusRFCvlrFEkHw0yrGjqFaQmubmcv54zHTPn0TdnrucKGGxsbHj+OmsFbrMZxsPx6ZGZYw5pigmpuw4JPQRhurCDQupSXNIUkSV4Cs6SHXRz5960SCfLNqtWsaDk0BSpQ0bVG5VFXMCqJSSqmcAcipRaoC2UV9wy5pD2hbqZ6EHVSiVQJZxSuOeQufq4TjHTkx6PcVUR8Xu4lJnODnVnkZ7/R03TBrkndG6STLlTP4F4oh72rL0lZ7I2+M/ulGvcS6V8L5oldD2xRvK4pvGBnuux3D2HehGOsRArhLYtrKXA6HlPB6ECDcrCJfgoHIOPwyfgs3AGvgArcBFeAkh18Njb9FolU+nTGn10cYdOUYz0yKyZNZXmEmGzmBfvJ0ILxbbeT+b8v48PnQk6hFvx7aBCAGVT9Ld3rJm3tZm5/Q/dhK1pdKbQFR1hLwRgzgy8bUuKMWx+U1qleA9QZk5RLa/DYYouoFmrCJ9MAfia2UnHCuZrlRrBqEJoylRsChrqD5M1W5fMWkqkcEVSWue04ab/oCXGYa2Nl+lunBxtjU5iy221cHU9ylwGCX3JvRw0UfHY5Sap+vfYVRr9ZpSwYofY2Gq9fx/viExepwdyHF+95r/H4hsCNxjm0jpzIEeLObQJ8GSmqM1UmCOSaehV4YfkHLn37E/fnTr0m6987sfN85zLsoziqjRXcW35Myj97ofPPIf4+NELXNdkltSwmWJyxAObcpytQw0WCX1PhDeZtij6PSMlq8oTmKFLDXX7yMkIXMSiUa4vkWVFXmxE04ZhRgbXTAn4oHZuhSsyH4qJkctDseAqT/LA4wMY5yvP9w74Ej3BSmrAf+tPSpJffvJB4GEr8C78mSeVy6f+da2ttJetErZxNqbFz/FhvjU0GX8nnIyd7h3aTKZzh5+oMv780P3l904uV5i8Gn/33qev2LUXjg91Yv37KNapKMpRxIndyFMzLO1Vgk/G2x3qYGMPoabsh82/Sr+SmnCAMl7gUVTDjODNBap7VqdGdyolKtZBomKTrIjMSStki1IM650d1j6qesk2VZ62qDydCU4mJwdfL32peeNNWX7zBvUl+3WNBeVLtyTp1qWwx7eT2/aIif+fGEv8pTAV7aH+6Mqjbynjf+juoV6EaCjkmbeldljFRP2qwDwch0/BM3AOvgaXyKu8qOzprICnqNNqvkb0t1uGPfVbFd4LduA97jU6vynqfTWL/YTMC1xRBjDsAxfdnWvfm24gNqajnnwf13X2790yP7k3PeY+rDxU8HoXbHJLd7rxolAe153dIr+9W+buFvXiZ4gifzDEj8BltU5h3SteNkG8b4S9IyWMxl7QcYDsuxliQwoZbjc2XoRvEaN9F74H1+EH8Ar8BG7Da/Bz+AXchV/Db8mjPryT6sdPW14m0BY/EcRvA95PiHvX3MGTfCeP7ljzHfroCLR1kRahbtv69m70SH1Q1g95ffVe7vLuWpchpS2y9O90efUDuRJ7Ibq0G6Id0fventQeXt8lc+wS/BbRQ+e3d8g5VfgwfARO0nsPiaZqmd2xSzhUMgTRpLMTuJ1v7LqFXC1OYJd2KqpdqVUtm2B+vy0oJql1huA612RBNAl+YZWrceV8h2Zc4gacpQoe48F3cPZBsPH1Lt9sSMfa1661S/bjn0fnAyhGi2OHYp5mnM5M0r9t2CrdXz7VoZrm3bvx4y/Upq/C/wByZ6fCAAAAeJxjYGRgYADi3iOB+vH8Nl8ZuFkYQODaA8/rCPp/AwsvcwKQy8HABBIFAD1+CysAeJxjYGRgYG7438AQw8LGwPD/MwsvA1AEBQgCAHJ9BH94nGNhYGBgfsnAwMIAxWxIbCIxAEQdATMAAAAAAHYA9gEWAV4BogIsAuQDSAN6A/4EMASSBVAFoAa0BzB4nGNgZGBgEGTYwyDDAAJMQMwFhAwM/8F8BgAe9QIAAHicZY9NTsMwEIVf+gekEqqoYIfkBWIBKP0Rq25YVGr3XXTfpk6bKokjx63UA3AejsAJOALcgDvwSCebNpbH37x5Y08A3OAHHo7fLfeRPVwyO3INF7gXrlN/EG6QX4SbaONVuEX9TdjHM6bCbXRheYPXuGL2hHdhDx18CNdwjU/hOvUv4Qb5W7iJO/wKt9Dx6sI+5l5XuI1HL/bHVi+cXqnlQcWhySKTOb+CmV7vkoWt0uqca1vEJlODoF9JU51pW91T7NdD5yIVWZOqCas6SYzKrdnq0AUb5/JRrxeJHoQm5Vhj/rbGAo5xBYUlDowxQhhkiMro6DtVZvSvsUPCXntWPc3ndFsU1P9zhQEC9M9cU7qy0nk6T4E9XxtSdXQrbsuelDSRXs1JErJCXta2VELqATZlV44RelzRiT8oZ0j/AAlabsgAAAB4nG2LXQ6CMBAG+/FbUES8xx6qlmKI2CVlmyint8FX520mGZWpH636z4AMOQqUqFBDo0GLE87ocEGPKwbcFN65jdIZK9EstM27I64srx9iPbrFSfJ8mqXakljRq9nEBeIiuJG1ME2BvRTRj9zszC+aPXEd/SNwXNujcBTi8gh1Gu7GPpX6AjVyKhcAAA==") format("woff"),url(fonts/font.9479e0b5.ttf) format("truetype"),url(img/font.f668b28b.svg) format("svg")}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-cut:before{content:"\e8a2"}.icon-actual-size-o:before{content:"\e8a3"}.icon-copy-o:before{content:"\e8a4"}.icon-delete-o:before{content:"\e8a5"}.icon-fit:before{content:"\e8a6"}.icon-select:before{content:"\e8a7"}.icon-paster-o:before{content:"\e8a8"}.icon-redo:before{content:"\e8a9"}.icon-to-front:before{content:"\e8aa"}.icon-undo:before{content:"\e8ab"}.icon-zoom-in-o:before{content:"\e8ac"}.icon-ungroup:before{content:"\e8ad"}.icon-zoom-out-o:before{content:"\e8ae"}.icon-group:before{content:"\e8af"}.icon-to-back:before{content:"\e8b0"}.editor[data-v-116254f6]{position:relative;width:100%;height:100%}.editor .top-container[data-v-116254f6]{position:absolute;padding:5px 20px;width:100%;border:1px solid #e9e9e9;height:42px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:#fff;-webkit-box-shadow:0 8px 12px 0 rgba(0,52,107,.04);box-shadow:0 8px 12px 0 rgba(0,52,107,.04)}.editor .top-container .toolbar[data-v-116254f6]{height:100%;width:80%}.editor .top-container .toolbar .command[data-v-116254f6]{width:27px;height:27px;margin:0 6px;border-radius:2px;padding-left:4px;display:inline-block;border:1px solid rgba(2,2,2,0)}.editor .top-container .toolbar .disable[data-v-116254f6]{color:rgba(0,0,0,.25)}.editor .top-container .data-opt[data-v-116254f6]{width:20%;height:100%;text-align:right}.editor .bottom-container[data-v-116254f6]{padding-top:41px;width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;background:#f7f9fb;-ms-flex-pack:distribute;justify-content:space-around}.editor .bottom-container .title[data-v-116254f6]{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;font-weight:600;font-size:16px;padding:0 20px;background:#cfd4d9}.editor .bottom-container .left-pannel[data-v-116254f6]{width:15%;min-width:300px;height:100%;padding:20px;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.editor .bottom-container .left-pannel .itempannel-container[data-v-116254f6]{width:199px;height:192px}.editor .bottom-container .left-pannel .itempannel-container img[data-v-116254f6]{width:92px;height:96px;padding:4px;margin-left:4px;border-radius:2px;border:1px solid transparent;vertical-align:middle;cursor:pointer}.editor .bottom-container .center-pannel[data-v-116254f6]{background:#fff;display:inline-block;width:70%;height:100%;border:1px solid #dedbe2}.editor .bottom-container .center-pannel .flow[data-v-116254f6]{width:100%;height:100%;overflow:hidden}.editor .bottom-container .center-pannel .contextmenu[data-v-116254f6]{margin:0;width:200px;background:#fff;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.25);box-shadow:0 1px 4px rgba(0,0,0,.25);color:#000;font-size:12px;display:none}.editor .bottom-container .center-pannel .contextmenu .command[data-v-116254f6]{height:12px;padding:8px;-webkit-box-sizing:content-box;box-sizing:content-box}.editor .bottom-container .center-pannel .contextmenu .command[data-v-116254f6]:hover{cursor:pointer;background:#e6f7ff}.editor .bottom-container .center-pannel .contextmenu .disable[data-v-116254f6]{color:rgba(0,0,0,.25)}.editor .bottom-container .right-pannel[data-v-116254f6]{width:15%;min-width:300px;height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.editor .bottom-container .right-pannel .detail-pannel[data-v-116254f6]{width:100%;height:70%;background:#f7f9fb;border-left:1px solid #e6e9ed;font-size:13px}.editor .bottom-container .right-pannel .detail-pannel .pannel-title[data-v-116254f6]{height:32px;border-top:1px solid #dce3e8;border-bottom:1px solid #dce3e8;background:#ebeef2;color:#000;line-height:28px;padding-left:12px}.editor .bottom-container .right-pannel .detail-pannel .block-container[data-v-116254f6]{padding:16px 8px}.editor .bottom-container .right-pannel .detail-pannel .block-container .p[data-v-116254f6]{margin-bottom:12px}.editor .bottom-container .right-pannel .detail-pannel .block-container .p.name .el-input[data-v-116254f6]{width:60%;padding:0 10px}.editor .bottom-container .right-pannel .detail-pannel .block-container .p.size .el-input[data-v-116254f6]{width:30%;padding:0 10px}.editor .bottom-container .right-pannel .detail-pannel .block-container .p.color .el-color-picker[data-v-116254f6]{vertical-align:middle}.editor .bottom-container .right-pannel .navigator[data-v-116254f6]{width:100%;height:25%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.editor .bottom-container .right-pannel .navigator .pannel-title[data-v-116254f6]{display:block;height:32px;border-top:1px solid #dce3e8;border-bottom:1px solid #dce3e8;background:#ebeef2;color:#000;line-height:28px;padding-left:12px}.editor .bottom-container .right-pannel .navigator .mini-map[data-v-116254f6]{width:100%;height:calc(100% - 34px)}.editor .bottom-container .right-pannel .zoom-slider[data-v-116254f6]{width:100%;height:5%;padding:5px 10px;background:#fff} -------------------------------------------------------------------------------- /lib/demo.html: -------------------------------------------------------------------------------- 1 | 2 | BaseFlow demo 3 | 4 | 5 | 6 | 9 | -------------------------------------------------------------------------------- /lib/fonts/font.9479e0b5.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/lib/fonts/font.9479e0b5.ttf -------------------------------------------------------------------------------- /lib/fonts/font_IE6.3d2483c7.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/lib/fonts/font_IE6.3d2483c7.eot -------------------------------------------------------------------------------- /lib/fonts/font_IE9.3d2483c7.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/lib/fonts/font_IE9.3d2483c7.eot -------------------------------------------------------------------------------- /lib/img/font.f668b28b.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | Created by iconfont 9 | 10 | 11 | 12 | 13 | 21 | 22 | 23 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-g6-editor", 3 | "version": "0.2.0", 4 | "private": false, 5 | "description": "基于vue的G6-Editor基础流程图", 6 | "author": "liyucan <1206497655@qq.com>", 7 | "keywords": [ 8 | "vue.js", 9 | "vue-plugin", 10 | "flow" 11 | ], 12 | "main": "lib/BaseFlow.umd.min.js", 13 | "license": "MIT", 14 | "scripts": { 15 | "serve": "vue-cli-service serve", 16 | "build": "vue-cli-service build", 17 | "lint": "vue-cli-service lint", 18 | "lib": "vue-cli-service build --target lib --name BaseFlow --dest lib packages/index.js" 19 | }, 20 | "dependencies": { 21 | "@antv/g6-editor": "^1.2.0", 22 | "@vue/eslint-config-airbnb": "^4.0.0", 23 | "element-ui": "^2.4.11", 24 | "jspdf": "^1.5.3", 25 | "vue": "^2.5.17", 26 | "vue-g6-editor": "^0.2.0" 27 | }, 28 | "devDependencies": { 29 | "@vue/cli-plugin-babel": "^3.0.4", 30 | "@vue/cli-plugin-eslint": "^3.0.4", 31 | "@vue/cli-service": "^3.0.4", 32 | "@vue/eslint-config-prettier": "^4.0.0", 33 | "babel": "^6.23.0", 34 | "babel-core": "^6.26.3", 35 | "babel-eslint": "^10.0.1", 36 | "babel-loader": "^8.0.5", 37 | "babel-preset-env": "^1.7.0", 38 | "cross-env": "^5.2.0", 39 | "css-loader": "^2.1.0", 40 | "eslint": "^5.8.0", 41 | "eslint-plugin-vue": "^5.0.0-0", 42 | "file-loader": "^3.0.1", 43 | "node-sass": "^4.9.0", 44 | "sass-loader": "^7.0.1", 45 | "vue-loader": "^15.6.0", 46 | "vue-template-compiler": "^2.5.17" 47 | }, 48 | "eslintConfig": { 49 | "root": true, 50 | "env": { 51 | "node": true 52 | }, 53 | "extends": [ 54 | "plugin:vue/essential", 55 | "@vue/prettier" 56 | ], 57 | "rules": {}, 58 | "parserOptions": { 59 | "parser": "babel-eslint" 60 | } 61 | }, 62 | "postcss": { 63 | "plugins": { 64 | "autoprefixer": {} 65 | } 66 | }, 67 | "browserslist": [ 68 | "> 1%", 69 | "last 2 versions", 70 | "not ie <= 8" 71 | ] 72 | } 73 | -------------------------------------------------------------------------------- /packages/assets/icon/font.css: -------------------------------------------------------------------------------- 1 | 2 | @font-face {font-family: "iconfont"; 3 | src: url('./font_IE9.eot'); /* IE9*/ 4 | src: url('./font_IE6.eot') format('embedded-opentype'), /* IE6-IE8 */ 5 | url('data:application/x-font-woff;charset=utf-8;base64,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') format('woff'), 6 | url('./font.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ 7 | url('./font.svg') format('svg'); /* iOS 4.1- */ 8 | } 9 | 10 | .iconfont { 11 | font-family:"iconfont" !important; 12 | font-size:16px; 13 | font-style:normal; 14 | -webkit-font-smoothing: antialiased; 15 | -moz-osx-font-smoothing: grayscale; 16 | } 17 | 18 | .icon-cut:before { content: "\e8a2"; } 19 | 20 | .icon-actual-size-o:before { content: "\e8a3"; } 21 | 22 | .icon-copy-o:before { content: "\e8a4"; } 23 | 24 | .icon-delete-o:before { content: "\e8a5"; } 25 | 26 | .icon-fit:before { content: "\e8a6"; } 27 | 28 | .icon-select:before { content: "\e8a7"; } 29 | 30 | .icon-paster-o:before { content: "\e8a8"; } 31 | 32 | .icon-redo:before { content: "\e8a9"; } 33 | 34 | .icon-to-front:before { content: "\e8aa"; } 35 | 36 | .icon-undo:before { content: "\e8ab"; } 37 | 38 | .icon-zoom-in-o:before { content: "\e8ac"; } 39 | 40 | .icon-ungroup:before { content: "\e8ad"; } 41 | 42 | .icon-zoom-out-o:before { content: "\e8ae"; } 43 | 44 | .icon-group:before { content: "\e8af"; } 45 | 46 | .icon-to-back:before { content: "\e8b0"; } 47 | -------------------------------------------------------------------------------- /packages/assets/icon/font.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | Created by iconfont 9 | 10 | 11 | 12 | 13 | 21 | 22 | 23 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /packages/assets/icon/font.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/packages/assets/icon/font.ttf -------------------------------------------------------------------------------- /packages/assets/icon/font_IE6.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/packages/assets/icon/font_IE6.eot -------------------------------------------------------------------------------- /packages/assets/icon/font_IE9.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/packages/assets/icon/font_IE9.eot -------------------------------------------------------------------------------- /packages/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/packages/assets/logo.png -------------------------------------------------------------------------------- /packages/assets/nodes/分叉节点.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 3 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 分叉节点 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /packages/assets/nodes/常规节点.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 常规节点 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /packages/assets/nodes/模型节点.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 4 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 模型节点 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /packages/assets/nodes/起止节点.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Group 2 5 | Created with Sketch. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 起止节点 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /packages/index.js: -------------------------------------------------------------------------------- 1 | // 导入颜色选择器组件 2 | import BaseFlow from './vue-g6-editor' 3 | 4 | // 存储组件列表 5 | const components = [ 6 | BaseFlow 7 | ] 8 | 9 | // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册 10 | const install = function (Vue) { 11 | // 判断是否安装 12 | if (install.installed) return 13 | // 遍历注册全局组件 14 | components.map(component => Vue.component(component.name, component)) 15 | } 16 | 17 | // 判断是否是直接引入文件 18 | if (typeof window !== 'undefined' && window.Vue) { 19 | install(window.Vue) 20 | } 21 | 22 | export default { 23 | // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 24 | install, 25 | // 以下是具体的组件列表 26 | BaseFlow 27 | } 28 | -------------------------------------------------------------------------------- /packages/vue-g6-editor/index.js: -------------------------------------------------------------------------------- 1 | import BaseFlow from './src/BaseFlow.vue' // 导入组件 2 | 3 | // const VueG6Editor = { 4 | // install(Vue) { 5 | // Vue.component(BaseFlow.name, BaseFlow) // Flow.name 组件的name属性 6 | // } 7 | // } 8 | 9 | BaseFlow.install = function (Vue) { 10 | Vue.component(BaseFlow.name, BaseFlow) 11 | } 12 | 13 | export default BaseFlow // 导出.. 14 | -------------------------------------------------------------------------------- /packages/vue-g6-editor/src/BaseFlow.vue: -------------------------------------------------------------------------------- 1 | 307 | 308 | 594 | 595 | 780 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LLLeno/vue-g6-editor/95d628285544043cad4243895fbb29643e3f7971/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | vue-g6-editor 10 | 11 | 12 | 13 | 17 |
18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // 修改 src 为 examples 3 | // css: { 4 | // extract: false 5 | // }, 6 | baseUrl: 'lib', 7 | pages: { 8 | index: { 9 | entry: 'examples/main.js', 10 | template: 'public/index.html', 11 | filename: 'index.html' 12 | } 13 | }, 14 | // 扩展 webpack 配置,使 packages 加入编译 15 | // chainWebpack: config => { 16 | // config.module 17 | // .rule('js') 18 | // .include 19 | // .add('/packages') 20 | // .end() 21 | // .use('babel') 22 | // .loader('babel-loader') 23 | // .tap(options => { 24 | // // 修改它的选项... 25 | // return options 26 | // }) 27 | // } 28 | } --------------------------------------------------------------------------------