diff --git a/oh-my-scheduler-server/src/main/resources/static/js/4.js b/oh-my-scheduler-server/src/main/resources/static/js/4.js index baa86d43..967c28d4 100644 --- a/oh-my-scheduler-server/src/main/resources/static/js/4.js +++ b/oh-my-scheduler-server/src/main/resources/static/js/4.js @@ -8,7 +8,7 @@ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find-index */ \"./node_modules/core-js/modules/es.array.find-index.js\");\n/* harmony import */ var core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.for-each */ \"./node_modules/core-js/modules/es.array.for-each.js\");\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.map */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.splice */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dagre-d3 */ \"./node_modules/dagre-d3/index.js\");\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3 */ \"./node_modules/d3/index.js\");\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"WorkflowEditor\",\n data: function data() {\n return {\n workflowInfo: {\n appId: this.$store.state.appInfo.id,\n enable: true,\n maxWfInstanceNum: 1,\n notifyUserIds: [],\n peworkflowDAG: {\n nodes: [],\n edges: []\n },\n timeExpression: undefined,\n timeExpressionType: undefined,\n wfDescription: undefined,\n wfName: undefined\n },\n timeExpressionTypeOptions: [{\n key: \"API\",\n label: \"API\"\n }, {\n key: \"CRON\",\n label: \"CRON表达式\"\n }],\n userList: [],\n // 导入任务相关\n importDrawerVisible: false,\n jobQueryContent: {\n appId: this.$store.state.appInfo.id,\n index: 0,\n pageSize: 10,\n jobId: undefined,\n keyword: undefined\n },\n jobInfoPageResult: {\n pageSize: 20,\n totalItems: 0,\n data: []\n },\n // 事件(1:新增起点,2:新增终点,3:删除节点;4:删除边)\n event: undefined,\n from: undefined\n };\n },\n methods: {\n // 返回上一页\n back: function back() {\n this.$router.go(-1);\n },\n\n /* ******** 导入任务相关,所有函数与 JobManager 重复,需要前端大佬重构! ******** */\n // 点击重置按钮\n onClickReset: function onClickReset() {\n this.jobQueryContent.keyword = undefined;\n this.jobQueryContent.jobId = undefined;\n },\n // 列出符合当前搜索条件的任务\n listJobInfos: function listJobInfos() {\n var that = this;\n this.axios.post(\"/job/list\", this.jobQueryContent).then(function (res) {\n that.jobInfoPageResult = res;\n });\n },\n // 点击 换页\n onClickChangePage: function onClickChangePage(index) {\n // 后端从0开始,前端从1开始\n this.jobQueryContent.index = index - 1;\n this.listJobInfos();\n },\n onClickImportNode: function onClickImportNode() {\n this.listJobInfos();\n this.importDrawerVisible = true;\n },\n // 导入任务,需要去重\n importNode: function importNode(data) {\n var canSave = true;\n this.workflowInfo.peworkflowDAG.nodes.forEach(function (node) {\n if (data.id === node.jobId) {\n canSave = false;\n console.log(\"nodes in workflow cannot be duplicated\");\n }\n });\n\n if (canSave) {\n console.log(\"add node: \" + data.id);\n this.workflowInfo.peworkflowDAG.nodes.push({\n jobId: data.id,\n jobName: data.jobName\n });\n this.draw();\n }\n },\n // 删除任务\n onClickRemoveNode: function onClickRemoveNode() {\n this.event = 3;\n this.$message.info(\"请点击需要删除的节点\");\n },\n onClickAddFrom: function onClickAddFrom() {\n this.event = 1;\n this.$message.info(\"请点击起始节点\");\n },\n onClickAddTo: function onClickAddTo() {\n this.event = 2;\n this.$message.info(\"请点击目标节点\");\n },\n onClickRemoveEdge: function onClickRemoveEdge() {\n this.event = 4;\n this.$message.info(\"请点击需要删除的边\");\n },\n // 保存工作流\n saveWorkflow: function saveWorkflow() {\n var that = this;\n this.axios.post(\"/workflow/save\", this.workflowInfo).then(function () {\n that.$message.success(\"保存成功!\");\n that.back();\n });\n },\n draw: function draw() {\n var _this = this;\n\n console.log(\"draw by data: \" + JSON.stringify(this.workflowInfo.peworkflowDAG)); //获取D3\n\n var g = new dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.graphlib.Graph().setGraph({});\n var nodes = this.workflowInfo.peworkflowDAG.nodes.map(function (node) {\n return {\n id: node.jobId,\n label: \"jobId: \" + node.jobId + \"\\n\" + \"jobName: \" + node.jobName\n };\n }); // 添加节点\n\n nodes.forEach(function (node) {\n g.setNode(node.id, node);\n }); // 链接关系\n\n this.workflowInfo.peworkflowDAG.edges.forEach(function (item) {\n g.setEdge(item.from, item.to, {// style: \"stroke-width: 1.5;\"\n });\n }); //绘制图形\n\n var svg = d3__WEBPACK_IMPORTED_MODULE_6__[\"select\"](\"svg\"),\n inner = svg.select(\"g\"); //缩放\n\n var zoom = d3__WEBPACK_IMPORTED_MODULE_6__[\"zoom\"]().on(\"zoom\", function () {\n inner.attr(\"transform\", d3__WEBPACK_IMPORTED_MODULE_6__[\"event\"].transform);\n });\n svg.call(zoom);\n var render = new dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.render();\n render(inner, g); // 添加节点监听\n\n inner.selectAll(\"g.node\").on(\"click\", function (e) {\n for (var i = 0; i < _this.workflowInfo.peworkflowDAG.nodes.length; i++) {\n if (e == _this.workflowInfo.peworkflowDAG.nodes[i].jobId) {\n console.log(\"onClickNode, jobId=\" + e);\n\n _this.onClickDAGNode(e, g);\n }\n }\n }); // 添加边监听\n\n inner.selectAll(\"path\").on(\"click\", function (e) {\n if (_this.event === 4) {\n var oldEdges = _this.workflowInfo.peworkflowDAG.edges;\n _this.workflowInfo.peworkflowDAG.edges = []; // 删除节点相关的所有边\n\n oldEdges.forEach(function (edge) {\n if (!(edge.from === e.v && edge.to === e.w)) {\n _this.workflowInfo.peworkflowDAG.edges.push(edge);\n }\n\n _this.draw();\n });\n }\n });\n },\n onClickDAGNode: function onClickDAGNode(nodeId, g) {\n var _this2 = this;\n\n switch (this.event) {\n case 3:\n {\n g.removeNode(nodeId);\n var nodesArr = this.workflowInfo.peworkflowDAG.nodes;\n var oldEdges = this.workflowInfo.peworkflowDAG.edges;\n this.workflowInfo.peworkflowDAG.edges = []; // 删除节点\n\n nodesArr.splice(nodesArr.findIndex(function (item) {\n return item.jobId == nodeId;\n }), 1); // 删除节点相关的所有边\n\n oldEdges.forEach(function (edge) {\n if (edge.from == nodeId || edge.to == nodeId) {\n console.log(\"remove edge: \" + JSON.stringify(edge));\n } else {\n _this2.workflowInfo.peworkflowDAG.edges.push(edge);\n }\n });\n this.draw();\n break;\n }\n\n case 1:\n {\n this.from = nodeId;\n break;\n }\n\n case 2:\n {\n var to = nodeId;\n\n if (this.from === undefined) {\n this.$message.warning(\"请先添加起点!\");\n break;\n }\n\n if (this.from === to) {\n this.$message.warning(\"非法操作(起点终点相同)!\");\n break;\n }\n\n var canSave = true;\n this.workflowInfo.peworkflowDAG.edges.forEach(function (edge) {\n if (edge.from === _this2.from && edge.to === to) {\n canSave = false;\n console.log(\"edge(%o -> %o) already exists!\", _this2.from, to);\n }\n });\n\n if (canSave) {\n this.workflowInfo.peworkflowDAG.edges.push({\n from: this.from,\n to: to\n });\n console.log(\"new edge(%o -> %o)\", this.from, to);\n }\n\n this.draw();\n break;\n }\n }\n }\n },\n mounted: function mounted() {\n // 加载用户信息\n var that = this;\n that.axios.get(\"/user/list\").then(function (res) {\n return that.userList = res;\n }); // 读取传递数据,如果是修改,需要先将数据绘制上去\n\n var modify = this.$route.params.modify;\n\n if (modify) {\n this.workflowInfo = this.$route.params.workflowInfo;\n this.workflowInfo.appId = this.$store.state.appInfo.id; // this.workflowInfo.peworkflowDAG.nodes = this.workflowInfo.peworkflowDAG.nodes.map(x => {\n // return {\n // jobId: x.jobId,\n // jobName: x.jobName\n // }\n // });\n\n this.draw();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/dag/WorkflowEditor.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.find-index */ \"./node_modules/core-js/modules/es.array.find-index.js\");\n/* harmony import */ var core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.for-each */ \"./node_modules/core-js/modules/es.array.for-each.js\");\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.map */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.splice */ \"./node_modules/core-js/modules/es.array.splice.js\");\n/* harmony import */ var core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dagre-d3 */ \"./node_modules/dagre-d3/index.js\");\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! d3 */ \"./node_modules/d3/index.js\");\n\n\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"WorkflowEditor\",\n data: function data() {\n return {\n workflowInfo: {\n appId: this.$store.state.appInfo.id,\n enable: true,\n maxWfInstanceNum: 1,\n notifyUserIds: [],\n peworkflowDAG: {\n nodes: [],\n edges: []\n },\n timeExpression: undefined,\n timeExpressionType: undefined,\n wfDescription: undefined,\n wfName: undefined\n },\n timeExpressionTypeOptions: [{\n key: \"API\",\n label: \"API\"\n }, {\n key: \"CRON\",\n label: \"CRON表达式\"\n }],\n userList: [],\n // 导入任务相关\n importDrawerVisible: false,\n jobQueryContent: {\n appId: this.$store.state.appInfo.id,\n index: 0,\n pageSize: 10,\n jobId: undefined,\n keyword: undefined\n },\n jobInfoPageResult: {\n pageSize: 20,\n totalItems: 0,\n data: []\n },\n // 事件(1:新增起点,2:新增终点,3:删除节点;4:删除边)\n event: undefined,\n from: undefined\n };\n },\n methods: {\n // 返回上一页\n back: function back() {\n this.$router.go(-1);\n },\n\n /* ******** 导入任务相关,所有函数与 JobManager 重复,需要前端大佬重构! ******** */\n // 点击重置按钮\n onClickReset: function onClickReset() {\n this.jobQueryContent.keyword = undefined;\n this.jobQueryContent.jobId = undefined;\n },\n // 列出符合当前搜索条件的任务\n listJobInfos: function listJobInfos() {\n var that = this;\n this.axios.post(\"/job/list\", this.jobQueryContent).then(function (res) {\n that.jobInfoPageResult = res;\n });\n },\n // 点击 换页\n onClickChangePage: function onClickChangePage(index) {\n // 后端从0开始,前端从1开始\n this.jobQueryContent.index = index - 1;\n this.listJobInfos();\n },\n onClickImportNode: function onClickImportNode() {\n this.listJobInfos();\n this.importDrawerVisible = true;\n },\n // 导入任务,需要去重\n importNode: function importNode(data) {\n var canSave = true;\n this.workflowInfo.peworkflowDAG.nodes.forEach(function (node) {\n if (data.id === node.jobId) {\n canSave = false;\n console.log(\"nodes in workflow cannot be duplicated\");\n }\n });\n\n if (canSave) {\n console.log(\"add node: \" + data.id);\n this.workflowInfo.peworkflowDAG.nodes.push({\n jobId: data.id,\n jobName: data.jobName\n });\n this.draw();\n }\n },\n // 删除任务\n onClickRemoveNode: function onClickRemoveNode() {\n this.event = 3;\n this.$message.info(\"请点击需要删除的节点\");\n },\n onClickAddFrom: function onClickAddFrom() {\n this.event = 1;\n this.$message.info(\"请点击起始节点\");\n },\n onClickAddTo: function onClickAddTo() {\n this.event = 2;\n this.$message.info(\"请点击目标节点\");\n },\n onClickRemoveEdge: function onClickRemoveEdge() {\n this.event = 4;\n this.$message.info(\"请点击需要删除的边\");\n },\n // 保存工作流\n saveWorkflow: function saveWorkflow() {\n var that = this;\n this.axios.post(\"/workflow/save\", this.workflowInfo).then(function () {\n that.$message.success(\"保存成功!\");\n that.back();\n });\n },\n draw: function draw() {\n var _this = this;\n\n console.log(\"draw by data: \" + JSON.stringify(this.workflowInfo.peworkflowDAG)); //获取D3\n\n var g = new dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.graphlib.Graph().setGraph({});\n var nodes = this.workflowInfo.peworkflowDAG.nodes.map(function (node) {\n return {\n id: node.jobId,\n label: \"jobId: \" + node.jobId + \"\\n\" + \"jobName: \" + node.jobName\n };\n }); // 添加节点\n\n nodes.forEach(function (node) {\n g.setNode(node.id, node);\n }); // 链接关系\n\n this.workflowInfo.peworkflowDAG.edges.forEach(function (item) {\n g.setEdge(item.from, item.to, {// style: \"stroke-width: 1.5;\"\n });\n }); //绘制图形\n\n var svg = d3__WEBPACK_IMPORTED_MODULE_6__[\"select\"](\"svg\"),\n inner = svg.select(\"g\"); //缩放\n\n var zoom = d3__WEBPACK_IMPORTED_MODULE_6__[\"zoom\"]().on(\"zoom\", function () {\n inner.attr(\"transform\", d3__WEBPACK_IMPORTED_MODULE_6__[\"event\"].transform);\n });\n svg.call(zoom);\n var render = new dagre_d3__WEBPACK_IMPORTED_MODULE_5___default.a.render();\n render(inner, g); // 添加节点监听\n\n inner.selectAll(\"g.node\").on(\"click\", function (e) {\n for (var i = 0; i < _this.workflowInfo.peworkflowDAG.nodes.length; i++) {\n if (e == _this.workflowInfo.peworkflowDAG.nodes[i].jobId) {\n console.log(\"onClickNode, jobId=\" + e);\n\n _this.onClickDAGNode(e, g);\n }\n }\n }); // 添加边监听\n\n inner.selectAll(\"path\").on(\"click\", function (e) {\n if (_this.event === 4) {\n var oldEdges = _this.workflowInfo.peworkflowDAG.edges;\n _this.workflowInfo.peworkflowDAG.edges = []; // 删除节点相关的所有边\n\n oldEdges.forEach(function (edge) {\n if (!(edge.from == e.v && edge.to == e.w)) {\n _this.workflowInfo.peworkflowDAG.edges.push(edge);\n }\n\n _this.draw();\n });\n }\n });\n },\n onClickDAGNode: function onClickDAGNode(nodeId, g) {\n var _this2 = this;\n\n switch (this.event) {\n case 3:\n {\n g.removeNode(nodeId);\n var nodesArr = this.workflowInfo.peworkflowDAG.nodes;\n var oldEdges = this.workflowInfo.peworkflowDAG.edges;\n this.workflowInfo.peworkflowDAG.edges = []; // 删除节点\n\n nodesArr.splice(nodesArr.findIndex(function (item) {\n return item.jobId == nodeId;\n }), 1); // 删除节点相关的所有边\n\n oldEdges.forEach(function (edge) {\n if (edge.from == nodeId || edge.to == nodeId) {\n console.log(\"remove edge: \" + JSON.stringify(edge));\n } else {\n _this2.workflowInfo.peworkflowDAG.edges.push(edge);\n }\n });\n this.draw();\n break;\n }\n\n case 1:\n {\n this.from = nodeId;\n break;\n }\n\n case 2:\n {\n var to = nodeId;\n\n if (this.from === undefined) {\n this.$message.warning(\"请先添加起点!\");\n break;\n }\n\n if (this.from === to) {\n this.$message.warning(\"非法操作(起点终点相同)!\");\n break;\n }\n\n var canSave = true;\n this.workflowInfo.peworkflowDAG.edges.forEach(function (edge) {\n if (edge.from === _this2.from && edge.to === to) {\n canSave = false;\n console.log(\"edge(%o -> %o) already exists!\", _this2.from, to);\n }\n });\n\n if (canSave) {\n this.workflowInfo.peworkflowDAG.edges.push({\n from: this.from,\n to: to\n });\n console.log(\"new edge(%o -> %o)\", this.from, to);\n }\n\n this.draw();\n break;\n }\n }\n }\n },\n mounted: function mounted() {\n // 加载用户信息\n var that = this;\n that.axios.get(\"/user/list\").then(function (res) {\n return that.userList = res;\n }); // 读取传递数据,如果是修改,需要先将数据绘制上去\n\n var modify = this.$route.params.modify;\n\n if (modify) {\n this.workflowInfo = this.$route.params.workflowInfo;\n this.workflowInfo.appId = this.$store.state.appInfo.id; // this.workflowInfo.peworkflowDAG.nodes = this.workflowInfo.peworkflowDAG.nodes.map(x => {\n // return {\n // jobId: x.jobId,\n // jobName: x.jobName\n // }\n // });\n\n this.draw();\n }\n }\n});\n\n//# sourceURL=webpack:///./src/components/dag/WorkflowEditor.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/oh-my-scheduler-server/src/main/resources/static/js/5.js b/oh-my-scheduler-server/src/main/resources/static/js/5.js index 33051f7c..6a9db9e2 100644 --- a/oh-my-scheduler-server/src/main/resources/static/js/5.js +++ b/oh-my-scheduler-server/src/main/resources/static/js/5.js @@ -8,7 +8,7 @@ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Home\",\n data: function data() {\n return {\n systemInfo: {\n jobCount: \"N/A\",\n runningInstanceCount: \"N/A\",\n failedInstanceCount: \"N/A\",\n serverTime: undefined\n },\n activeWorkerCount: \"N/A\",\n workerList: []\n };\n },\n methods: {\n workerTableRowClassName: function workerTableRowClassName(_ref) {\n var row = _ref.row;\n\n switch (row.status) {\n case 1:\n return 'success-row';\n\n case 2:\n return 'warning-row';\n\n case 3:\n return 'error-row';\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n var that = this;\n var appId = that.$store.state.appInfo.id; // 请求 Worker 列表\n\n that.axios.get(\"/system/listWorker?appId=\" + appId).then(function (res) {\n that.workerList = res;\n that.activeWorkerCount = that.workerList.length;\n }); // 请求 Overview\n\n that.axios.get(\"/system/overview?appId=\" + appId).then(function (res) {\n that.systemInfo = res; // 对比服务器时间和本地时间\n\n var localTime = new Date().getTime();\n var serverTime = res.serverTime;\n console.log(\"localTime: %o, serverTime: %o\", localTime, serverTime);\n var offset = localTime - serverTime; // 误差大于一分钟,弹窗告警\n\n if (Math.abs(offset) > 60000) {\n _this.$notify({\n title: '警告',\n message: '调度中心服务器与本地存在时间差,可能影响任务调度准确性,建议排查时间问题!',\n type: 'warning',\n duration: 0\n });\n }\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"Home\",\n data: function data() {\n return {\n systemInfo: {\n jobCount: \"N/A\",\n runningInstanceCount: \"N/A\",\n failedInstanceCount: \"N/A\",\n serverTime: undefined\n },\n activeWorkerCount: \"N/A\",\n workerList: []\n };\n },\n methods: {\n workerTableRowClassName: function workerTableRowClassName(_ref) {\n var row = _ref.row;\n\n switch (row.status) {\n case 1:\n return 'success-row';\n\n case 2:\n return 'warning-row';\n\n case 3:\n return 'error-row';\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n var that = this;\n var appId = that.$store.state.appInfo.id; // 请求 Worker 列表\n\n that.axios.get(\"/system/listWorker?appId=\" + appId).then(function (res) {\n that.workerList = res;\n that.activeWorkerCount = that.workerList.length;\n }); // 请求 Overview\n\n that.axios.get(\"/system/overview?appId=\" + appId).then(function (res) {\n that.systemInfo = res; // 对比服务器时间和本地时间\n\n var localTime = new Date().getTime();\n var serverTime = res.serverTime;\n console.log(\"localTime: %o, serverTime: %o\", localTime, serverTime);\n var offset = localTime - serverTime; // 误差大于一分钟,弹窗告警\n\n if (Math.abs(offset) > 60000) {\n _this.$notify({\n title: '警告',\n message: '调度中心服务器与本地存在时间差,可能影响任务调度准确性,建议排查时间问题!',\n type: 'warning',\n duration: 0\n });\n }\n });\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -20,7 +20,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"home\" } },\n [\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _vm._v(\n \" 调度中心服务器时间:\" +\n _vm._s(\n this.common.timestamp2Str(_vm.systemInfo.serverTime)\n ) +\n \" \"\n )\n ])\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _vm._v(\n \" 本地浏览器时间:\" +\n _vm._s(this.common.timestamp2Str(new Date().getTime())) +\n \" \"\n )\n ])\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [_vm._v(\"任务总数\")]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.jobCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-orange\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(\"当前运行实例数\")\n ]),\n _c(\"div\", { staticClass: \"text\" }, [\n _vm._v(_vm._s(_vm.systemInfo.runningInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-loading\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(\"近期失败任务数\")\n ]),\n _c(\"div\", { staticClass: \"text\" }, [\n _vm._v(_vm._s(_vm.systemInfo.failedInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-bell\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(\"集群机器数\")\n ]),\n _c(\"div\", { staticClass: \"text\" }, [\n _vm._v(_vm._s(_vm.activeWorkerCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-cpu\" })\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 24 } },\n [\n _c(\n \"el-table\",\n {\n staticStyle: { width: \"100%\" },\n attrs: {\n data: _vm.workerList,\n height: \"400px\",\n \"row-class-name\": _vm.workerTableRowClassName\n }\n },\n [\n _c(\"el-table-column\", {\n attrs: { prop: \"address\", label: \"机器地址\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"cpuLoad\", label: \"CPU占用\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"memoryLoad\", label: \"内存占用\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"diskLoad\", label: \"磁盘占用\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22dddd77cc-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"home\" } },\n [\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _vm._v(\n \" 调度中心服务器时间:\" +\n _vm._s(\n this.common.timestamp2Str(_vm.systemInfo.serverTime)\n ) +\n \" \"\n )\n ])\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _vm._v(\n \" 本地浏览器时间:\" +\n _vm._s(this.common.timestamp2Str(new Date().getTime())) +\n \" \"\n )\n ])\n ],\n 1\n ),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://github.com/KFCFans/OhMyScheduler\",\n target: \"_blank\"\n }\n },\n [\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\n \"el-card\",\n {\n staticStyle: { \"text-align\": \"center\" },\n attrs: { shadow: \"always\" }\n },\n [_vm._v(\" 项目地址 \")]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"a\",\n {\n staticStyle: { \"text-align\": \"center\" },\n attrs: {\n href: \"https://www.yuque.com/ohmyscheduler/guidence\",\n target: \"_blank\"\n }\n },\n [\n _c(\n \"el-col\",\n { attrs: { span: 6 } },\n [\n _c(\"el-card\", { attrs: { shadow: \"always\" } }, [\n _vm._v(\" 文档地址 \")\n ])\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n { attrs: { gutter: 24 } },\n [\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [_vm._v(\"任务总数\")]),\n _c(\"div\", { staticClass: \"text mText\" }, [\n _vm._v(_vm._s(_vm.systemInfo.jobCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-orange\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(\"当前运行实例数\")\n ]),\n _c(\"div\", { staticClass: \"text\" }, [\n _vm._v(_vm._s(_vm.systemInfo.runningInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-loading\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(\"近期失败任务数\")\n ]),\n _c(\"div\", { staticClass: \"text\" }, [\n _vm._v(_vm._s(_vm.systemInfo.failedInstanceCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-bell\" })\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 6 } }, [\n _c(\"div\", { staticClass: \"wrap\" }, [\n _c(\"div\", { staticClass: \"grid-content bg-purple\" }, [\n _c(\"div\", { staticClass: \"text mTitle\" }, [\n _vm._v(\"集群机器数\")\n ]),\n _c(\"div\", { staticClass: \"text\" }, [\n _vm._v(_vm._s(_vm.activeWorkerCount))\n ])\n ]),\n _c(\"i\", { staticClass: \"el-icon-cpu\" })\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 24 } },\n [\n _c(\n \"el-table\",\n {\n staticStyle: { width: \"100%\" },\n attrs: {\n data: _vm.workerList,\n height: \"400px\",\n \"row-class-name\": _vm.workerTableRowClassName\n }\n },\n [\n _c(\"el-table-column\", {\n attrs: { prop: \"address\", label: \"机器地址\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"cpuLoad\", label: \"CPU占用\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"memoryLoad\", label: \"内存占用\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"diskLoad\", label: \"磁盘占用\" }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22dddd77cc-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -31,7 +31,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* 头部信息 */\\n.wrap[data-v-069f7be0] {\\n background: #fff;\\n display: flex;\\n text-align: center;\\n justify-content: space-around;\\n align-items: center;\\n margin: 10px;\\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\\n font-size: 1.5rem;\\n font-weight: bolder;\\n height: 131px;\\n}\\n.mTitle[data-v-069f7be0]{\\n font-size: 20px;\\n color:#0f0f0fad;\\n margin-bottom: 8px;\\n}\\n.el-card[data-v-069f7be0] {\\n margin: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n/* 头部信息 */\\n.wrap[data-v-069f7be0] {\\n background: #fff;\\n display: flex;\\n text-align: center;\\n justify-content: space-around;\\n align-items: center;\\n margin: 10px;\\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);\\n font-size: 1.5rem;\\n font-weight: bolder;\\n height: 131px;\\n}\\n.mTitle[data-v-069f7be0]{\\n font-size: 20px;\\n color:#0f0f0fad;\\n margin-bottom: 8px;\\n}\\n.el-card[data-v-069f7be0] {\\n margin: 10px;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/Home.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/oh-my-scheduler-server/src/main/resources/static/js/7.js b/oh-my-scheduler-server/src/main/resources/static/js/7.js index a9e1ee1f..b081cfed 100644 --- a/oh-my-scheduler-server/src/main/resources/static/js/7.js +++ b/oh-my-scheduler-server/src/main/resources/static/js/7.js @@ -8,7 +8,7 @@ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each */ \"./node_modules/core-js/modules/es.array.for-each.js\");\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dagre-d3 */ \"./node_modules/dagre-d3/index.js\");\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3 */ \"./node_modules/d3/index.js\");\n/* harmony import */ var _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/InstanceDetail */ \"./src/components/common/InstanceDetail.vue\");\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"WorkflowInstanceDetail\",\n components: {\n InstanceDetail: _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n data: function data() {\n return {\n wfInstanceDetail: {},\n // 任务实例详情\n currentInstanceId: undefined,\n instanceDetailVisible: false\n };\n },\n methods: {\n fetchWfInstanceInfo: function fetchWfInstanceInfo() {\n var that = this; // 从 router 获取 wfInstanceId\n\n var wfInstanceId = this.$route.params.wfInstanceId;\n console.log(\"wfInstanceId: \" + wfInstanceId);\n var url = \"/wfInstance/info?appId=\" + this.$store.state.appInfo.id + \"&wfInstanceId=\" + wfInstanceId;\n this.axios.get(url).then(function (res) {\n that.wfInstanceDetail = res;\n that.draw();\n });\n },\n draw: function draw() {\n var _this = this;\n\n console.log(this.wfInstanceDetail); //获取D3\n\n var g = new dagre_d3__WEBPACK_IMPORTED_MODULE_3___default.a.graphlib.Graph().setGraph({}); // 转化节点\n\n var nodes = this.wfInstanceDetail.peworkflowDAG.nodes.map(function (node) {\n // 计算颜色 1:等待上游节点,3:运行中,4:失败,5:成功,10:手动停止\n var color;\n var statusStr;\n\n switch (node.status) {\n case 3:\n color = \"#3498DB\";\n statusStr = \"运行中\";\n break;\n\n case 4:\n color = \"#EC7063\";\n statusStr = \"失败\";\n break;\n\n case 5:\n color = \"#58D68D\";\n statusStr = \"成功\";\n break;\n\n case 10:\n color = \"#F1C40F\";\n statusStr = \"手动停止\";\n break;\n\n default:\n color = \"#CACFD2\";\n statusStr = \"等待上游节点\";\n break;\n }\n\n var l = \"任务ID: \" + node.jobId + \"\\n\" + \"任务名称:\" + node.jobName + \"\\n\" + \"状态:\" + statusStr + \"\\n\" + \"任务实例ID:\" + node.instanceId;\n return {\n id: node.jobId,\n label: l,\n color: color\n };\n }); // 添加节点\n\n nodes.forEach(function (node) {\n g.setNode(node.id, node); // 设置颜色\n\n g.node(node.id).style = 'fill:' + node.color;\n }); // 链接关系\n\n this.wfInstanceDetail.peworkflowDAG.edges.forEach(function (item) {\n g.setEdge(item.from, item.to, {});\n }); //绘制图形\n\n var svg = d3__WEBPACK_IMPORTED_MODULE_4__[\"select\"](\"svg\"),\n inner = svg.select(\"g\"); //缩放\n\n var zoom = d3__WEBPACK_IMPORTED_MODULE_4__[\"zoom\"]().on(\"zoom\", function () {\n inner.attr(\"transform\", d3__WEBPACK_IMPORTED_MODULE_4__[\"event\"].transform);\n });\n svg.call(zoom);\n var render = new dagre_d3__WEBPACK_IMPORTED_MODULE_3___default.a.render();\n render(inner, g);\n inner.selectAll(\"g.node\").on(\"click\", function (e) {\n _this.wfInstanceDetail.peworkflowDAG.nodes.forEach(function (node) {\n if (node.jobId == e) {\n _this.currentInstanceId = node.instanceId;\n _this.instanceDetailVisible = true;\n }\n });\n });\n },\n back: function back() {\n this.$router.go(-1);\n }\n },\n mounted: function mounted() {\n console.log(\"Welcome to WorkflowInstanceDetail!\");\n this.fetchWfInstanceInfo();\n }\n});\n\n//# sourceURL=webpack:///./src/components/dag/WorkflowInstanceDetail.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.for-each */ \"./node_modules/core-js/modules/es.array.for-each.js\");\n/* harmony import */ var core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_for_each__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! dagre-d3 */ \"./node_modules/dagre-d3/index.js\");\n/* harmony import */ var dagre_d3__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(dagre_d3__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var d3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! d3 */ \"./node_modules/d3/index.js\");\n/* harmony import */ var _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../common/InstanceDetail */ \"./src/components/common/InstanceDetail.vue\");\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"WorkflowInstanceDetail\",\n components: {\n InstanceDetail: _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_5__[\"default\"]\n },\n data: function data() {\n return {\n wfInstanceDetail: {},\n // 任务实例详情\n currentInstanceId: undefined,\n instanceDetailVisible: false\n };\n },\n methods: {\n fetchWfInstanceInfo: function fetchWfInstanceInfo() {\n var that = this; // 从 router 获取 wfInstanceId\n\n var wfInstanceId = this.$route.params.wfInstanceId;\n console.log(\"wfInstanceId: \" + wfInstanceId);\n var url = \"/wfInstance/info?appId=\" + this.$store.state.appInfo.id + \"&wfInstanceId=\" + wfInstanceId;\n this.axios.get(url).then(function (res) {\n that.wfInstanceDetail = res;\n that.draw();\n });\n },\n draw: function draw() {\n var _this = this;\n\n console.log(this.wfInstanceDetail); //获取D3\n\n var g = new dagre_d3__WEBPACK_IMPORTED_MODULE_3___default.a.graphlib.Graph().setGraph({}); // 转化节点\n\n var nodes = this.wfInstanceDetail.peworkflowDAG.nodes.map(function (node) {\n // 计算颜色 1:等待上游节点,3:运行中,4:失败,5:成功,10:手动停止\n var color;\n var statusStr;\n\n switch (node.status) {\n case 3:\n color = \"#3498DB\";\n statusStr = \"运行中\";\n break;\n\n case 4:\n color = \"#EC7063\";\n statusStr = \"失败\";\n break;\n\n case 5:\n color = \"#58D68D\";\n statusStr = \"成功\";\n break;\n\n case 10:\n color = \"#F1C40F\";\n statusStr = \"手动停止\";\n break;\n\n default:\n color = \"#CACFD2\";\n statusStr = \"等待上游节点\";\n break;\n }\n\n var l = \"任务ID: \" + node.jobId + \"\\n\" + \"任务名称:\" + node.jobName + \"\\n\" + \"状态:\" + statusStr + \"\\n\" + \"任务实例ID:\" + node.instanceId;\n return {\n id: node.jobId,\n label: l,\n color: color\n };\n }); // 添加节点\n\n nodes.forEach(function (node) {\n g.setNode(node.id, node); // 设置颜色\n\n g.node(node.id).style = 'fill:' + node.color;\n }); // 链接关系\n\n this.wfInstanceDetail.peworkflowDAG.edges.forEach(function (item) {\n g.setEdge(item.from, item.to, {});\n }); //绘制图形\n\n var svg = d3__WEBPACK_IMPORTED_MODULE_4__[\"select\"](\"svg\"),\n inner = svg.select(\"g\"); //缩放\n\n var zoom = d3__WEBPACK_IMPORTED_MODULE_4__[\"zoom\"]().on(\"zoom\", function () {\n inner.attr(\"transform\", d3__WEBPACK_IMPORTED_MODULE_4__[\"event\"].transform);\n });\n svg.call(zoom);\n var render = new dagre_d3__WEBPACK_IMPORTED_MODULE_3___default.a.render();\n render(inner, g);\n inner.selectAll(\"g.node\").on(\"click\", function (e) {\n _this.wfInstanceDetail.peworkflowDAG.nodes.forEach(function (node) {\n if (node.jobId == e) {\n if (node.instanceId == undefined) {\n _this.$message.warning(\"等待上游任务中...未生成任务实例,无法查看详情!\");\n } else {\n _this.currentInstanceId = node.instanceId;\n _this.instanceDetailVisible = true;\n }\n }\n });\n });\n },\n back: function back() {\n this.$router.go(-1);\n }\n },\n mounted: function mounted() {\n console.log(\"Welcome to WorkflowInstanceDetail!\");\n this.fetchWfInstanceInfo();\n }\n});\n\n//# sourceURL=webpack:///./src/components/dag/WorkflowInstanceDetail.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -20,7 +20,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 1 } },\n [\n _c(\n \"el-button\",\n { attrs: { type: \"primary\" }, on: { click: _vm.back } },\n [_vm._v(\"返回\")]\n )\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 1, offset: 22 } },\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"success\" },\n on: { click: _vm.fetchWfInstanceInfo }\n },\n [_vm._v(\"刷新\")]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 24 } }, [\n _vm._v(\" 工作流整体状态: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.statusStr))\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 8 } }, [\n _vm._v(\" 工作流ID: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.workflowId))\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 16 } }, [\n _vm._v(\" 工作流实例ID: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.wfInstanceId))\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 8 } }, [\n _vm._v(\" 触发时间: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.actualTriggerTime))\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 8 } }, [\n _vm._v(\" 结束时间: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.finishedTime))\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 24 } }, [\n _vm._v(\" 执行结果: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.result))\n ])\n ])\n ],\n 1\n ),\n _c(\"el-row\", [\n _c(\"div\", [\n _c(\n \"svg\",\n { attrs: { width: \"80%\", height: \"1000px\", id: \"svgCanvas\" } },\n [_c(\"g\"), _c(\"rect\")]\n )\n ])\n ]),\n _vm.instanceDetailVisible\n ? _c(\n \"el-dialog\",\n {\n attrs: {\n title: \"任务实例详情\",\n visible: _vm.instanceDetailVisible\n },\n on: {\n \"update:visible\": function($event) {\n _vm.instanceDetailVisible = $event\n }\n }\n },\n [\n _c(\"InstanceDetail\", {\n attrs: { \"instance-id\": _vm.currentInstanceId }\n })\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/dag/WorkflowInstanceDetail.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22dddd77cc-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 1 } },\n [\n _c(\n \"el-button\",\n { attrs: { type: \"primary\" }, on: { click: _vm.back } },\n [_vm._v(\"返回\")]\n )\n ],\n 1\n ),\n _c(\n \"el-col\",\n { attrs: { span: 1, offset: 22 } },\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"success\" },\n on: { click: _vm.fetchWfInstanceInfo }\n },\n [_vm._v(\"刷新\")]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 24 } }, [\n _vm._v(\" 工作流整体状态: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.statusStr))\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 8 } }, [\n _vm._v(\" 工作流ID: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.workflowId))\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 16 } }, [\n _vm._v(\" 工作流实例ID: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.wfInstanceId))\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 8 } }, [\n _vm._v(\" 触发时间: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.actualTriggerTime))\n ])\n ]),\n _c(\"el-col\", { attrs: { span: 8 } }, [\n _vm._v(\" 结束时间: \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.finishedTime))\n ])\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\"el-col\", { attrs: { span: 24 } }, [\n _vm._v(\" 执行结果(tips:点击节点可查看任务实例详情): \"),\n _c(\"span\", { staticClass: \"title\" }, [\n _vm._v(_vm._s(_vm.wfInstanceDetail.result))\n ])\n ])\n ],\n 1\n ),\n _c(\"el-row\", [\n _c(\"div\", [\n _c(\n \"svg\",\n { attrs: { width: \"80%\", height: \"1000px\", id: \"svgCanvas\" } },\n [_c(\"g\"), _c(\"rect\")]\n )\n ])\n ]),\n _vm.instanceDetailVisible\n ? _c(\n \"el-dialog\",\n {\n attrs: {\n title: \"任务实例详情\",\n visible: _vm.instanceDetailVisible\n },\n on: {\n \"update:visible\": function($event) {\n _vm.instanceDetailVisible = $event\n }\n }\n },\n [\n _c(\"InstanceDetail\", {\n attrs: { \"instance-id\": _vm.currentInstanceId }\n })\n ],\n 1\n )\n : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/dag/WorkflowInstanceDetail.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22dddd77cc-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/oh-my-scheduler-server/src/main/resources/static/js/8.js b/oh-my-scheduler-server/src/main/resources/static/js/8.js index c30b39c6..015a4dd5 100644 --- a/oh-my-scheduler-server/src/main/resources/static/js/8.js +++ b/oh-my-scheduler-server/src/main/resources/static/js/8.js @@ -8,7 +8,7 @@ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/InstanceDetail */ \"./src/components/common/InstanceDetail.vue\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"InstanceManager\",\n components: {\n InstanceDetail: _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n data: function data() {\n return {\n // 实例查询对象\n instanceQueryContent: {\n appId: this.$store.state.appInfo.id,\n index: 0,\n pageSize: 10,\n instanceId: undefined,\n wfInstanceId: undefined,\n jobId: undefined,\n type: \"NORMAL\"\n },\n // 实例查询结果\n instancePageResult: {\n pageSize: 10,\n totalItems: 0,\n data: []\n },\n // 详细信息弹出框是否可见\n instanceDetailVisible: false,\n // 日志查询对象\n logQueryContent: {\n instanceId: undefined,\n index: 0\n },\n // 日志对象\n paginableInstanceLog: {\n index: 0,\n totalPages: 0,\n data: \"\"\n },\n // 日志弹出框是否可见\n instanceLogVisible: false,\n currentInstanceId: undefined\n };\n },\n methods: {\n // 查询任务实例信息\n listInstanceInfos: function listInstanceInfos() {\n var that = this;\n that.axios.post(\"/instance/list\", that.instanceQueryContent).then(function (res) {\n that.instancePageResult = res;\n });\n },\n // 点击重置按钮\n onClickRest: function onClickRest() {\n this.instanceQueryContent.jobId = undefined;\n this.instanceQueryContent.instanceId = undefined;\n this.listInstanceInfos();\n },\n // 点击查询详情\n onClickShowDetail: function onClickShowDetail(data) {\n this.instanceDetailVisible = true;\n this.currentInstanceId = data.instanceId;\n },\n // 点击停止实例\n onClickStop: function onClickStop(data) {\n var that = this;\n var url = \"/instance/stop?instanceId=\" + data.instanceId;\n this.axios.get(url).then(function () {\n that.$message.success(\"停止成功\"); // 重新加载列表\n\n that.listInstanceInfos();\n });\n },\n // 换页\n onClickChangeInstancePage: function onClickChangeInstancePage(index) {\n // 后端从0开始,前端从1开始\n this.instanceQueryContent.index = index - 1;\n this.listInstanceInfos();\n },\n instanceTableRowClassName: function instanceTableRowClassName(_ref) {\n var row = _ref.row;\n\n switch (row.status) {\n // 失败\n case 4:\n return 'error-row';\n // 成功\n\n case 5:\n return 'success-row';\n\n case 10:\n return 'warning-row';\n }\n },\n // 查看日志\n queryLog: function queryLog() {\n var that = this;\n var url = \"/instance/log?instanceId=\" + this.logQueryContent.instanceId + \"&index=\" + this.logQueryContent.index;\n this.axios.get(url).then(function (res) {\n that.paginableInstanceLog = res;\n that.instanceLogVisible = true;\n });\n },\n // 查看在线日志\n onClickShowLog: function onClickShowLog(data) {\n this.logQueryContent.instanceId = data.instanceId;\n this.logQueryContent.index = 0;\n this.queryLog();\n },\n // 查看其它页的在线日志\n onClickChangeLogPage: function onClickChangeLogPage(index) {\n this.logQueryContent.index = index - 1;\n this.queryLog();\n },\n // 下载日志\n onclickDownloadLog: function onclickDownloadLog() {\n var url = \"/instance/downloadLogUrl?instanceId=\" + this.logQueryContent.instanceId;\n this.axios.get(url).then(function (res) {\n return window.open(res);\n });\n }\n },\n mounted: function mounted() {\n this.listInstanceInfos();\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/InstanceManager.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../common/InstanceDetail */ \"./src/components/common/InstanceDetail.vue\");\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"InstanceManager\",\n components: {\n InstanceDetail: _common_InstanceDetail__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n },\n data: function data() {\n return {\n // 实例查询对象\n instanceQueryContent: {\n appId: this.$store.state.appInfo.id,\n index: 0,\n pageSize: 10,\n instanceId: undefined,\n wfInstanceId: undefined,\n jobId: undefined,\n type: \"NORMAL\"\n },\n // 实例查询结果\n instancePageResult: {\n pageSize: 10,\n totalItems: 0,\n data: []\n },\n // 详细信息弹出框是否可见\n instanceDetailVisible: false,\n // 日志查询对象\n logQueryContent: {\n instanceId: undefined,\n index: 0\n },\n // 日志对象\n paginableInstanceLog: {\n index: 0,\n totalPages: 0,\n data: \"\"\n },\n // 日志弹出框是否可见\n instanceLogVisible: false,\n currentInstanceId: undefined\n };\n },\n methods: {\n // 查询任务实例信息\n listInstanceInfos: function listInstanceInfos() {\n var that = this;\n that.axios.post(\"/instance/list\", that.instanceQueryContent).then(function (res) {\n that.instancePageResult = res;\n });\n },\n // 点击重置按钮\n onClickRest: function onClickRest() {\n this.instanceQueryContent.jobId = undefined;\n this.instanceQueryContent.instanceId = undefined;\n this.instanceQueryContent.wfInstanceId = undefined;\n this.listInstanceInfos();\n },\n // 点击查询详情\n onClickShowDetail: function onClickShowDetail(data) {\n this.instanceDetailVisible = true;\n this.currentInstanceId = data.instanceId;\n },\n // 点击停止实例\n onClickStop: function onClickStop(data) {\n var that = this;\n var url = \"/instance/stop?instanceId=\" + data.instanceId;\n this.axios.get(url).then(function () {\n that.$message.success(\"停止成功\"); // 重新加载列表\n\n that.listInstanceInfos();\n });\n },\n // 换页\n onClickChangeInstancePage: function onClickChangeInstancePage(index) {\n // 后端从0开始,前端从1开始\n this.instanceQueryContent.index = index - 1;\n this.listInstanceInfos();\n },\n instanceTableRowClassName: function instanceTableRowClassName(_ref) {\n var row = _ref.row;\n\n switch (row.status) {\n // 失败\n case 4:\n return 'error-row';\n // 成功\n\n case 5:\n return 'success-row';\n\n case 10:\n return 'warning-row';\n }\n },\n // 查看日志\n queryLog: function queryLog() {\n var that = this;\n var url = \"/instance/log?instanceId=\" + this.logQueryContent.instanceId + \"&index=\" + this.logQueryContent.index;\n this.axios.get(url).then(function (res) {\n that.paginableInstanceLog = res;\n that.instanceLogVisible = true;\n });\n },\n // 查看在线日志\n onClickShowLog: function onClickShowLog(data) {\n this.logQueryContent.instanceId = data.instanceId;\n this.logQueryContent.index = 0;\n this.queryLog();\n },\n // 查看其它页的在线日志\n onClickChangeLogPage: function onClickChangeLogPage(index) {\n this.logQueryContent.index = index - 1;\n this.queryLog();\n },\n // 下载日志\n onclickDownloadLog: function onclickDownloadLog() {\n var url = \"/instance/downloadLogUrl?instanceId=\" + this.logQueryContent.instanceId;\n this.axios.get(url).then(function (res) {\n return window.open(res);\n });\n }\n },\n mounted: function mounted() {\n this.listInstanceInfos();\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/InstanceManager.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/oh-my-scheduler-server/src/main/resources/static/js/9.js b/oh-my-scheduler-server/src/main/resources/static/js/9.js index ea7e095d..07723edd 100644 --- a/oh-my-scheduler-server/src/main/resources/static/js/9.js +++ b/oh-my-scheduler-server/src/main/resources/static/js/9.js @@ -20,7 +20,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n/ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"wf_instance_manager\" } },\n [\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 20 } },\n [\n _c(\n \"el-form\",\n {\n staticClass: \"el-form--inline\",\n attrs: { inline: true, model: _vm.wfInstanceQueryContent }\n },\n [\n _c(\n \"el-form-item\",\n { attrs: { label: \"工作流实例ID\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"工作流实例ID\" },\n model: {\n value: _vm.wfInstanceQueryContent.wfInstanceId,\n callback: function($$v) {\n _vm.$set(\n _vm.wfInstanceQueryContent,\n \"wfInstanceId\",\n $$v\n )\n },\n expression: \"wfInstanceQueryContent.wfInstanceId\"\n }\n })\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"任务ID\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"工作流ID\" },\n model: {\n value: _vm.wfInstanceQueryContent.workflowId,\n callback: function($$v) {\n _vm.$set(\n _vm.wfInstanceQueryContent,\n \"workflowId\",\n $$v\n )\n },\n expression: \"wfInstanceQueryContent.workflowId\"\n }\n })\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\" },\n on: { click: _vm.listWfInstances }\n },\n [_vm._v(\"查询\")]\n ),\n _c(\n \"el-button\",\n {\n attrs: { type: \"cancel\" },\n on: { click: _vm.onClickRest }\n },\n [_vm._v(\"重置\")]\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"el-col\", { attrs: { span: 4 } }, [\n _c(\n \"div\",\n { staticStyle: { float: \"right\", \"padding-right\": \"10px\" } },\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\" },\n on: { click: _vm.listWfInstances }\n },\n [_vm._v(\"刷新状态\")]\n )\n ],\n 1\n )\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-table\",\n {\n staticStyle: { width: \"100%\" },\n attrs: {\n data: _vm.wfInstancePageResult.data,\n \"row-class-name\": _vm.wfInstanceTableRowClassName\n }\n },\n [\n _c(\"el-table-column\", {\n attrs: { prop: \"workflowId\", label: \"工作流ID\", width: \"80\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"workflowName\", label: \"工作流名称\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"wfInstanceId\", label: \"工作流实例ID\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"statusStr\", label: \"状态\", width: \"80\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"actualTriggerTime\", label: \"触发时间\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"finishedTime\", label: \"结束时间\" }\n }),\n _c(\"el-table-column\", {\n attrs: { label: \"操作\", width: \"300\" },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function(scope) {\n return [\n _c(\n \"el-button\",\n {\n attrs: { size: \"medium\" },\n on: {\n click: function($event) {\n return _vm.onClickShowDetail(scope.row)\n }\n }\n },\n [_vm._v(\"详情\")]\n ),\n _c(\n \"el-button\",\n {\n attrs: { size: \"medium\" },\n on: {\n click: function($event) {\n return _vm.onClickStop(scope.row)\n }\n }\n },\n [_vm._v(\"停止\")]\n )\n ]\n }\n }\n ])\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 24 } },\n [\n _c(\"el-pagination\", {\n attrs: {\n total: this.wfInstancePageResult.totalItems,\n \"page-size\": this.wfInstancePageResult.pageSize,\n layout: \"prev, pager, next\"\n },\n on: { \"current-change\": _vm.onClickChangeInstancePage }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/views/WFInstanceManager.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22dddd77cc-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"wf_instance_manager\" } },\n [\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 20 } },\n [\n _c(\n \"el-form\",\n {\n staticClass: \"el-form--inline\",\n attrs: { inline: true, model: _vm.wfInstanceQueryContent }\n },\n [\n _c(\n \"el-form-item\",\n { attrs: { label: \"工作流实例ID\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"工作流实例ID\" },\n model: {\n value: _vm.wfInstanceQueryContent.wfInstanceId,\n callback: function($$v) {\n _vm.$set(\n _vm.wfInstanceQueryContent,\n \"wfInstanceId\",\n $$v\n )\n },\n expression: \"wfInstanceQueryContent.wfInstanceId\"\n }\n })\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n { attrs: { label: \"工作流ID\" } },\n [\n _c(\"el-input\", {\n attrs: { placeholder: \"工作流ID\" },\n model: {\n value: _vm.wfInstanceQueryContent.workflowId,\n callback: function($$v) {\n _vm.$set(\n _vm.wfInstanceQueryContent,\n \"workflowId\",\n $$v\n )\n },\n expression: \"wfInstanceQueryContent.workflowId\"\n }\n })\n ],\n 1\n ),\n _c(\n \"el-form-item\",\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\" },\n on: { click: _vm.listWfInstances }\n },\n [_vm._v(\"查询\")]\n ),\n _c(\n \"el-button\",\n {\n attrs: { type: \"cancel\" },\n on: { click: _vm.onClickRest }\n },\n [_vm._v(\"重置\")]\n )\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n ),\n _c(\"el-col\", { attrs: { span: 4 } }, [\n _c(\n \"div\",\n { staticStyle: { float: \"right\", \"padding-right\": \"10px\" } },\n [\n _c(\n \"el-button\",\n {\n attrs: { type: \"primary\" },\n on: { click: _vm.listWfInstances }\n },\n [_vm._v(\"刷新状态\")]\n )\n ],\n 1\n )\n ])\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-table\",\n {\n staticStyle: { width: \"100%\" },\n attrs: {\n data: _vm.wfInstancePageResult.data,\n \"row-class-name\": _vm.wfInstanceTableRowClassName\n }\n },\n [\n _c(\"el-table-column\", {\n attrs: { prop: \"workflowId\", label: \"工作流ID\", width: \"80\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"workflowName\", label: \"工作流名称\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"wfInstanceId\", label: \"工作流实例ID\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"statusStr\", label: \"状态\", width: \"80\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"actualTriggerTime\", label: \"触发时间\" }\n }),\n _c(\"el-table-column\", {\n attrs: { prop: \"finishedTime\", label: \"结束时间\" }\n }),\n _c(\"el-table-column\", {\n attrs: { label: \"操作\", width: \"300\" },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function(scope) {\n return [\n _c(\n \"el-button\",\n {\n attrs: { size: \"medium\" },\n on: {\n click: function($event) {\n return _vm.onClickShowDetail(scope.row)\n }\n }\n },\n [_vm._v(\"详情\")]\n ),\n _c(\n \"el-button\",\n {\n attrs: { size: \"medium\" },\n on: {\n click: function($event) {\n return _vm.onClickStop(scope.row)\n }\n }\n },\n [_vm._v(\"停止\")]\n )\n ]\n }\n }\n ])\n })\n ],\n 1\n )\n ],\n 1\n ),\n _c(\n \"el-row\",\n [\n _c(\n \"el-col\",\n { attrs: { span: 24 } },\n [\n _c(\"el-pagination\", {\n attrs: {\n total: this.wfInstancePageResult.totalItems,\n \"page-size\": this.wfInstancePageResult.pageSize,\n layout: \"prev, pager, next\"\n },\n on: { \"current-change\": _vm.onClickChangeInstancePage }\n })\n ],\n 1\n )\n ],\n 1\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./src/components/views/WFInstanceManager.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%22dddd77cc-vue-loader-template%22%7D!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }),