Przeglądaj źródła

增加工作流前端页面

pixel 4 lat temu
rodzic
commit
51d3ffcbcd

+ 4 - 0
server/gva/init_data/init_data.go

@@ -316,6 +316,8 @@ func InitSysBaseMenus() (err error) {
 		{Model: gorm.Model{ID: 25, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, Hidden: false, ParentId: "9", Path: "simpleUploader", Name: "simpleUploader", Component: "view/example/simpleUploader/simpleUploader", Sort: 6, Meta: model.Meta{Title: "断点续传(插件版)", Icon: "upload"}},
 		{Model: gorm.Model{ID: 26, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "0", Path: "https://www.gin-vue-admin.com", Name: "https://www.gin-vue-admin.com", Hidden: false, Component: "/", Sort: 0, Meta: model.Meta{Title: "官方网站", Icon: "s-home"}},
 		{Model: gorm.Model{ID: 27, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "0", Path: "state", Name: "state", Hidden: false, Component: "view/system/state.vue", Sort: 6, Meta: model.Meta{Title: "服务器状态", Icon: "cloudy"}},
+		{Model: gorm.Model{ID: 28, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "0", Path: "workflow", Name: "workflow", Hidden: false, Component: "view/workflow/index.vue", Sort: 6, Meta: model.Meta{Title: "工作流管理", Icon: "s-flag"}},
+		{Model: gorm.Model{ID: 29, CreatedAt: time.Now(), UpdatedAt: time.Now()}, MenuLevel: 0, ParentId: "0", Path: "workflowCreate", Name: "workflowCreate", Hidden: false, Component: "view/workflow/workflowCreate/workflowCreate.vue", Sort: 6, Meta: model.Meta{Title: "工作流创建", Icon: "plus"}},
 	}
 	if tx.Create(&insert).Error != nil { // 遇到错误时回滚事务
 		tx.Rollback()
@@ -375,6 +377,8 @@ func InitSysAuthorityMenus() (err error) {
 		{"888", 25},
 		{"888", 26},
 		{"888", 27},
+		{"888", 28},
+		{"888", 29},
 		{"8881", 1},
 		{"8881", 2},
 		{"8881", 8},

+ 444 - 7
web/package-lock.json

@@ -4,6 +4,250 @@
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
+        "@antv/color-util": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/@antv/color-util/-/color-util-2.0.5.tgz",
+            "integrity": "sha512-eQktA9YDnWCj03rfjpg0ajvCfRkHXzBzsZa9z94pY6Jb7e3XtPUp7vDpB8KhaKm9GjPtGzQDneh+gnqkEK8mtQ==",
+            "requires": {
+                "@antv/util": "^2.0.9",
+                "tslib": "^1.10.0"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/dom-util": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/@antv/dom-util/-/dom-util-2.0.2.tgz",
+            "integrity": "sha512-i/rh385casRd6OA4rbpbA2jyiwY/w7PtkA+74mH43PiBzOcLpDg1jEWR9dMO0tIqUzHQWWqKNNjmXVubl4GS6g==",
+            "requires": {
+                "tslib": "^1.10.0"
+            }
+        },
+        "@antv/event-emitter": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.2.tgz",
+            "integrity": "sha512-6C6NJOdoNVptCr5y9BVOhKkCgW7LFs/SpcRyAExUeSjAm0zJqcqNkSIRGsXYhj4PJI+CZICHzGwwiSnIsE68Ug=="
+        },
+        "@antv/g-base": {
+            "version": "0.5.1",
+            "resolved": "https://registry.npmjs.org/@antv/g-base/-/g-base-0.5.1.tgz",
+            "integrity": "sha512-gbv+uz/SvzM4/p3PLjAiEZUp6kdzKkCbVWTCdBXB1cvNMttlEzWEB8MOFbEkcIAy7TtjQJJRv8ThI/ngFzU+fg==",
+            "requires": {
+                "@antv/event-emitter": "^0.1.1",
+                "@antv/g-math": "^0.1.5",
+                "@antv/matrix-util": "^3.1.0-beta.1",
+                "@antv/path-util": "~2.0.5",
+                "@antv/util": "~2.0.0",
+                "@types/d3-timer": "^1.0.9",
+                "d3-ease": "^1.0.5",
+                "d3-interpolate": "^1.3.2",
+                "d3-timer": "^1.0.9",
+                "detect-browser": "^5.1.0"
+            },
+            "dependencies": {
+                "@antv/matrix-util": {
+                    "version": "3.1.0-beta.2",
+                    "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.2.tgz",
+                    "integrity": "sha512-Efwp0ZHxVDK/8RUa/RRWN7HKFHJmjn7Oq5HaNBbCmsxd7JTla3Zsoq1AZrjWMDlq0lplo77urclwI+XIW8NEHw==",
+                    "requires": {
+                        "@antv/util": "^2.0.9",
+                        "gl-matrix": "^3.3.0",
+                        "tslib": "^1.10.0"
+                    }
+                },
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/g-canvas": {
+            "version": "0.5.1",
+            "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-0.5.1.tgz",
+            "integrity": "sha512-m132AyMrILm0wYTbXSlmDaz8M7OoEIvSZuW59apDS+F3jHAxsJrBvKXJjJJ26CItdIbTmeLLMcfoGIj9IzXvDw==",
+            "requires": {
+                "@antv/g-base": "^0.5.1",
+                "@antv/g-math": "^0.1.5",
+                "@antv/matrix-util": "^3.1.0-beta.1",
+                "@antv/path-util": "~2.0.5",
+                "@antv/util": "~2.0.0",
+                "gl-matrix": "^3.0.0"
+            },
+            "dependencies": {
+                "@antv/matrix-util": {
+                    "version": "3.1.0-beta.2",
+                    "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-3.1.0-beta.2.tgz",
+                    "integrity": "sha512-Efwp0ZHxVDK/8RUa/RRWN7HKFHJmjn7Oq5HaNBbCmsxd7JTla3Zsoq1AZrjWMDlq0lplo77urclwI+XIW8NEHw==",
+                    "requires": {
+                        "@antv/util": "^2.0.9",
+                        "gl-matrix": "^3.3.0",
+                        "tslib": "^1.10.0"
+                    }
+                },
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/g-math": {
+            "version": "0.1.5",
+            "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-0.1.5.tgz",
+            "integrity": "sha512-29B3p33jzUPIyx1xYfNCexbp7jvahD6bD8FKKyWqfYZHQbvrFfV8ZNUu66RJLfDrl0KaKT6C5whfKs/WrVaflQ==",
+            "requires": {
+                "@antv/util": "~2.0.0",
+                "gl-matrix": "^3.0.0"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/g-svg": {
+            "version": "0.5.1",
+            "resolved": "https://registry.npmjs.org/@antv/g-svg/-/g-svg-0.5.1.tgz",
+            "integrity": "sha512-UALLDneKlpOaAZXMIRsUjDrmuceXGR0shXwj4gv+UzIgYe/4hNxTll+1RsA+R+tYmQKAhsilhzsm3eMmPzwbtA==",
+            "requires": {
+                "@antv/g-base": "^0.5.1",
+                "@antv/g-math": "^0.1.5",
+                "@antv/util": "~2.0.0",
+                "detect-browser": "^5.0.0"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/gl-matrix": {
+            "version": "2.7.1",
+            "resolved": "https://registry.npmjs.org/@antv/gl-matrix/-/gl-matrix-2.7.1.tgz",
+            "integrity": "sha512-oOWcVNlpELIKi9x+Mm1Vwbz8pXfkbJKykoCIOJ/dNK79hSIANbpXJ5d3Rra9/wZqK6MC961B7sybFhPlLraT3Q=="
+        },
+        "@antv/hierarchy": {
+            "version": "0.6.6",
+            "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.6.6.tgz",
+            "integrity": "sha512-ivb9j5aJOogjjU9k7WZXWznevMyqgBbP/Xq2rfXsQFLk4ArABt2ewU6a6jndPOiycGDxppZ8kaYjli70i4HluA==",
+            "requires": {
+                "@antv/util": "^2.0.7"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/matrix-util": {
+            "version": "2.0.7",
+            "resolved": "https://registry.npmjs.org/@antv/matrix-util/-/matrix-util-2.0.7.tgz",
+            "integrity": "sha512-bogifQY8jplWtSTZsPqBOdBlDdkM7IwDqYL8eMYL8OaSyOPCS7l9bnEQjQ9qTAwfCd7wHTuPoCnCpbiR8BYFvQ==",
+            "requires": {
+                "@antv/gl-matrix": "^2.7.1",
+                "@antv/util": "^2.0.7",
+                "tslib": "^1.10.0"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/path-util": {
+            "version": "2.0.8",
+            "resolved": "https://registry.npmjs.org/@antv/path-util/-/path-util-2.0.8.tgz",
+            "integrity": "sha512-g5gt12MY1oEzh/j5XfLNRCfJU7E+Us+2yM5Hqc0y8xeWhb5l013XG5BPV37KmOf6WAys9KNxklNniHCZ6SqCKw==",
+            "requires": {
+                "@antv/util": "^2.0.9",
+                "tslib": "^1.10.0"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    }
+                }
+            }
+        },
+        "@antv/scale": {
+            "version": "0.3.3",
+            "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.3.3.tgz",
+            "integrity": "sha512-D6fuS4IlqkpJ9Cm963sumroOxhqZL6S6bsFQPRMxypaqebXW2pWcmbzF5Hw1jKucl1M4nZ0nGCB3cE2SdLxrcA==",
+            "requires": {
+                "@antv/util": "~2.0.3",
+                "fecha": "~4.2.0",
+                "tslib": "^2.0.0"
+            },
+            "dependencies": {
+                "@antv/util": {
+                    "version": "2.0.9",
+                    "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                    "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                    "requires": {
+                        "tslib": "^1.10.0"
+                    },
+                    "dependencies": {
+                        "tslib": {
+                            "version": "1.14.0",
+                            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.0.tgz",
+                            "integrity": "sha512-+Zw5lu0D9tvBMjGP8LpvMb0u2WW2QV3y+D8mO6J+cNzCYIN4sVy43Bf9vl92nqFahutN0I8zHa7cc4vihIshnw=="
+                        }
+                    }
+                },
+                "tslib": {
+                    "version": "2.0.2",
+                    "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.2.tgz",
+                    "integrity": "sha512-wAH28hcEKwna96/UacuWaVspVLkg4x1aDM9JlzqaQTOFczCktkVAb5fmXChgandR1EraDPs2w8P+ozM+oafwxg=="
+                }
+            }
+        },
+        "@antv/util": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/@antv/util/-/util-1.3.1.tgz",
+            "integrity": "sha512-cbUta0hIJrKEaW3eKoGarz3Ita+9qUPF2YzTj8A6wds/nNiy20G26ztIWHU+5ThLc13B1n5Ik52LbaCaeg9enA==",
+            "requires": {
+                "@antv/gl-matrix": "^2.7.1"
+            }
+        },
         "@babel/code-frame": {
             "version": "7.5.5",
             "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.5.5.tgz",
@@ -2482,6 +2726,16 @@
                 "@types/node": "*"
             }
         },
+        "@types/d3-timer": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.10.tgz",
+            "integrity": "sha512-ZnAbquVqy+4ZjdW0cY6URp+qF/AzTVNda2jYyOzpR2cPT35FTXl78s15Bomph9+ckOiI1TtkljnWkwbIGAb6rg=="
+        },
+        "@types/estree": {
+            "version": "0.0.45",
+            "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz",
+            "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g=="
+        },
         "@types/events": {
             "version": "3.0.0",
             "resolved": "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz",
@@ -2579,8 +2833,7 @@
         "@types/node": {
             "version": "12.7.3",
             "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-12.7.3.tgz",
-            "integrity": "sha1-J7P0Ct2vL1gEWf20BSImhVQvkHo=",
-            "dev": true
+            "integrity": "sha1-J7P0Ct2vL1gEWf20BSImhVQvkHo="
         },
         "@types/normalize-package-data": {
             "version": "2.4.0",
@@ -6171,6 +6424,58 @@
             "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
             "dev": true
         },
+        "d3-color": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz",
+            "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q=="
+        },
+        "d3-dispatch": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz",
+            "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA=="
+        },
+        "d3-ease": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz",
+            "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ=="
+        },
+        "d3-force": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz",
+            "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==",
+            "requires": {
+                "d3-dispatch": "1 - 2",
+                "d3-quadtree": "1 - 2",
+                "d3-timer": "1 - 2"
+            }
+        },
+        "d3-interpolate": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz",
+            "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==",
+            "requires": {
+                "d3-color": "1"
+            }
+        },
+        "d3-quadtree": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz",
+            "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw=="
+        },
+        "d3-timer": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz",
+            "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw=="
+        },
+        "dagre": {
+            "version": "0.8.5",
+            "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz",
+            "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==",
+            "requires": {
+                "graphlib": "^2.1.8",
+                "lodash": "^4.17.15"
+            }
+        },
         "dashdash": {
             "version": "1.14.1",
             "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz",
@@ -6483,6 +6788,11 @@
             "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
             "dev": true
         },
