├── .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 |
2 |
3 |
4 |
5 |
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,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") 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 |
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,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'),
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 |
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 |
--------------------------------------------------------------------------------
/packages/assets/nodes/常规节点.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/assets/nodes/模型节点.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/packages/assets/nodes/起止节点.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/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 |
2 |
3 |
4 |
5 |
10 |
15 |
16 |
21 |
26 |
31 |
32 |
37 |
42 |
47 |
52 |
53 |
58 |
63 |
64 |
69 |
71 |
72 |
73 | 保存
74 |
75 |
76 |
77 |
78 |
79 |
80 |

90 |

100 |

110 |

120 |
121 |
122 |
197 |
198 |
199 |
200 |
205 |
节点
206 |
207 |
208 | 名称:
209 |
210 |
211 |
212 | 尺寸:
213 |
214 |
215 |
216 |
217 | 颜色:
218 |
222 |
223 |
224 |
225 |
231 |
边
232 |
233 |
234 | 名称:
235 |
236 |
237 |
238 |
239 |
245 |
组
246 |
247 |
248 | 名称:
249 |
250 |
251 |
252 | 颜色:
253 |
257 |
258 |
259 |
260 |
266 |
画布
267 |
268 | 网格对齐
269 |
270 |
271 |
277 |
多选
278 |
279 |
280 | 颜色:
281 |
285 |
286 |
287 |
288 |
289 |
290 |
294 |
295 |
302 |
303 |
304 |
305 |
306 |
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 | }
--------------------------------------------------------------------------------