+        "detect-browser": {
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz",
+            "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA=="
+        },
         "detect-node": {
             "version": "2.0.4",
             "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz",
@@ -6886,7 +7196,7 @@
                 },
                 "ignore": {
                     "version": "4.0.6",
-                    "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1590809380232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
+                    "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1565775199290&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
                     "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
                     "dev": true
                 },
@@ -7333,7 +7643,7 @@
         },
         "fast-levenshtein": {
             "version": "2.0.6",
-            "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz?cache=0&sync_timestamp=1595428000133&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-levenshtein%2Fdownload%2Ffast-levenshtein-2.0.6.tgz",
+            "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
             "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
             "dev": true
         },
@@ -7346,6 +7656,11 @@
                 "websocket-driver": ">=0.5.1"
             }
         },
+        "fecha": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz",
+            "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="
+        },
         "figgy-pudding": {
             "version": "3.5.1",
             "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz",
@@ -8298,6 +8613,11 @@
                 "assert-plus": "^1.0.0"
             }
         },
+        "gl-matrix": {
+            "version": "3.3.0",
+            "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz",
+            "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA=="
+        },
         "glob": {
             "version": "7.1.4",
             "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.4.tgz",
@@ -8383,6 +8703,14 @@
             "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.2.tgz",
             "integrity": "sha1-bwlSYF0BQMHP2xOO0AV3W5LWewI="
         },
+        "graphlib": {
+            "version": "2.1.8",
+            "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz",
+            "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==",
+            "requires": {
+                "lodash": "^4.17.15"
+            }
+        },
         "gzip-size": {
             "version": "5.1.1",
             "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz",
@@ -9122,6 +9450,11 @@
                 }
             }
         },
+        "insert-css": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/insert-css/-/insert-css-2.0.0.tgz",
+            "integrity": "sha1-610Ql7dUL0x56jBg067gfQU4gPQ="
+        },
         "internal-ip": {
             "version": "4.3.0",
             "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz",
@@ -9197,6 +9530,14 @@
                 }
             }
         },
+        "is-any-array": {
+            "version": "0.1.0",
+            "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-0.1.0.tgz",
+            "integrity": "sha512-6Kkl1RnvfdkmXM6ZlP+kELGBMA74Nq5pSOm9gIKDaPRe9KQlIJzonrOgq0Jzn/iElB6F2/olpLgWYeVySzrSRg==",
+            "requires": {
+                "rollup": "^1.31.1"
+            }
+        },
         "is-arguments": {
             "version": "1.0.4",
             "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz",
@@ -10213,6 +10554,40 @@
                 }
             }
         },
+        "ml-array-max": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-1.2.0.tgz",
+            "integrity": "sha512-3UH7XCdjINxbtBWj1EuHMeI242Q3uLuC4rTpSybBWUpGjnG/BefAFxmTolUCuXDM59mJ/G/re80CQbaVIuMjQA==",
+            "requires": {
+                "is-any-array": "^0.1.0"
+            }
+        },
+        "ml-array-min": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-1.2.0.tgz",
+            "integrity": "sha512-Wgf2+lCndLy1SbeOZSUqlkxD9T1CXPT7CIlNGAZRRQI35wsqvfuNtLNH4qKFx8kNjlq3VGXKOSBHeiXR31vaTA==",
+            "requires": {
+                "is-any-array": "^0.1.0"
+            }
+        },
+        "ml-array-rescale": {
+            "version": "1.3.2",
+            "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-1.3.2.tgz",
+            "integrity": "sha512-kiXwdVCGrer7rLnjR6Q9ZgP6e9rbnmQvYVUMLXyqNg4+zOs+jek8yBupqPZPDr+NvlSE5OuMnfAbP1oA63kHBA==",
+            "requires": {
+                "is-any-array": "^0.1.0",
+                "ml-array-max": "^1.2.0",
+                "ml-array-min": "^1.2.0"
+            }
+        },
+        "ml-matrix": {
+            "version": "6.5.1",
+            "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.5.1.tgz",
+            "integrity": "sha512-KJ5DVN5cH7+HmFhjVhYh4FI1m1v4Xmw1Xi+huTlP0tDAKKuC5ZY4IlElCaT0LalsERE9nDQQ3YwT/o9Gss/B5w==",
+            "requires": {
+                "ml-array-rescale": "^1.3.1"
+            }
+        },
         "move-concurrently": {
             "version": "1.0.1",
             "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
@@ -11834,7 +12209,7 @@
         },
         "prelude-ls": {
             "version": "1.1.2",
-            "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprelude-ls%2Fdownload%2Fprelude-ls-1.1.2.tgz",
+            "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz",
             "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
             "dev": true
         },
@@ -12520,6 +12895,23 @@
                 "inherits": "^2.0.1"
             }
         },
+        "rollup": {
+            "version": "1.32.1",
+            "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz",
+            "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==",
+            "requires": {
+                "@types/estree": "*",
+                "@types/node": "*",
+                "acorn": "^7.1.0"
+            },
+            "dependencies": {
+                "acorn": {
+                    "version": "7.4.1",
+                    "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+                    "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
+                }
+            }
+        },
         "run-queue": {
             "version": "1.0.3",
             "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz",
@@ -13972,8 +14364,7 @@
         "tslib": {
             "version": "1.10.0",
             "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz",
-            "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=",
-            "dev": true
+            "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo="
         },
         "tty-browserify": {
             "version": "0.0.0",
@@ -15012,6 +15403,52 @@
             "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=",
             "dev": true
         },
+        "wfd-vue": {
+            "version": "1.0.12",
+            "resolved": "https://registry.npmjs.org/wfd-vue/-/wfd-vue-1.0.12.tgz",
+            "integrity": "sha512-Zpb7JcWqB4WaXD8GlHaylcMe5wRimCgzh3xqwl1wI7CMcDiBGR53TcG4k6qsBkOXpUfIcTZEB46xgN3Jjl+15g==",
+            "requires": {
+                "@antv/g6": "^3.1.3",
+                "@antv/util": "~1.3.1",
+                "element-ui": "^2.12.0",
+                "vue": "^2.6.10"
+            },
+            "dependencies": {
+                "@antv/g6": {
+                    "version": "3.8.0",
+                    "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-3.8.0.tgz",
+                    "integrity": "sha512-iv+4XrPHAqB10SJZJSR5N/XsvlCiGrm9vW3Z/wJDhJm/cWEkcBsnLBSKmPEXFhpHArMFrVOHu45O531iECDXOQ==",
+                    "requires": {
+                        "@antv/color-util": "^2.0.5",
+                        "@antv/dom-util": "^2.0.1",
+                        "@antv/event-emitter": "~0.1.0",
+                        "@antv/g-base": "^0.5.1",
+                        "@antv/g-canvas": "^0.5.1",
+                        "@antv/g-math": "^0.1.1",
+                        "@antv/g-svg": "^0.5.1",
+                        "@antv/hierarchy": "^0.6.2",
+                        "@antv/matrix-util": "^2.0.4",
+                        "@antv/path-util": "^2.0.3",
+                        "@antv/scale": "^0.3.1",
+                        "@antv/util": "~2.0.5",
+                        "d3-force": "^2.0.1",
+                        "dagre": "^0.8.5",
+                        "insert-css": "^2.0.0",
+                        "ml-matrix": "^6.5.0"
+                    },
+                    "dependencies": {
+                        "@antv/util": {
+                            "version": "2.0.9",
+                            "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.9.tgz",
+                            "integrity": "sha512-JblWzne7msAPDdxkUhEk8zAz0Wd6igKwqymGbvIeyOydGrhBhGjA3nEayFj4IlG+XixCvGFKsCB4yuFS4glRIA==",
+                            "requires": {
+                                "tslib": "^1.10.0"
+                            }
+                        }
+                    }
+                }
+            }
+        },
         "which": {
             "version": "1.3.1",
             "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz",

+ 66 - 65
web/package.json

@@ -1,67 +1,68 @@
 {
-  "name": "qm-plus-vue-page",
-  "version": "0.1.0",
-  "private": true,
-  "scripts": {
-    "serve": "vue-cli-service serve",
-    "build": "vue-cli-service build",
-    "lint": "vue-cli-service lint"
-  },
-  "dependencies": {
-    "@moefe/vue-aplayer": "^2.0.0-beta.5",
-    "axios": "^0.19.0",
-    "core-js": "^3.6.5",
-    "echarts": "^4.7.0",
-    "element-ui": "^2.12.0",
-    "mavon-editor": "^2.7.7",
-    "node-sass": "^4.14.1",
-    "path": "^0.12.7",
-    "qs": "^6.8.0",
-    "quill": "^1.3.7",
-    "sass-loader": "^8.0.0",
-    "screenfull": "^5.0.2",
-    "script-ext-html-webpack-plugin": "^2.1.4",
-    "spark-md5": "^3.0.1",
-    "timeline-vuejs": "1.1.1",
-    "vue": "^2.6.10",
-    "vue-particle-line": "^0.1.4",
-    "vue-quill-editor": "^3.0.6",
-    "vue-router": "^3.1.3",
-    "vue-simple-uploader": "^0.7.4",
-    "vuescroll": "^4.14.4",
-    "vuex": "^3.1.1",
-    "vuex-persist": "^2.1.0"
-  },
-  "devDependencies": {
-    "@vue/cli-plugin-babel": "^4.5.6",
-    "@vue/cli-plugin-eslint": "^4.5.6",
-    "@vue/cli-service": "^4.5.6",
-    "babel-eslint": "^10.1.0",
-    "eslint": "^6.7.2",
-    "eslint-plugin-vue": "^6.2.2",
-    "vue-template-compiler": "^2.6.10"
-  },
-  "eslintConfig": {
-    "root": true,
-    "env": {
-      "node": true
+    "name": "qm-plus-vue-page",
+    "version": "0.1.0",
+    "private": true,
+    "scripts": {
+        "serve": "vue-cli-service serve",
+        "build": "vue-cli-service build",
+        "lint": "vue-cli-service lint"
     },
-    "extends": [
-      "plugin:vue/essential",
-      "eslint:recommended"
-    ],
-    "rules": {},
-    "parserOptions": {
-      "parser": "babel-eslint"
-    }
-  },
-  "postcss": {
-    "plugins": {
-      "autoprefixer": {}
-    }
-  },
-  "browserslist": [
-    "> 1%",
-    "last 2 versions"
-  ]
-}
+    "dependencies": {
+        "@moefe/vue-aplayer": "^2.0.0-beta.5",
+        "axios": "^0.19.0",
+        "core-js": "^3.6.5",
+        "echarts": "^4.7.0",
+        "element-ui": "^2.12.0",
+        "mavon-editor": "^2.7.7",
+        "node-sass": "^4.14.1",
+        "path": "^0.12.7",
+        "qs": "^6.8.0",
+        "quill": "^1.3.7",
+        "sass-loader": "^8.0.0",
+        "screenfull": "^5.0.2",
+        "script-ext-html-webpack-plugin": "^2.1.4",
+        "spark-md5": "^3.0.1",
+        "timeline-vuejs": "1.1.1",
+        "vue": "^2.6.10",
+        "vue-particle-line": "^0.1.4",
+        "vue-quill-editor": "^3.0.6",
+        "vue-router": "^3.1.3",
+        "vue-simple-uploader": "^0.7.4",
+        "vuescroll": "^4.14.4",
+        "vuex": "^3.1.1",
+        "vuex-persist": "^2.1.0",
+        "wfd-gva": "^1.0.0"
+    },
+    "devDependencies": {
+        "@vue/cli-plugin-babel": "^4.5.6",
+        "@vue/cli-plugin-eslint": "^4.5.6",
+        "@vue/cli-service": "^4.5.6",
+        "babel-eslint": "^10.1.0",
+        "eslint": "^6.7.2",
+        "eslint-plugin-vue": "^6.2.2",
+        "vue-template-compiler": "^2.6.10"
+    },
+    "eslintConfig": {
+        "root": true,
+        "env": {
+            "node": true
+        },
+        "extends": [
+            "plugin:vue/essential",
+            "eslint:recommended"
+        ],
+        "rules": {},
+        "parserOptions": {
+            "parser": "babel-eslint"
+        }
+    },
+    "postcss": {
+        "plugins": {
+            "autoprefixer": {}
+        }
+    },
+    "browserslist": [
+        "> 1%",
+        "last 2 versions"
+    ]
+}

+ 7 - 6
web/src/utils/stringFun.js

@@ -1,3 +1,4 @@
+/* eslint-disable */
 export const toUpperCase = (str) => {
     if (str[0]) {
         return str.replace(str[0], str[0].toUpperCase())
@@ -8,13 +9,13 @@ export const toUpperCase = (str) => {
 
 // 驼峰转换下划线
 export const toSQLLine = (str) => {
-    if (str=="ID") return "ID"
-    return str.replace(/([A-Z])/g,"_$1").toLowerCase();
-  }
+    if (str == "ID") return "ID"
+    return str.replace(/([A-Z])/g, "_$1").toLowerCase();
+}
 
-  // 下划线转换驼峰
-  export const  toHump = (name) => {
-    return name.replace(/\_(\w)/g, function(all, letter){
+// 下划线转换驼峰
+export const toHump = (name) => {
+    return name.replace(/\_(\w)/g, function(all, letter) {
         return letter.toUpperCase();
     });
 }

+ 1 - 1
web/src/view/superAdmin/authority/components/apis.vue

@@ -54,7 +54,7 @@ export default {
       apis &&
         apis.map(item => {
         item.onlyId = "p:"+item.path+"m:"+item.method
-          if (apiObj.hasOwnProperty(item.apiGroup)) {
+          if (Object.prototype.hasOwnProperty.call(apiObj,item.apiGroup)) {
             apiObj[item.apiGroup].push(item)
           } else {
             Object.assign(apiObj, { [item.apiGroup]: [item] })

+ 4 - 1
web/src/view/system/state.vue

@@ -146,8 +146,11 @@ export default {
       ],
     };
   },
-  created() {
+  created() { 
     this.reload();
+    setInterval(() => {
+      this.reload();
+    }, 1000*10);
   },
   methods: {
     async reload() {

+ 16 - 102
web/src/view/workflow/workflowCreate/workflowCreate.vue

@@ -1,115 +1,29 @@
 <template>
   <div>
-    <el-form :model="form" label-width="100px" ref="form">
-      <el-form-item label="工作流名称">
-        <el-input type="text" v-model="form.workflowNickName"></el-input>
-      </el-form-item>
-      <el-form-item label="工作流英文id">
-        <el-input type="text" v-model="form.workflowName"></el-input>
-      </el-form-item>
-      <el-form-item label="工作流描述">
-        <el-input type="text" v-model="form.workflowDescription"></el-input>
-      </el-form-item>
-    </el-form>
-    <el-button @click="createWorkflowStep" class="fl-right mg" type="primary">新增</el-button>
-    <el-table :data="form.workflowStep" border style="width: 100%">
-      <el-table-column label="是否是完结流节点" prop="isEnd">
-        <template slot-scope="scope">
-          <el-select placeholder="请选择" v-model="scope.row.isEnd">
-            <el-option
-              :key="key"
-              :label="item.name"
-              :value="item.value"
-              v-for="(item,key) in options"
-            ></el-option>
-          </el-select>
-        </template>
-      </el-table-column>
-      <el-table-column label="是否是开始流节点" prop="isStrat">
-        <template slot-scope="scope">
-          <el-select placeholder="请选择" v-model="scope.row.isStrat">
-            <el-option
-              :key="key"
-              :label="item.name"
-              :value="item.value"
-              v-for="(item,key) in options"
-            ></el-option>
-          </el-select>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作者级别id" prop="stepAuthorityID">
-        <template slot-scope="scope">
-          <el-input placeholder="请输入" type="text" v-model="scope.row.stepAuthorityID"></el-input>
-        </template>
-      </el-table-column>
-      <el-table-column label="工作流名称" prop="stepName">
-        <template slot-scope="scope">
-          <el-input placeholder="请输入" type="text" v-model="scope.row.stepName"></el-input>
-        </template>
-      </el-table-column>
-      <el-table-column label="步骤id" prop="stepNo">
-        <template slot-scope="scope">
-          <el-input placeholder="请输入" type="text" v-model="scope.row.stepNo"></el-input>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-button @click="submit" type="primary" class="fl-right mg">提交</el-button>
+    <wfd-gva ref="wfd" :data="demoData" :height="600" :users="candidateUsers" :groups="candidateGroups" :categorys="categorys" :lang="lang" />
   </div>
 </template>
-
 <script>
-import { createWorkFlow } from '@/api/workflow'
+
+
+import wfdGva from 'wfd-gva'
 export default {
   name: 'Workflow',
-  data() {
+  components:{
+    wfdGva
+  },
+  data () {
     return {
-      form: {
-        workflowName: '',
-        workflowDescription: '',
-        workflowNickName: '',
-        workflowStep: [
-          {
-            isEnd: false,
-            isStrat: true,
-            stepAuthorityID: '',
-            stepName: '',
-            stepNo: ''
-          }
-        ]
-      },
-      options: [
-        {
-          name: '是',
-          value: true
-        },
-        {
-          name: '否',
-          value: false
-        }
-      ]
+      lang: "zh",
+      demoData: {},
+      candidateUsers: [],
+      candidateGroups: []
     }
   },
-  methods: {
-    createWorkflowStep() {
-      this.form.workflowStep.push({
-        isEnd: false,
-        isStrat: false,
-        stepAuthorityID: '',
-        stepName: '',
-        stepNo: ''
-      })
-    },
-    async submit() {
-      const res = await createWorkFlow(this.form)
-      if(res.code == 0){
-          this.$message({
-              message:"创建成功",
-              type:"success"
-          })
-      }
+  methods:{
+    save(){
+      console.log(this.$refs['wfd'].graph.save())
     }
   }
 }
-</script>
-<style>
-</style>
+</script>