diff --git a/docker-compose.yml b/docker-compose.yml index c26d28da..d12faee8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,7 +14,7 @@ services: container_name: powerjob-mysql image: powerjob/powerjob-mysql:4.1.1 ports: - - "3306:3306" + - "3307:3306" volumes: - ./powerjob-data/powerjob-mysql:/var/lib/mysql command: --lower_case_table_names=1 diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java index 6e7ebc0b..a9d59af2 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/JobInfoVO.java @@ -187,6 +187,9 @@ public class JobInfoVO { if (!StringUtils.isEmpty(jobInfoDO.getLogConfig())) { jobInfoVO.setLogConfig(JSONObject.parseObject(jobInfoDO.getLogConfig(), LogConfig.class)); + } else { + // 不存在 job 配置时防止前端报错 + jobInfoVO.setLogConfig(new LogConfig()); } return jobInfoVO; diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/banner.txt b/powerjob-server/powerjob-server-starter/src/main/resources/banner.txt index f3a81eb7..6ca0bdbc 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/banner.txt +++ b/powerjob-server/powerjob-server-starter/src/main/resources/banner.txt @@ -12,3 +12,4 @@ ${AnsiColor.BRIGHT_RED} * OfficialWebsite: http://www.powerjob.tech/ * SourceCode: https://github.com/PowerJob/PowerJob * PoweredBy: SpringBoot${spring-boot.formatted-version} & Akka (v2.6.12) & Vert.x (v4.0.2) +${AnsiColor.DEFAULT} \ No newline at end of file diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/4.js b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/4.js index d1322099..4df5260d 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/4.js +++ b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/4.js @@ -20,7 +20,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_TimeExpressionValidator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/TimeExpressionValidator */ \"./src/components/common/TimeExpressionValidator.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"JobManager\",\n components: {\n TimeExpressionValidator: _common_TimeExpressionValidator__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n\n data() {\n return {\n modifiedJobFormVisible: false,\n // 新建任务对象\n modifiedJobForm: {\n id: undefined,\n jobName: \"\",\n jobDescription: \"\",\n appId: this.$store.state.appInfo.id,\n jobParams: \"\",\n timeExpressionType: \"\",\n timeExpression: \"\",\n executeType: \"\",\n processorType: \"\",\n processorInfo: \"\",\n maxInstanceNum: 0,\n concurrency: 5,\n instanceTimeLimit: 0,\n instanceRetryNum: 0,\n taskRetryNum: 1,\n minCpuCores: 0,\n minMemorySpace: 0,\n minDiskSpace: 0,\n enable: true,\n designatedWorkers: \"\",\n maxWorkerCount: 0,\n notifyUserIds: [],\n lifeCycle: null,\n alarmConfig: {\n alertThreshold: undefined,\n statisticWindowLen: undefined,\n silenceWindowLen: undefined\n },\n logConfig: {\n type: 1,\n level: undefined,\n loggerName: undefined\n }\n },\n // 任务查询请求对象\n jobQueryContent: {\n appId: this.$store.state.appInfo.id,\n index: 0,\n pageSize: 10,\n jobId: undefined,\n keyword: undefined\n },\n // 任务列表(查询结果),包含index、pageSize、totalPages、totalItems、data(List类型)\n jobInfoPageResult: {\n pageSize: 10,\n totalItems: 0,\n data: []\n },\n // 时间表达式选择类型\n timeExpressionTypeOptions: [{\n key: \"API\",\n label: \"API\"\n }, {\n key: \"CRON\",\n label: \"CRON\"\n }, {\n key: \"FIXED_RATE\",\n label: this.$t('message.fixRate')\n }, {\n key: \"FIXED_DELAY\",\n label: this.$t('message.fixDelay')\n }, {\n key: \"WORKFLOW\",\n label: this.$t('message.workflow')\n }],\n // 处理器类型\n processorTypeOptions: [{\n key: \"BUILT_IN\",\n label: this.$t('message.builtIn')\n }, {\n key: \"EXTERNAL\",\n label: this.$t('message.external')\n }],\n // {key: \"SHELL\", label: \"SHELL\"}, {key: \"PYTHON\", label: \"PYTHON\"}\n // 执行方式类型\n executeTypeOptions: [{\n key: \"STANDALONE\",\n label: this.$t('message.standalone')\n }, {\n key: \"BROADCAST\",\n label: this.$t('message.broadcast')\n }, {\n key: \"MAP\",\n label: this.$t('message.map')\n }, {\n key: \"MAP_REDUCE\",\n label: this.$t('message.mapReduce')\n }],\n // 日志级别\n logLevel: [{\n key: 1,\n label: 'DEBUG'\n }, {\n key: 2,\n label: 'INFO'\n }, {\n key: 3,\n label: 'WARN'\n }, {\n key: 4,\n label: 'ERROR'\n }, {\n key: 99,\n label: 'OFF'\n }],\n // 日志类型\n logType: [{\n key: 1,\n label: 'ONLINE'\n }, {\n key: 2,\n label: 'LOCAL'\n }],\n // 用户列表\n userList: [],\n // 时间表达式校验窗口\n timeExpressionValidatorVisible: false,\n // 临时存储的行数据\n temporaryRowData: null,\n // 运行参数\n runParameter: null,\n // 运行loading\n runLoading: false\n };\n },\n\n methods: {\n // 保存变更,包括新增和修改\n async saveJob() {\n const {\n lifeCycle,\n alarmConfig\n } = this.modifiedJobForm;\n\n if (lifeCycle && Array.isArray(lifeCycle)) {\n const start = lifeCycle[0];\n const end = lifeCycle[1];\n this.modifiedJobForm.lifeCycle = {\n start,\n end\n };\n }\n\n if (!alarmConfig.alertThreshold) {\n alarmConfig.alertThreshold = 0;\n }\n\n if (!alarmConfig.statisticWindowLen) {\n alarmConfig.statisticWindowLen = 0;\n }\n\n if (!alarmConfig.silenceWindowLen) {\n alarmConfig.silenceWindowLen = 0;\n }\n\n this.modifiedJobForm.alarmConfig = alarmConfig;\n await this.axios.post(\"/job/save\", this.modifiedJobForm);\n this.modifiedJobFormVisible = false;\n this.$message.success(this.$t('message.success'));\n this.listJobInfos();\n },\n\n // 列出符合当前搜索条件的任务\n listJobInfos() {\n const that = this;\n this.axios.post(\"/job/list\", this.jobQueryContent).then(res => {\n console.log(res);\n\n if (res && res.data) {\n res.data = res.data.map(item => {\n const lifeCycle = item.lifeCycle;\n\n if (lifeCycle && lifeCycle.start && lifeCycle.end) {\n item.lifeCycle = [lifeCycle.start, lifeCycle.end];\n } else {\n item.lifeCycle = null;\n }\n\n return item;\n });\n }\n\n that.jobInfoPageResult = res;\n });\n },\n\n // 修改任务状态\n changeJobStatus(data) {\n // switch 会自动更改 enable 的值\n let that = this;\n\n if (data.enable === false) {\n // 仅有,有特殊逻辑(关闭秒级任务),走单独接口\n that.axios.get(\"/job/disable?jobId=\" + data.id).then(() => that.listJobInfos());\n } else {\n // 启用,则发起正常的保存操作\n this.modifiedJobForm = data;\n this.saveJob();\n }\n },\n\n // 新增任务,去除旧数据\n onClickNewJob() {\n this.modifiedJobForm.id = undefined;\n this.modifiedJobForm.jobName = undefined;\n this.modifiedJobForm.jobDescription = undefined;\n this.modifiedJobForm.jobParams = undefined;\n this.modifiedJobForm.timeExpression = undefined;\n this.modifiedJobForm.timeExpressionType = undefined;\n this.modifiedJobForm.processorInfo = undefined;\n this.modifiedJobForm.processorType = undefined;\n this.modifiedJobForm.executeType = undefined;\n this.modifiedJobForm.lifeCycle = null;\n this.modifiedJobForm.alarmConfig = {\n alertThreshold: undefined,\n statisticWindowLen: undefined,\n silenceWindowLen: undefined\n };\n this.modifiedJobFormVisible = true;\n },\n\n // 点击 编辑按钮\n onClickModify(data) {\n // 修复点击编辑后再点击新增 行数据被清空 的问题\n if (!data.alarmConfig) {\n data.alarmConfig = {\n alertThreshold: undefined,\n statisticWindowLen: undefined,\n silenceWindowLen: undefined\n };\n }\n\n if (!data.lifeCycle) {\n data.lifeCycle = null;\n }\n\n this.modifiedJobForm = JSON.parse(JSON.stringify(data));\n this.modifiedJobFormVisible = true;\n },\n\n // 点击 立即运行按钮\n onClickRun(data) {\n let that = this;\n let url = \"/job/run?jobId=\" + data.id + \"&appId=\" + that.$store.state.appInfo.id;\n\n if (this.temporaryRowData && this.runParameter) {\n url += `&instanceParams=${encodeURIComponent(this.runParameter)}`;\n }\n\n this.runLoading = true;\n this.axios.get(url).then(() => {\n that.$message.success(this.$t('message.success'));\n this.temporaryRowData = null;\n this.runLoading = false;\n }).catch(() => {\n this.runLoading = false;\n });\n },\n\n // 参数运行\n onClickRunByParameter(data) {\n this.temporaryRowData = data;\n },\n\n // 取消参数运行\n onClickRunCancel() {\n this.temporaryRowData = null;\n this.runParameter = null;\n },\n\n // 点击 删除任务\n onClickDeleteJob(data) {\n let that = this;\n let url = \"/job/delete?jobId=\" + data.id;\n this.axios.get(url).then(() => {\n that.$message.success(this.$t('message.success'));\n that.listJobInfos();\n });\n },\n\n // 点击 复制任务\n onClickCopyJob(data) {\n let url = \"/job/copy?jobId=\" + data.id;\n let that = this;\n this.axios.post(url).then(res => {\n that.modifiedJobForm = res;\n that.modifiedJobFormVisible = true;\n });\n },\n\n // 点击 历史记录\n onClickRunHistory(data) {\n console.log(JSON.stringify(data));\n this.$router.push({\n name: 'instanceManager',\n params: {\n jobId: data.id\n }\n });\n },\n\n // 点击 换页\n onClickChangePage(index) {\n // 后端从0开始,前端从1开始\n this.jobQueryContent.index = index - 1;\n this.listJobInfos();\n },\n\n // 点击重置按钮\n onClickReset() {\n this.jobQueryContent.keyword = undefined;\n this.jobQueryContent.jobId = undefined;\n this.listJobInfos();\n },\n\n verifyPlaceholder(processorType) {\n let res;\n\n switch (processorType) {\n case \"BUILT_IN\":\n res = this.$t('message.javaProcessorInfoPLH');\n break;\n\n case \"EXTERNAL\":\n res = this.$t('message.containerProcessorInfoPLH');\n break;\n\n case \"SHELL\":\n res = this.$t('message.shellProcessorInfoPLH');\n break;\n\n case \"PYTHON\":\n res = this.$t('message.pythonProcessorInfoPLH');\n }\n\n return res;\n },\n\n // 翻译执行类型\n translateExecuteType(executeType) {\n switch (executeType) {\n case \"STANDALONE\":\n return this.$t('message.standalone');\n\n case \"BROADCAST\":\n return this.$t('message.broadcast');\n\n case \"MAP_REDUCE\":\n return this.$t('message.mapReduce');\n\n case \"MAP\":\n return this.$t('message.map');\n\n default:\n return \"UNKNOWN\";\n }\n },\n\n // 翻译处理器类型\n translateProcessorType(processorType) {\n if (processorType === \"EXTERNAL\") {\n return this.$t('message.external');\n }\n\n return this.$t('message.builtIn');\n },\n\n // 点击校验\n onClickValidateTimeExpression() {\n this.timeExpressionValidatorVisible = true;\n }\n\n },\n\n mounted() {\n // 加载用户信息\n let that = this;\n that.axios.get(\"/user/list\").then(res => {\n const data = res || [];\n that.userList = data.map(item => {\n return { ...item,\n id: `${item.id}`\n };\n });\n }); // 加载任务信息\n\n this.listJobInfos();\n }\n\n});\n\n//# sourceURL=webpack:///./src/components/views/JobManager.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_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _common_TimeExpressionValidator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../common/TimeExpressionValidator */ \"./src/components/common/TimeExpressionValidator.vue\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"JobManager\",\n components: {\n TimeExpressionValidator: _common_TimeExpressionValidator__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n },\n\n data() {\n return {\n modifiedJobFormVisible: false,\n // 新建任务对象\n modifiedJobForm: {\n id: undefined,\n jobName: \"\",\n jobDescription: \"\",\n appId: this.$store.state.appInfo.id,\n jobParams: \"\",\n timeExpressionType: \"\",\n timeExpression: \"\",\n executeType: \"\",\n processorType: \"\",\n processorInfo: \"\",\n maxInstanceNum: 0,\n concurrency: 5,\n instanceTimeLimit: 0,\n instanceRetryNum: 0,\n taskRetryNum: 1,\n dispatchStrategy: undefined,\n minCpuCores: 0,\n minMemorySpace: 0,\n minDiskSpace: 0,\n enable: true,\n designatedWorkers: \"\",\n maxWorkerCount: 0,\n notifyUserIds: [],\n lifeCycle: null,\n alarmConfig: {\n alertThreshold: undefined,\n statisticWindowLen: undefined,\n silenceWindowLen: undefined\n },\n logConfig: {\n type: 1,\n level: undefined,\n loggerName: undefined\n }\n },\n // 任务查询请求对象\n jobQueryContent: {\n appId: this.$store.state.appInfo.id,\n index: 0,\n pageSize: 10,\n jobId: undefined,\n keyword: undefined\n },\n // 任务列表(查询结果),包含index、pageSize、totalPages、totalItems、data(List类型)\n jobInfoPageResult: {\n pageSize: 10,\n totalItems: 0,\n data: []\n },\n // 时间表达式选择类型\n timeExpressionTypeOptions: [{\n key: \"API\",\n label: \"API\"\n }, {\n key: \"CRON\",\n label: \"CRON\"\n }, {\n key: \"FIXED_RATE\",\n label: this.$t('message.fixRate')\n }, {\n key: \"FIXED_DELAY\",\n label: this.$t('message.fixDelay')\n }, {\n key: \"WORKFLOW\",\n label: this.$t('message.workflow')\n }],\n // 处理器类型\n processorTypeOptions: [{\n key: \"BUILT_IN\",\n label: this.$t('message.builtIn')\n }, {\n key: \"EXTERNAL\",\n label: this.$t('message.external')\n }],\n // {key: \"SHELL\", label: \"SHELL\"}, {key: \"PYTHON\", label: \"PYTHON\"}\n // 执行方式类型\n executeTypeOptions: [{\n key: \"STANDALONE\",\n label: this.$t('message.standalone')\n }, {\n key: \"BROADCAST\",\n label: this.$t('message.broadcast')\n }, {\n key: \"MAP\",\n label: this.$t('message.map')\n }, {\n key: \"MAP_REDUCE\",\n label: this.$t('message.mapReduce')\n }],\n // 日志级别\n logLevel: [{\n key: 1,\n label: 'DEBUG'\n }, {\n key: 2,\n label: 'INFO'\n }, {\n key: 3,\n label: 'WARN'\n }, {\n key: 4,\n label: 'ERROR'\n }, {\n key: 99,\n label: 'OFF'\n }],\n // 日志类型\n logType: [{\n key: 1,\n label: 'ONLINE'\n }, {\n key: 2,\n label: 'LOCAL'\n }],\n // 分发类型\n dispatchStrategy: [{\n key: 'HEALTH_FIRST',\n label: 'HEALTH_FIRST'\n }, {\n key: 'RANDOM',\n label: 'RANDOM'\n }],\n // 用户列表\n userList: [],\n // 时间表达式校验窗口\n timeExpressionValidatorVisible: false,\n // 临时存储的行数据\n temporaryRowData: null,\n // 运行参数\n runParameter: null,\n // 运行loading\n runLoading: false\n };\n },\n\n methods: {\n // 保存变更,包括新增和修改\n async saveJob() {\n const {\n lifeCycle,\n alarmConfig\n } = this.modifiedJobForm;\n\n if (lifeCycle && Array.isArray(lifeCycle)) {\n const start = lifeCycle[0];\n const end = lifeCycle[1];\n this.modifiedJobForm.lifeCycle = {\n start,\n end\n };\n }\n\n if (!alarmConfig.alertThreshold) {\n alarmConfig.alertThreshold = 0;\n }\n\n if (!alarmConfig.statisticWindowLen) {\n alarmConfig.statisticWindowLen = 0;\n }\n\n if (!alarmConfig.silenceWindowLen) {\n alarmConfig.silenceWindowLen = 0;\n }\n\n this.modifiedJobForm.alarmConfig = alarmConfig;\n await this.axios.post(\"/job/save\", this.modifiedJobForm);\n this.modifiedJobFormVisible = false;\n this.$message.success(this.$t('message.success'));\n this.listJobInfos();\n },\n\n // 列出符合当前搜索条件的任务\n listJobInfos() {\n const that = this;\n this.axios.post(\"/job/list\", this.jobQueryContent).then(res => {\n console.log(res);\n\n if (res && res.data) {\n res.data = res.data.map(item => {\n const lifeCycle = item.lifeCycle;\n\n if (lifeCycle && lifeCycle.start && lifeCycle.end) {\n item.lifeCycle = [lifeCycle.start, lifeCycle.end];\n } else {\n item.lifeCycle = null;\n }\n\n return item;\n });\n }\n\n that.jobInfoPageResult = res;\n });\n },\n\n // 修改任务状态\n changeJobStatus(data) {\n // switch 会自动更改 enable 的值\n let that = this;\n\n if (data.enable === false) {\n // 仅有,有特殊逻辑(关闭秒级任务),走单独接口\n that.axios.get(\"/job/disable?jobId=\" + data.id).then(() => that.listJobInfos());\n } else {\n // 启用,则发起正常的保存操作\n this.modifiedJobForm = data;\n this.saveJob();\n }\n },\n\n // 新增任务,去除旧数据\n onClickNewJob() {\n this.modifiedJobForm.id = undefined;\n this.modifiedJobForm.jobName = undefined;\n this.modifiedJobForm.jobDescription = undefined;\n this.modifiedJobForm.jobParams = undefined;\n this.modifiedJobForm.timeExpression = undefined;\n this.modifiedJobForm.timeExpressionType = undefined;\n this.modifiedJobForm.processorInfo = undefined;\n this.modifiedJobForm.processorType = undefined;\n this.modifiedJobForm.executeType = undefined;\n this.modifiedJobForm.lifeCycle = null;\n this.modifiedJobForm.alarmConfig = {\n alertThreshold: undefined,\n statisticWindowLen: undefined,\n silenceWindowLen: undefined\n };\n this.modifiedJobFormVisible = true;\n },\n\n // 点击 编辑按钮\n onClickModify(data) {\n // 修复点击编辑后再点击新增 行数据被清空 的问题\n if (!data.alarmConfig) {\n data.alarmConfig = {\n alertThreshold: undefined,\n statisticWindowLen: undefined,\n silenceWindowLen: undefined\n };\n }\n\n if (!data.lifeCycle) {\n data.lifeCycle = null;\n }\n\n this.modifiedJobForm = JSON.parse(JSON.stringify(data));\n this.modifiedJobFormVisible = true;\n },\n\n // 点击 立即运行按钮\n onClickRun(data) {\n let that = this;\n let url = \"/job/run?jobId=\" + data.id + \"&appId=\" + that.$store.state.appInfo.id;\n\n if (this.temporaryRowData && this.runParameter) {\n url += `&instanceParams=${encodeURIComponent(this.runParameter)}`;\n }\n\n this.runLoading = true;\n this.axios.get(url).then(() => {\n that.$message.success(this.$t('message.success'));\n this.temporaryRowData = null;\n this.runLoading = false;\n }).catch(() => {\n this.runLoading = false;\n });\n },\n\n // 参数运行\n onClickRunByParameter(data) {\n this.temporaryRowData = data;\n },\n\n // 取消参数运行\n onClickRunCancel() {\n this.temporaryRowData = null;\n this.runParameter = null;\n },\n\n // 点击 删除任务\n onClickDeleteJob(data) {\n let that = this;\n let url = \"/job/delete?jobId=\" + data.id;\n this.axios.get(url).then(() => {\n that.$message.success(this.$t('message.success'));\n that.listJobInfos();\n });\n },\n\n // 点击 复制任务\n onClickCopyJob(data) {\n let url = \"/job/copy?jobId=\" + data.id;\n let that = this;\n this.axios.post(url).then(res => {\n that.modifiedJobForm = res;\n that.modifiedJobFormVisible = true;\n });\n },\n\n // 点击 历史记录\n onClickRunHistory(data) {\n console.log(JSON.stringify(data));\n this.$router.push({\n name: 'instanceManager',\n params: {\n jobId: data.id\n }\n });\n },\n\n // 点击 换页\n onClickChangePage(index) {\n // 后端从0开始,前端从1开始\n this.jobQueryContent.index = index - 1;\n this.listJobInfos();\n },\n\n // 点击重置按钮\n onClickReset() {\n this.jobQueryContent.keyword = undefined;\n this.jobQueryContent.jobId = undefined;\n this.listJobInfos();\n },\n\n verifyPlaceholder(processorType) {\n let res;\n\n switch (processorType) {\n case \"BUILT_IN\":\n res = this.$t('message.javaProcessorInfoPLH');\n break;\n\n case \"EXTERNAL\":\n res = this.$t('message.containerProcessorInfoPLH');\n break;\n\n case \"SHELL\":\n res = this.$t('message.shellProcessorInfoPLH');\n break;\n\n case \"PYTHON\":\n res = this.$t('message.pythonProcessorInfoPLH');\n }\n\n return res;\n },\n\n // 翻译执行类型\n translateExecuteType(executeType) {\n switch (executeType) {\n case \"STANDALONE\":\n return this.$t('message.standalone');\n\n case \"BROADCAST\":\n return this.$t('message.broadcast');\n\n case \"MAP_REDUCE\":\n return this.$t('message.mapReduce');\n\n case \"MAP\":\n return this.$t('message.map');\n\n default:\n return \"UNKNOWN\";\n }\n },\n\n // 翻译处理器类型\n translateProcessorType(processorType) {\n if (processorType === \"EXTERNAL\") {\n return this.$t('message.external');\n }\n\n return this.$t('message.builtIn');\n },\n\n // 点击校验\n onClickValidateTimeExpression() {\n this.timeExpressionValidatorVisible = true;\n }\n\n },\n\n mounted() {\n // 加载用户信息\n let that = this;\n that.axios.get(\"/user/list\").then(res => {\n const data = res || [];\n that.userList = data.map(item => {\n return { ...item,\n id: `${item.id}`\n };\n });\n }); // 加载任务信息\n\n this.listJobInfos();\n }\n\n});\n\n//# sourceURL=webpack:///./src/components/views/JobManager.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"); /***/ }), @@ -44,7 +44,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (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 render() {\n var _vm = this,\n _c = _vm._self._c;\n\n return _c(\"div\", {\n attrs: {\n id: \"job_manager\"\n }\n }, [_c(\"el-row\", {\n attrs: {\n gutter: 20\n }\n }, [_c(\"el-col\", {\n attrs: {\n span: 20\n }\n }, [_c(\"el-form\", {\n staticClass: \"el-form--inline\",\n attrs: {\n inline: true,\n model: _vm.jobQueryContent\n }\n }, [_c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobId\")\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"message.jobId\")\n },\n model: {\n value: _vm.jobQueryContent.jobId,\n callback: function ($$v) {\n _vm.$set(_vm.jobQueryContent, \"jobId\", $$v);\n },\n expression: \"jobQueryContent.jobId\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.keyword\")\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"message.keyword\")\n },\n model: {\n value: _vm.jobQueryContent.keyword,\n callback: function ($$v) {\n _vm.$set(_vm.jobQueryContent, \"keyword\", $$v);\n },\n expression: \"jobQueryContent.keyword\"\n }\n })], 1), _c(\"el-form-item\", [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.listJobInfos\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.query\")))]), _c(\"el-button\", {\n attrs: {\n type: \"cancel\"\n },\n on: {\n click: _vm.onClickReset\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.reset\")))])], 1)], 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 4\n }\n }, [_c(\"div\", {\n staticStyle: {\n float: \"right\",\n \"padding-right\": \"10px\"\n }\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.onClickNewJob\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.newJob\")))])], 1)])], 1), _c(\"el-row\", [_c(\"el-table\", {\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n data: _vm.jobInfoPageResult.data\n }\n }, [_c(\"el-table-column\", {\n attrs: {\n prop: \"id\",\n label: _vm.$t(\"message.jobId\"),\n width: \"80\"\n }\n }), _c(\"el-table-column\", {\n attrs: {\n prop: \"jobName\",\n label: _vm.$t(\"message.jobName\")\n }\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.scheduleInfo\")\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_vm._v(\" \" + _vm._s(scope.row.timeExpressionType) + \" \" + _vm._s(scope.row.timeExpression) + \" \")];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.executeType\")\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_vm._v(\" \" + _vm._s(_vm.translateExecuteType(scope.row.executeType)) + \" \")];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.processorType\")\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_vm._v(\" \" + _vm._s(_vm.translateProcessorType(scope.row.processorType)) + \" \")];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.status\"),\n width: \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_c(\"el-switch\", {\n attrs: {\n \"active-color\": \"#13ce66\",\n \"inactive-color\": \"#ff4949\"\n },\n on: {\n change: function ($event) {\n return _vm.changeJobStatus(scope.row);\n }\n },\n model: {\n value: scope.row.enable,\n callback: function ($$v) {\n _vm.$set(scope.row, \"enable\", $$v);\n },\n expression: \"scope.row.enable\"\n }\n })];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.operation\"),\n width: \"150\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickModify(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.edit\")))]), _c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickRun(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.run\")))]), _c(\"el-dropdown\", {\n attrs: {\n trigger: \"click\"\n }\n }, [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.more\")))]), _c(\"el-dropdown-menu\", {\n attrs: {\n slot: \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickRunByParameter(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.runByParameter\")))])], 1), _c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickRunHistory(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.runHistory\")))])], 1), _c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickCopyJob(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.copy\")))])], 1), _c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickDeleteJob(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.delete\")))])], 1)], 1)], 1)];\n }\n }])\n })], 1)], 1), _c(\"el-row\", [_c(\"el-pagination\", {\n attrs: {\n layout: \"prev, pager, next\",\n total: this.jobInfoPageResult.totalItems,\n \"page-size\": this.jobInfoPageResult.pageSize,\n \"hide-on-single-page\": true\n },\n on: {\n \"current-change\": _vm.onClickChangePage\n }\n })], 1), _c(\"el-dialog\", {\n attrs: {\n \"close-on-click-modal\": false,\n visible: _vm.modifiedJobFormVisible,\n width: \"80%\"\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.modifiedJobFormVisible = $event;\n }\n }\n }, [_c(\"el-form\", {\n attrs: {\n model: _vm.modifiedJobForm,\n \"label-width\": \"120px\"\n }\n }, [_c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobName\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.jobName,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"jobName\", $$v);\n },\n expression: \"modifiedJobForm.jobName\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobDescription\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.jobDescription,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"jobDescription\", $$v);\n },\n expression: \"modifiedJobForm.jobDescription\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobParams\")\n }\n }, [_c(\"el-input\", {\n attrs: {\n type: \"textarea\"\n },\n model: {\n value: _vm.modifiedJobForm.jobParams,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"jobParams\", $$v);\n },\n expression: \"modifiedJobForm.jobParams\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.scheduleInfo\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.timeExpressionType\")\n },\n model: {\n value: _vm.modifiedJobForm.timeExpressionType,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"timeExpressionType\", $$v);\n },\n expression: \"modifiedJobForm.timeExpressionType\"\n }\n }, _vm._l(_vm.timeExpressionTypeOptions, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"message.timeExpressionPlaceHolder\")\n },\n model: {\n value: _vm.modifiedJobForm.timeExpression,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"timeExpression\", $$v);\n },\n expression: \"modifiedJobForm.timeExpression\"\n }\n })], 1), _c(\"el-col\", {\n attrs: {\n span: 4\n }\n }, [_c(\"el-button\", {\n staticStyle: {\n \"padding-left\": \"10px\"\n },\n attrs: {\n type: \"text\"\n },\n on: {\n click: _vm.onClickValidateTimeExpression\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.validateTimeExpression\")))])], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.lifeCycle\")\n }\n }, [_c(\"el-date-picker\", {\n attrs: {\n type: \"datetimerange\",\n \"start-placeholder\": _vm.$t(\"message.startTime\"),\n \"end-placeholder\": _vm.$t(\"message.finishedTime\"),\n \"value-format\": \"timestamp\"\n },\n model: {\n value: _vm.modifiedJobForm.lifeCycle,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"lifeCycle\", $$v);\n },\n expression: \"modifiedJobForm.lifeCycle\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.executeConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 5\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.executeType\")\n },\n model: {\n value: _vm.modifiedJobForm.executeType,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"executeType\", $$v);\n },\n expression: \"modifiedJobForm.executeType\"\n }\n }, _vm._l(_vm.executeTypeOptions, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.processorType\")\n },\n model: {\n value: _vm.modifiedJobForm.processorType,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"processorType\", $$v);\n },\n expression: \"modifiedJobForm.processorType\"\n }\n }, _vm._l(_vm.processorTypeOptions, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 13\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.verifyPlaceholder(_vm.modifiedJobForm.processorType)\n },\n model: {\n value: _vm.modifiedJobForm.processorInfo,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"processorInfo\", $$v);\n },\n expression: \"modifiedJobForm.processorInfo\"\n }\n })], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.runtimeConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.maxInstanceNum\")\n },\n model: {\n value: _vm.modifiedJobForm.maxInstanceNum,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"maxInstanceNum\", $$v);\n },\n expression: \"modifiedJobForm.maxInstanceNum\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.maxInstanceNum\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.threadConcurrency\")\n },\n model: {\n value: _vm.modifiedJobForm.concurrency,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"concurrency\", $$v);\n },\n expression: \"modifiedJobForm.concurrency\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.threadConcurrency\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.timeout\")\n },\n model: {\n value: _vm.modifiedJobForm.instanceTimeLimit,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"instanceTimeLimit\", $$v);\n },\n expression: \"modifiedJobForm.instanceTimeLimit\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.timeout\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.retryConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.taskRetryTimes\")\n },\n model: {\n value: _vm.modifiedJobForm.instanceRetryNum,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"instanceRetryNum\", $$v);\n },\n expression: \"modifiedJobForm.instanceRetryNum\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.taskRetryTimes\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.subTaskRetryTimes\")\n },\n model: {\n value: _vm.modifiedJobForm.taskRetryNum,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"taskRetryNum\", $$v);\n },\n expression: \"modifiedJobForm.taskRetryNum\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.subTaskRetryTimes\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.workerConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.minCPU\")\n },\n model: {\n value: _vm.modifiedJobForm.minCpuCores,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"minCpuCores\", $$v);\n },\n expression: \"modifiedJobForm.minCpuCores\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.minCPU\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.minMemory\")\n },\n model: {\n value: _vm.modifiedJobForm.minMemorySpace,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"minMemorySpace\", $$v);\n },\n expression: \"modifiedJobForm.minMemorySpace\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.minMemory\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.minDisk\")\n },\n model: {\n value: _vm.modifiedJobForm.minDiskSpace,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"minDiskSpace\", $$v);\n },\n expression: \"modifiedJobForm.minDiskSpace\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.minDisk\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.clusterConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 16\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.designatedWorkerAddressPLH\")\n },\n model: {\n value: _vm.modifiedJobForm.designatedWorkers,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"designatedWorkers\", $$v);\n },\n expression: \"modifiedJobForm.designatedWorkers\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.designatedWorkerAddress\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.maxWorkerNumPLH\")\n },\n model: {\n value: _vm.modifiedJobForm.maxWorkerCount,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"maxWorkerCount\", $$v);\n },\n expression: \"modifiedJobForm.maxWorkerCount\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.maxWorkerNum\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.alarmConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n style: {\n width: \"100%\"\n },\n attrs: {\n multiple: \"\",\n filterable: \"\",\n placeholder: _vm.$t(\"message.alarmSelectorPLH\")\n },\n model: {\n value: _vm.modifiedJobForm.notifyUserIds,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"notifyUserIds\", $$v);\n },\n expression: \"modifiedJobForm.notifyUserIds\"\n }\n }, _vm._l(_vm.userList, function (user) {\n return _c(\"el-option\", {\n key: user.id,\n attrs: {\n label: user.username,\n value: user.id\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.alarmConfig.alertThreshold,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.alarmConfig, \"alertThreshold\", $$v);\n },\n expression: \"modifiedJobForm.alarmConfig.alertThreshold\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.alertThreshold\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.alarmConfig.statisticWindowLen,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.alarmConfig, \"statisticWindowLen\", $$v);\n },\n expression: \"modifiedJobForm.alarmConfig.statisticWindowLen\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.statisticWindow\") + \"(s)\"))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.alarmConfig.silenceWindowLen,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.alarmConfig, \"silenceWindowLen\", $$v);\n },\n expression: \"modifiedJobForm.alarmConfig.silenceWindowLen\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.silenceWindow\") + \"(s)\"))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.logConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.logType\")\n },\n model: {\n value: _vm.modifiedJobForm.logConfig.type,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.logConfig, \"type\", $$v);\n },\n expression: \"modifiedJobForm.logConfig.type\"\n }\n }, _vm._l(_vm.logType, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_vm.modifiedJobForm.logConfig.type === 1 ? _c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.logLevel\")\n },\n model: {\n value: _vm.modifiedJobForm.logConfig.level,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.logConfig, \"level\", $$v);\n },\n expression: \"modifiedJobForm.logConfig.level\"\n }\n }, _vm._l(_vm.logLevel, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1) : _vm._e()], 1), _c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_vm.modifiedJobForm.logConfig.type === 2 ? _c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.logConfig.loggerName,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.logConfig, \"loggerName\", $$v);\n },\n expression: \"modifiedJobForm.logConfig.loggerName\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.loggerName\")))])], 2) : _vm._e()], 1)], 1)], 1), _c(\"el-form-item\", [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.saveJob\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.save\")))]), _c(\"el-button\", {\n on: {\n click: function ($event) {\n _vm.modifiedJobFormVisible = false;\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.cancel\")))])], 1)], 1)], 1), _vm.timeExpressionValidatorVisible ? _c(\"el-dialog\", {\n attrs: {\n \"close-on-click-modal\": false,\n visible: _vm.timeExpressionValidatorVisible\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.timeExpressionValidatorVisible = $event;\n }\n }\n }, [_c(\"TimeExpressionValidator\", {\n attrs: {\n \"time-expression\": _vm.modifiedJobForm.timeExpression,\n \"time-expression-type\": _vm.modifiedJobForm.timeExpressionType\n }\n })], 1) : _vm._e(), _c(\"el-dialog\", {\n attrs: {\n title: _vm.$t(\"message.runByParameter\"),\n visible: !!_vm.temporaryRowData,\n width: \"50%\"\n }\n }, [_c(\"el-input\", {\n attrs: {\n type: \"textarea\",\n rows: 4,\n placeholder: _vm.$t(\"message.enteringParameter\")\n },\n model: {\n value: _vm.runParameter,\n callback: function ($$v) {\n _vm.runParameter = $$v;\n },\n expression: \"runParameter\"\n }\n }), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.onClickRunCancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\",\n loading: _vm.runLoading\n },\n on: {\n click: function ($event) {\n return _vm.onClickRun(_vm.temporaryRowData);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.run\")))])], 1)], 1)], 1);\n};\n\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/components/views/JobManager.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%220e57932a-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./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 render() {\n var _vm = this,\n _c = _vm._self._c;\n\n return _c(\"div\", {\n attrs: {\n id: \"job_manager\"\n }\n }, [_c(\"el-row\", {\n attrs: {\n gutter: 20\n }\n }, [_c(\"el-col\", {\n attrs: {\n span: 20\n }\n }, [_c(\"el-form\", {\n staticClass: \"el-form--inline\",\n attrs: {\n inline: true,\n model: _vm.jobQueryContent\n }\n }, [_c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobId\")\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"message.jobId\")\n },\n model: {\n value: _vm.jobQueryContent.jobId,\n callback: function ($$v) {\n _vm.$set(_vm.jobQueryContent, \"jobId\", $$v);\n },\n expression: \"jobQueryContent.jobId\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.keyword\")\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"message.keyword\")\n },\n model: {\n value: _vm.jobQueryContent.keyword,\n callback: function ($$v) {\n _vm.$set(_vm.jobQueryContent, \"keyword\", $$v);\n },\n expression: \"jobQueryContent.keyword\"\n }\n })], 1), _c(\"el-form-item\", [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.listJobInfos\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.query\")))]), _c(\"el-button\", {\n attrs: {\n type: \"cancel\"\n },\n on: {\n click: _vm.onClickReset\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.reset\")))])], 1)], 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 4\n }\n }, [_c(\"div\", {\n staticStyle: {\n float: \"right\",\n \"padding-right\": \"10px\"\n }\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.onClickNewJob\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.newJob\")))])], 1)])], 1), _c(\"el-row\", [_c(\"el-table\", {\n staticStyle: {\n width: \"100%\"\n },\n attrs: {\n data: _vm.jobInfoPageResult.data\n }\n }, [_c(\"el-table-column\", {\n attrs: {\n prop: \"id\",\n label: _vm.$t(\"message.jobId\"),\n width: \"80\"\n }\n }), _c(\"el-table-column\", {\n attrs: {\n prop: \"jobName\",\n label: _vm.$t(\"message.jobName\")\n }\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.scheduleInfo\")\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_vm._v(\" \" + _vm._s(scope.row.timeExpressionType) + \" \" + _vm._s(scope.row.timeExpression) + \" \")];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.executeType\")\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_vm._v(\" \" + _vm._s(_vm.translateExecuteType(scope.row.executeType)) + \" \")];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.processorType\")\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_vm._v(\" \" + _vm._s(_vm.translateProcessorType(scope.row.processorType)) + \" \")];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.status\"),\n width: \"80\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_c(\"el-switch\", {\n attrs: {\n \"active-color\": \"#13ce66\",\n \"inactive-color\": \"#ff4949\"\n },\n on: {\n change: function ($event) {\n return _vm.changeJobStatus(scope.row);\n }\n },\n model: {\n value: scope.row.enable,\n callback: function ($$v) {\n _vm.$set(scope.row, \"enable\", $$v);\n },\n expression: \"scope.row.enable\"\n }\n })];\n }\n }])\n }), _c(\"el-table-column\", {\n attrs: {\n label: _vm.$t(\"message.operation\"),\n width: \"150\"\n },\n scopedSlots: _vm._u([{\n key: \"default\",\n fn: function (scope) {\n return [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickModify(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.edit\")))]), _c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickRun(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.run\")))]), _c(\"el-dropdown\", {\n attrs: {\n trigger: \"click\"\n }\n }, [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.more\")))]), _c(\"el-dropdown-menu\", {\n attrs: {\n slot: \"dropdown\"\n },\n slot: \"dropdown\"\n }, [_c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickRunByParameter(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.runByParameter\")))])], 1), _c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickRunHistory(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.runHistory\")))])], 1), _c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickCopyJob(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.copy\")))])], 1), _c(\"el-dropdown-item\", [_c(\"el-button\", {\n attrs: {\n size: \"mini\",\n type: \"text\"\n },\n on: {\n click: function ($event) {\n return _vm.onClickDeleteJob(scope.row);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.delete\")))])], 1)], 1)], 1)];\n }\n }])\n })], 1)], 1), _c(\"el-row\", [_c(\"el-pagination\", {\n attrs: {\n layout: \"prev, pager, next\",\n total: this.jobInfoPageResult.totalItems,\n \"page-size\": this.jobInfoPageResult.pageSize,\n \"hide-on-single-page\": true\n },\n on: {\n \"current-change\": _vm.onClickChangePage\n }\n })], 1), _c(\"el-dialog\", {\n attrs: {\n \"close-on-click-modal\": false,\n visible: _vm.modifiedJobFormVisible,\n width: \"80%\"\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.modifiedJobFormVisible = $event;\n }\n }\n }, [_c(\"el-form\", {\n attrs: {\n model: _vm.modifiedJobForm,\n \"label-width\": \"120px\"\n }\n }, [_c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobName\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.jobName,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"jobName\", $$v);\n },\n expression: \"modifiedJobForm.jobName\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobDescription\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.jobDescription,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"jobDescription\", $$v);\n },\n expression: \"modifiedJobForm.jobDescription\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.jobParams\")\n }\n }, [_c(\"el-input\", {\n attrs: {\n type: \"textarea\"\n },\n model: {\n value: _vm.modifiedJobForm.jobParams,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"jobParams\", $$v);\n },\n expression: \"modifiedJobForm.jobParams\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.scheduleInfo\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.timeExpressionType\")\n },\n model: {\n value: _vm.modifiedJobForm.timeExpressionType,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"timeExpressionType\", $$v);\n },\n expression: \"modifiedJobForm.timeExpressionType\"\n }\n }, _vm._l(_vm.timeExpressionTypeOptions, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.$t(\"message.timeExpressionPlaceHolder\")\n },\n model: {\n value: _vm.modifiedJobForm.timeExpression,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"timeExpression\", $$v);\n },\n expression: \"modifiedJobForm.timeExpression\"\n }\n })], 1), _c(\"el-col\", {\n attrs: {\n span: 4\n }\n }, [_c(\"el-button\", {\n staticStyle: {\n \"padding-left\": \"10px\"\n },\n attrs: {\n type: \"text\"\n },\n on: {\n click: _vm.onClickValidateTimeExpression\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.validateTimeExpression\")))])], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.lifeCycle\")\n }\n }, [_c(\"el-date-picker\", {\n attrs: {\n type: \"datetimerange\",\n \"start-placeholder\": _vm.$t(\"message.startTime\"),\n \"end-placeholder\": _vm.$t(\"message.finishedTime\"),\n \"value-format\": \"timestamp\"\n },\n model: {\n value: _vm.modifiedJobForm.lifeCycle,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"lifeCycle\", $$v);\n },\n expression: \"modifiedJobForm.lifeCycle\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.executeConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 5\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.executeType\")\n },\n model: {\n value: _vm.modifiedJobForm.executeType,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"executeType\", $$v);\n },\n expression: \"modifiedJobForm.executeType\"\n }\n }, _vm._l(_vm.executeTypeOptions, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.processorType\")\n },\n model: {\n value: _vm.modifiedJobForm.processorType,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"processorType\", $$v);\n },\n expression: \"modifiedJobForm.processorType\"\n }\n }, _vm._l(_vm.processorTypeOptions, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 13\n }\n }, [_c(\"el-input\", {\n attrs: {\n placeholder: _vm.verifyPlaceholder(_vm.modifiedJobForm.processorType)\n },\n model: {\n value: _vm.modifiedJobForm.processorInfo,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"processorInfo\", $$v);\n },\n expression: \"modifiedJobForm.processorInfo\"\n }\n })], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.runtimeConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.dispatchStrategy\")\n },\n model: {\n value: _vm.modifiedJobForm.dispatchStrategy,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"dispatchStrategy\", $$v);\n },\n expression: \"modifiedJobForm.dispatchStrategy\"\n }\n }, _vm._l(_vm.dispatchStrategy, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.maxInstanceNum\")\n },\n model: {\n value: _vm.modifiedJobForm.maxInstanceNum,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"maxInstanceNum\", $$v);\n },\n expression: \"modifiedJobForm.maxInstanceNum\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.maxInstanceNum\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.threadConcurrency\")\n },\n model: {\n value: _vm.modifiedJobForm.concurrency,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"concurrency\", $$v);\n },\n expression: \"modifiedJobForm.concurrency\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.threadConcurrency\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.timeout\")\n },\n model: {\n value: _vm.modifiedJobForm.instanceTimeLimit,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"instanceTimeLimit\", $$v);\n },\n expression: \"modifiedJobForm.instanceTimeLimit\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.timeout\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.retryConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.taskRetryTimes\")\n },\n model: {\n value: _vm.modifiedJobForm.instanceRetryNum,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"instanceRetryNum\", $$v);\n },\n expression: \"modifiedJobForm.instanceRetryNum\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.taskRetryTimes\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.subTaskRetryTimes\")\n },\n model: {\n value: _vm.modifiedJobForm.taskRetryNum,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"taskRetryNum\", $$v);\n },\n expression: \"modifiedJobForm.taskRetryNum\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.subTaskRetryTimes\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.workerConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.minCPU\")\n },\n model: {\n value: _vm.modifiedJobForm.minCpuCores,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"minCpuCores\", $$v);\n },\n expression: \"modifiedJobForm.minCpuCores\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.minCPU\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.minMemory\")\n },\n model: {\n value: _vm.modifiedJobForm.minMemorySpace,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"minMemorySpace\", $$v);\n },\n expression: \"modifiedJobForm.minMemorySpace\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.minMemory\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.minDisk\")\n },\n model: {\n value: _vm.modifiedJobForm.minDiskSpace,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"minDiskSpace\", $$v);\n },\n expression: \"modifiedJobForm.minDiskSpace\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.minDisk\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.clusterConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 16\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.designatedWorkerAddressPLH\")\n },\n model: {\n value: _vm.modifiedJobForm.designatedWorkers,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"designatedWorkers\", $$v);\n },\n expression: \"modifiedJobForm.designatedWorkers\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.designatedWorkerAddress\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 8\n }\n }, [_c(\"el-input\", {\n staticClass: \"ruleContent\",\n attrs: {\n placeholder: _vm.$t(\"message.maxWorkerNumPLH\")\n },\n model: {\n value: _vm.modifiedJobForm.maxWorkerCount,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"maxWorkerCount\", $$v);\n },\n expression: \"modifiedJobForm.maxWorkerCount\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.maxWorkerNum\")))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.alarmConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n style: {\n width: \"100%\"\n },\n attrs: {\n multiple: \"\",\n filterable: \"\",\n placeholder: _vm.$t(\"message.alarmSelectorPLH\")\n },\n model: {\n value: _vm.modifiedJobForm.notifyUserIds,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm, \"notifyUserIds\", $$v);\n },\n expression: \"modifiedJobForm.notifyUserIds\"\n }\n }, _vm._l(_vm.userList, function (user) {\n return _c(\"el-option\", {\n key: user.id,\n attrs: {\n label: user.username,\n value: user.id\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.alarmConfig.alertThreshold,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.alarmConfig, \"alertThreshold\", $$v);\n },\n expression: \"modifiedJobForm.alarmConfig.alertThreshold\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.alertThreshold\")))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.alarmConfig.statisticWindowLen,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.alarmConfig, \"statisticWindowLen\", $$v);\n },\n expression: \"modifiedJobForm.alarmConfig.statisticWindowLen\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.statisticWindow\") + \"(s)\"))])], 2)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.alarmConfig.silenceWindowLen,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.alarmConfig, \"silenceWindowLen\", $$v);\n },\n expression: \"modifiedJobForm.alarmConfig.silenceWindowLen\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.silenceWindow\") + \"(s)\"))])], 2)], 1)], 1)], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.logConfig\")\n }\n }, [_c(\"el-row\", [_c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.logType\")\n },\n model: {\n value: _vm.modifiedJobForm.logConfig.type,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.logConfig, \"type\", $$v);\n },\n expression: \"modifiedJobForm.logConfig.type\"\n }\n }, _vm._l(_vm.logType, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1)], 1), _c(\"el-col\", {\n attrs: {\n span: 6\n }\n }, [_vm.modifiedJobForm.logConfig.type === 1 ? _c(\"el-select\", {\n attrs: {\n placeholder: _vm.$t(\"message.logLevel\")\n },\n model: {\n value: _vm.modifiedJobForm.logConfig.level,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.logConfig, \"level\", $$v);\n },\n expression: \"modifiedJobForm.logConfig.level\"\n }\n }, _vm._l(_vm.logLevel, function (item) {\n return _c(\"el-option\", {\n key: item.key,\n attrs: {\n label: item.label,\n value: item.key\n }\n });\n }), 1) : _vm._e()], 1), _c(\"el-col\", {\n attrs: {\n span: 12\n }\n }, [_vm.modifiedJobForm.logConfig.type === 2 ? _c(\"el-input\", {\n model: {\n value: _vm.modifiedJobForm.logConfig.loggerName,\n callback: function ($$v) {\n _vm.$set(_vm.modifiedJobForm.logConfig, \"loggerName\", $$v);\n },\n expression: \"modifiedJobForm.logConfig.loggerName\"\n }\n }, [_c(\"template\", {\n slot: \"prepend\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.loggerName\")))])], 2) : _vm._e()], 1)], 1)], 1), _c(\"el-form-item\", [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: _vm.saveJob\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.save\")))]), _c(\"el-button\", {\n on: {\n click: function ($event) {\n _vm.modifiedJobFormVisible = false;\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.cancel\")))])], 1)], 1)], 1), _vm.timeExpressionValidatorVisible ? _c(\"el-dialog\", {\n attrs: {\n \"close-on-click-modal\": false,\n visible: _vm.timeExpressionValidatorVisible\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.timeExpressionValidatorVisible = $event;\n }\n }\n }, [_c(\"TimeExpressionValidator\", {\n attrs: {\n \"time-expression\": _vm.modifiedJobForm.timeExpression,\n \"time-expression-type\": _vm.modifiedJobForm.timeExpressionType\n }\n })], 1) : _vm._e(), _c(\"el-dialog\", {\n attrs: {\n title: _vm.$t(\"message.runByParameter\"),\n visible: !!_vm.temporaryRowData,\n width: \"50%\"\n }\n }, [_c(\"el-input\", {\n attrs: {\n type: \"textarea\",\n rows: 4,\n placeholder: _vm.$t(\"message.enteringParameter\")\n },\n model: {\n value: _vm.runParameter,\n callback: function ($$v) {\n _vm.runParameter = $$v;\n },\n expression: \"runParameter\"\n }\n }), _c(\"span\", {\n staticClass: \"dialog-footer\",\n attrs: {\n slot: \"footer\"\n },\n slot: \"footer\"\n }, [_c(\"el-button\", {\n on: {\n click: _vm.onClickRunCancel\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.cancel\")))]), _c(\"el-button\", {\n attrs: {\n type: \"primary\",\n loading: _vm.runLoading\n },\n on: {\n click: function ($event) {\n return _vm.onClickRun(_vm.temporaryRowData);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.run\")))])], 1)], 1)], 1);\n};\n\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/components/views/JobManager.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%220e57932a-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), diff --git a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js index 1fe46a5e..a02f8419 100644 --- a/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js +++ b/powerjob-server/powerjob-server-starter/src/main/resources/static/js/app.js @@ -687,7 +687,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var vue_ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui/lib/locale/lang/zh-CN */ \"./node_modules/element-ui/lib/locale/lang/zh-CN.js\");\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__);\n\nconst cn = {\n message: {\n // common\n 'save': '保存',\n 'cancel': '取消',\n 'refresh': '刷新',\n 'query': '查询',\n 'reset': '重置',\n 'bulkImport': '批量导入',\n 'keyword': '关键字',\n 'run': '运行',\n 'edit': '编辑',\n 'delete': '删除',\n 'success': '成功',\n 'failed': '失败',\n 'detail': '详情',\n 'download': '下载',\n 'stop': '停止',\n 'back': '返回',\n 'all': '全部',\n 'more': '| 更多',\n // 欢迎界面\n 'appRegister': '执行应用注册',\n 'userRegister': '报警用户录入',\n 'appNameInputPLH': '请输入应用名称',\n 'appName': '应用名称',\n 'appPassword': '密码',\n 'register': '注册',\n 'name': '姓名',\n 'phone': '手机号',\n 'email': '邮箱地址',\n 'webhook': 'WebHook',\n 'welcomeTitle': '欢迎使用 PowerJob!',\n 'login': '登陆',\n 'logout': '退出',\n 'changeAppInfo': '修改应用信息',\n 'newPassword': '新密码',\n 'newPassword2': '确认密码',\n 'stayLogged': '保持登录状态',\n // 左侧tab栏\n 'tabHome': '系统首页',\n 'tabJobManage': '任务管理',\n 'tabJobInstance': '任务实例',\n 'tabWorkflowManage': '工作流管理',\n 'tabWfInstance': '工作流实例',\n 'tabContainerOps': '容器',\n 'tabTemplate': '模版生成',\n 'tabContainerManager': '容器运维',\n // 系统首页\n 'omsServerTime': '调度服务器时间',\n 'omsServerTimezone': '调度服务器时区',\n 'localBrowserTime': '本地时间',\n 'localBrowserTimezone': '本地时区',\n 'githubURL': '项目地址',\n 'docURL': '文档地址',\n 'totalJobNum': '任务总数',\n 'runningInstanceNum': '当前运行实例数',\n 'recentFailedInstanceNum': '近期失败任务数',\n 'workerNum': '集群机器数',\n 'workerAddress': '机器地址',\n 'cpuLoad': 'CPU 占用',\n 'memoryLoad': '内存占用',\n 'diskLoad': '磁盘占用',\n 'lastActiveTime': '上次在线时间',\n // 任务管理\n 'jobId': '任务 ID',\n 'instanceId': '任务实例 ID',\n 'jobName': '任务名称',\n 'scheduleInfo': '定时信息',\n 'executeType': '执行类型',\n 'processorType': '处理器类型',\n 'status': '状态',\n 'operation': '操作',\n 'newJob': '新建任务',\n 'jobDescription': '任务描述',\n 'jobParams': '任务参数',\n 'timeExpressionType': '时间表达式类型',\n 'timeExpressionPlaceHolder': 'CRON 填写 CRON 表达式,秒级任务填写整数,API 无需填写',\n 'executeConfig': '执行配置',\n 'javaProcessorInfoPLH': '全限定类名,eg:tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': '容器ID#全限定类名,eg:1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'SHELL 脚本文件内容',\n 'pythonProcessorInfoPLH': 'Python 脚本文件内容',\n 'runtimeConfig': '运行时配置',\n 'maxInstanceNum': '最大实例数',\n 'threadConcurrency': '单机线程并发度',\n 'timeout': '运行时间限制(毫秒)',\n 'retryConfig': '重试配置',\n 'taskRetryTimes': 'Instance 重试次数',\n 'subTaskRetryTimes': \"Task 重试次数\",\n 'workerConfig': '机器配置',\n 'minCPU': '最低 CPU 核心数',\n 'minMemory': '最低内存(GB)',\n 'minDisk': '最低磁盘空间(GB)',\n 'clusterConfig': '集群配置',\n 'designatedWorkerAddress': '执行机器地址',\n 'designatedWorkerAddressPLH': '执行机器地址(可选,不指定代表全部;多值英文逗号分割)',\n 'maxWorkerNum': '最大执行机器数量',\n 'maxWorkerNumPLH': '最大执行机器数量(0代表不限)',\n 'alarmConfig': '报警配置',\n 'logConfig': '日志配置',\n 'logType': '日志类型',\n 'logLevel': '日志级别',\n 'loggerName': 'Logger名称',\n 'alarmSelectorPLH': '选择报警通知人员',\n 'standalone': '单机执行',\n 'broadcast': '广播执行',\n 'map': 'Map执行',\n 'mapReduce': 'MapReduce 执行',\n 'fixRate': '固定频率(毫秒)',\n 'fixDelay': '固定延迟(毫秒)',\n 'workflow': '工作流',\n 'validateTimeExpression': '校验定时参数',\n 'javaContainer': 'Java(容器)',\n 'runHistory': '运行记录',\n 'reRun': '重试',\n 'builtIn': '内建',\n 'external': '外置(动态加载)',\n // 任务实例管理\n 'wfInstanceId': '工作流实例 ID',\n 'normalInstance': '普通任务实例',\n 'wfInstance': '工作流任务实例',\n 'triggerTime': '触发时间',\n 'finishedTime': '结束时间',\n 'log': '日志',\n 'runningTimes': '运行次数',\n 'taskTrackerAddress': 'TaskTracker 地址',\n 'startTime': '开始时间',\n 'expectedTriggerTime': '预计执行时间',\n 'result': '任务结果',\n 'subTaskInfo': 'Task 信息',\n // 'secondlyJobHistory': '最近 10 条秒级任务历史记录(秒级任务专用)',\n 'secondlyJobHistory': '最近 10 条秒级任务历史记录',\n 'subInstanceId': '子任务实例 ID',\n 'instanceParams': '任务实例参数',\n 'lifeCycle': '生命周期',\n 'alertThreshold': '错误阈值',\n 'statisticWindow': '统计窗口',\n 'silenceWindow': '沉默窗口',\n 'runByParameter': '参数运行',\n 'enteringParameter': '填写参数',\n // 工作流管理\n 'wfId': '工作流 ID',\n 'wfName': '工作流名称',\n 'newWorkflow': '新建工作流',\n 'wfDescription': '工作流描述',\n 'importJob': '导入任务',\n 'deleteJob': '删除任务',\n 'newStartPoint': '新增起点',\n 'newEndPoint': '新增终点',\n 'deleteEdge': '删除边',\n 'importJobTitle': \"请选择需要导入工作流的任务\",\n 'wfTimeExpressionPLH': 'CRON 填写 CRON 表达式,API 无需填写',\n 'import': '导入',\n 'ntfClickNeedDeleteNode': '请点击需要删除的节点',\n 'ntfClickStartPoint': '请点击起始节点',\n 'ntfClickTargetPoint': '请点击目标节点',\n 'ntfClickDeleteEdge': '请点击需要删除的边',\n 'ntfAddStartPointFirst': '请先添加起点!',\n 'ntfInvalidEdge': '非法操作(起点终点相同)!',\n // 工作流实例\n 'wfTips': 'tips:点击节点可查看任务实例详情',\n 'ntfClickNoInstanceNode': '未生成任务实例,无法查看详情!',\n 'wfInitParams': '启动参数',\n // 容器\n 'newContainer': '新增容器',\n 'containerType': '容器类型',\n 'containerGitURL': 'Git 仓库地址',\n 'branchName': '分支名称',\n 'username': '用户名',\n 'oldPassword': '旧密码',\n 'password': '密码',\n 'containerId': '容器 ID',\n 'containerName': '容器名称',\n 'containerVersion': '容器版本',\n 'deployTime': '部署时间',\n 'deploy': '部署',\n 'deployedWorkerList': '机器列表',\n 'uploadTips': '拖拽或点击文件后会自动上传',\n // 任务实例状态\n 'waitingDispatch': '等待派发',\n 'waitingWorkerReceive': '等待Worker接收',\n 'running': '运行中',\n 'stopped': '手动停止',\n 'canceled': '手动取消',\n 'canceleded': '已取消',\n 'wfWaiting': '等待调度',\n 'waitingUpstream': '等待上游节点',\n // 新增的提示信息\n 'noSelect': '请至少选中一条数据',\n 'nodeName': '节点名称',\n 'nodeParams': '节点参数',\n 'enable': '是否启用',\n 'skipWhenFailed': '失败跳过',\n 'fullScreen': '全屏',\n 'zoomIn': '放大',\n 'zoomOut': '缩小',\n 'autoFit': '自适应',\n 'markerSuccess': '标记成功',\n 'restart': '重试',\n 'wfContext': '上下文',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': '复制',\n 'condition': '判断节点',\n 'workflowChild': '子流程节点',\n 'importWorkflowTitle': '工作流节点引入'\n },\n ...element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0___default.a\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (cn);\n\n//# sourceURL=webpack:///./src/i18n/langs/cn.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui/lib/locale/lang/zh-CN */ \"./node_modules/element-ui/lib/locale/lang/zh-CN.js\");\n/* harmony import */ var element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0__);\n\nconst cn = {\n message: {\n // common\n 'save': '保存',\n 'cancel': '取消',\n 'refresh': '刷新',\n 'query': '查询',\n 'reset': '重置',\n 'bulkImport': '批量导入',\n 'keyword': '关键字',\n 'run': '运行',\n 'edit': '编辑',\n 'delete': '删除',\n 'success': '成功',\n 'failed': '失败',\n 'detail': '详情',\n 'download': '下载',\n 'stop': '停止',\n 'back': '返回',\n 'all': '全部',\n 'more': '| 更多',\n // 欢迎界面\n 'appRegister': '执行应用注册',\n 'userRegister': '报警用户录入',\n 'appNameInputPLH': '请输入应用名称',\n 'appName': '应用名称',\n 'appPassword': '密码',\n 'register': '注册',\n 'name': '姓名',\n 'phone': '手机号',\n 'email': '邮箱地址',\n 'webhook': 'WebHook',\n 'welcomeTitle': '欢迎使用 PowerJob!',\n 'login': '登陆',\n 'logout': '退出',\n 'changeAppInfo': '修改应用信息',\n 'newPassword': '新密码',\n 'newPassword2': '确认密码',\n 'stayLogged': '保持登录状态',\n // 左侧tab栏\n 'tabHome': '系统首页',\n 'tabJobManage': '任务管理',\n 'tabJobInstance': '任务实例',\n 'tabWorkflowManage': '工作流管理',\n 'tabWfInstance': '工作流实例',\n 'tabContainerOps': '容器',\n 'tabTemplate': '模版生成',\n 'tabContainerManager': '容器运维',\n // 系统首页\n 'omsServerTime': '调度服务器时间',\n 'omsServerTimezone': '调度服务器时区',\n 'localBrowserTime': '本地时间',\n 'localBrowserTimezone': '本地时区',\n 'githubURL': '项目地址',\n 'docURL': '文档地址',\n 'totalJobNum': '任务总数',\n 'runningInstanceNum': '当前运行实例数',\n 'recentFailedInstanceNum': '近期失败任务数',\n 'workerNum': '集群机器数',\n 'workerAddress': '机器地址',\n 'cpuLoad': 'CPU 占用',\n 'memoryLoad': '内存占用',\n 'diskLoad': '磁盘占用',\n 'lastActiveTime': '上次在线时间',\n // 任务管理\n 'jobId': '任务 ID',\n 'instanceId': '任务实例 ID',\n 'jobName': '任务名称',\n 'scheduleInfo': '定时信息',\n 'executeType': '执行类型',\n 'processorType': '处理器类型',\n 'status': '状态',\n 'operation': '操作',\n 'newJob': '新建任务',\n 'jobDescription': '任务描述',\n 'jobParams': '任务参数',\n 'timeExpressionType': '时间表达式类型',\n 'dispatchStrategy': '分发策略',\n 'timeExpressionPlaceHolder': 'CRON 填写 CRON 表达式,秒级任务填写整数,API 无需填写',\n 'executeConfig': '执行配置',\n 'javaProcessorInfoPLH': '全限定类名,eg:tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': '容器ID#全限定类名,eg:1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'SHELL 脚本文件内容',\n 'pythonProcessorInfoPLH': 'Python 脚本文件内容',\n 'runtimeConfig': '运行时配置',\n 'maxInstanceNum': '最大实例数',\n 'threadConcurrency': '单机线程并发度',\n 'timeout': '运行时间限制(毫秒)',\n 'retryConfig': '重试配置',\n 'taskRetryTimes': 'Instance 重试次数',\n 'subTaskRetryTimes': \"Task 重试次数\",\n 'workerConfig': '机器配置',\n 'minCPU': '最低 CPU 核心数',\n 'minMemory': '最低内存(GB)',\n 'minDisk': '最低磁盘空间(GB)',\n 'clusterConfig': '集群配置',\n 'designatedWorkerAddress': '执行机器地址',\n 'designatedWorkerAddressPLH': '执行机器地址(可选,不指定代表全部;多值英文逗号分割)',\n 'maxWorkerNum': '最大执行机器数量',\n 'maxWorkerNumPLH': '最大执行机器数量(0代表不限)',\n 'alarmConfig': '报警配置',\n 'logConfig': '日志配置',\n 'logType': '日志类型',\n 'logLevel': '日志级别',\n 'loggerName': 'Logger名称',\n 'alarmSelectorPLH': '选择报警通知人员',\n 'standalone': '单机执行',\n 'broadcast': '广播执行',\n 'map': 'Map执行',\n 'mapReduce': 'MapReduce 执行',\n 'fixRate': '固定频率(毫秒)',\n 'fixDelay': '固定延迟(毫秒)',\n 'workflow': '工作流',\n 'validateTimeExpression': '校验定时参数',\n 'javaContainer': 'Java(容器)',\n 'runHistory': '运行记录',\n 'reRun': '重试',\n 'builtIn': '内建',\n 'external': '外置(动态加载)',\n // 任务实例管理\n 'wfInstanceId': '工作流实例 ID',\n 'normalInstance': '普通任务实例',\n 'wfInstance': '工作流任务实例',\n 'triggerTime': '触发时间',\n 'finishedTime': '结束时间',\n 'log': '日志',\n 'runningTimes': '运行次数',\n 'taskTrackerAddress': 'TaskTracker 地址',\n 'startTime': '开始时间',\n 'expectedTriggerTime': '预计执行时间',\n 'result': '任务结果',\n 'subTaskInfo': 'Task 信息',\n // 'secondlyJobHistory': '最近 10 条秒级任务历史记录(秒级任务专用)',\n 'secondlyJobHistory': '最近 10 条秒级任务历史记录',\n 'subInstanceId': '子任务实例 ID',\n 'instanceParams': '任务实例参数',\n 'lifeCycle': '生命周期',\n 'alertThreshold': '错误阈值',\n 'statisticWindow': '统计窗口',\n 'silenceWindow': '沉默窗口',\n 'runByParameter': '参数运行',\n 'enteringParameter': '填写参数',\n // 工作流管理\n 'wfId': '工作流 ID',\n 'wfName': '工作流名称',\n 'newWorkflow': '新建工作流',\n 'wfDescription': '工作流描述',\n 'importJob': '导入任务',\n 'deleteJob': '删除任务',\n 'newStartPoint': '新增起点',\n 'newEndPoint': '新增终点',\n 'deleteEdge': '删除边',\n 'importJobTitle': \"请选择需要导入工作流的任务\",\n 'wfTimeExpressionPLH': 'CRON 填写 CRON 表达式,API 无需填写',\n 'import': '导入',\n 'ntfClickNeedDeleteNode': '请点击需要删除的节点',\n 'ntfClickStartPoint': '请点击起始节点',\n 'ntfClickTargetPoint': '请点击目标节点',\n 'ntfClickDeleteEdge': '请点击需要删除的边',\n 'ntfAddStartPointFirst': '请先添加起点!',\n 'ntfInvalidEdge': '非法操作(起点终点相同)!',\n // 工作流实例\n 'wfTips': 'tips:点击节点可查看任务实例详情',\n 'ntfClickNoInstanceNode': '未生成任务实例,无法查看详情!',\n 'wfInitParams': '启动参数',\n // 容器\n 'newContainer': '新增容器',\n 'containerType': '容器类型',\n 'containerGitURL': 'Git 仓库地址',\n 'branchName': '分支名称',\n 'username': '用户名',\n 'oldPassword': '旧密码',\n 'password': '密码',\n 'containerId': '容器 ID',\n 'containerName': '容器名称',\n 'containerVersion': '容器版本',\n 'deployTime': '部署时间',\n 'deploy': '部署',\n 'deployedWorkerList': '机器列表',\n 'uploadTips': '拖拽或点击文件后会自动上传',\n // 任务实例状态\n 'waitingDispatch': '等待派发',\n 'waitingWorkerReceive': '等待Worker接收',\n 'running': '运行中',\n 'stopped': '手动停止',\n 'canceled': '手动取消',\n 'canceleded': '已取消',\n 'wfWaiting': '等待调度',\n 'waitingUpstream': '等待上游节点',\n // 新增的提示信息\n 'noSelect': '请至少选中一条数据',\n 'nodeName': '节点名称',\n 'nodeParams': '节点参数',\n 'enable': '是否启用',\n 'skipWhenFailed': '失败跳过',\n 'fullScreen': '全屏',\n 'zoomIn': '放大',\n 'zoomOut': '缩小',\n 'autoFit': '自适应',\n 'markerSuccess': '标记成功',\n 'restart': '重试',\n 'wfContext': '上下文',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': '复制',\n 'condition': '判断节点',\n 'workflowChild': '子流程节点',\n 'importWorkflowTitle': '工作流节点引入'\n },\n ...element_ui_lib_locale_lang_zh_CN__WEBPACK_IMPORTED_MODULE_0___default.a\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (cn);\n\n//# sourceURL=webpack:///./src/i18n/langs/cn.js?"); /***/ }), @@ -699,7 +699,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var elem /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui/lib/locale/lang/en */ \"./node_modules/element-ui/lib/locale/lang/en.js\");\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0__);\n\nconst en = {\n message: {\n 'save': 'Save',\n 'cancel': 'Cancel',\n 'refresh': 'Refresh',\n 'query': 'Query',\n 'reset': 'Reset',\n 'bulkImport': 'Bulk Import',\n 'keyword': 'Keyword',\n 'run': 'Run',\n 'edit': 'Edit',\n 'delete': 'Delete',\n 'success': 'Success',\n 'failed': 'Failed',\n 'detail': 'Detail',\n 'download': 'Download',\n 'stop': 'Stop',\n 'back': 'Back',\n 'all': 'ALL',\n 'more': '| More',\n // 欢迎界面\n 'appRegister': 'App Registration',\n 'userRegister': 'User Registration',\n 'appNameInputPLH': 'Enter The AppName',\n 'appName': 'AppName',\n 'appPassword': 'AppPassword',\n 'register': 'Register',\n 'name': 'Name',\n 'phone': 'Phone',\n 'email': 'Email',\n 'webhook': 'Webhook',\n 'welcomeTitle': 'Welcome to use PowerJob!',\n 'login': 'Login',\n 'logout': 'Logout',\n 'changeAppInfo': 'Change AppInfo',\n 'newPassword': 'New Password',\n 'newPassword2': 'Check New Password',\n 'stayLogged': 'Keep me logged in',\n 'tabHome': 'Home',\n 'tabJobManage': 'Job management',\n 'tabJobInstance': 'Job instances',\n 'tabWorkflowManage': 'Workflow management',\n 'tabWfInstance': 'Workflow instances',\n 'tabContainerOps': 'Container DevOps',\n 'tabTemplate': 'Template generator',\n 'tabContainerManager': 'Container Management',\n 'omsServerTime': 'Server Time',\n 'omsServerTimezone': 'Server Timezone',\n 'localBrowserTime': 'Local Time',\n 'localBrowserTimezone': 'Local Timezone',\n 'githubURL': 'GitHub Repo',\n 'docURL': 'Document Address',\n 'totalJobNum': 'Total job num',\n 'runningInstanceNum': 'Running instance num',\n 'recentFailedInstanceNum': 'Recent failed instance num',\n 'workerNum': 'Worker node num',\n 'workerAddress': 'Worker address',\n 'cpuLoad': 'CPU Load',\n 'memoryLoad': 'Memory Load',\n 'diskLoad': 'Disk Load',\n 'lastActiveTime': 'Last Active Time',\n // JobManage\n 'jobId': 'Job ID',\n 'instanceId': 'Instance ID',\n 'jobName': 'Job name',\n 'scheduleInfo': 'Schedule info',\n 'executeType': 'Execution type',\n 'processorType': 'Processor type',\n 'status': 'Status',\n 'operation': 'Operation',\n 'newJob': 'New job',\n 'jobDescription': 'Job description',\n 'jobParams': 'Job params',\n 'timeExpressionType': 'Time expression type',\n 'timeExpressionPlaceHolder': 'Cron expression or number of millions for fixed_rate/fixed_delay job',\n 'executeConfig': 'Execution config',\n 'javaProcessorInfoPLH': 'Classname, eg: tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': 'ContainerID#classname, eg: 1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'Shell script',\n 'pythonProcessorInfoPLH': 'Python script',\n 'runtimeConfig': 'Runtime config',\n 'maxInstanceNum': 'Max instance num',\n 'threadConcurrency': 'Thread concurrency',\n 'timeout': 'Time limit (ms)',\n 'retryConfig': 'Retry config',\n 'taskRetryTimes': 'Instance retry times',\n 'subTaskRetryTimes': \"Task retry times\",\n 'workerConfig': 'Worker config',\n 'minCPU': 'MinAvailableCPUCores',\n 'minMemory': 'MinMemory(GB)',\n 'minDisk': 'MinDisk(GB)',\n 'clusterConfig': 'Cluster config',\n 'designatedWorkerAddress': 'Designated worker address',\n 'designatedWorkerAddressPLH': 'Empty for all workers; ip:port,ip:port for specific',\n 'maxWorkerNum': 'Max worker num',\n 'maxWorkerNumPLH': '0 means no limit',\n 'alarmConfig': 'Alarm config',\n 'logConfig': 'Log Config',\n 'logType': 'Log Type',\n 'logLevel': 'Log Level',\n 'loggerName': 'Logger Name',\n 'alarmSelectorPLH': 'Alarm receiver(s)',\n 'standalone': 'Standalone',\n 'broadcast': 'Broadcast',\n 'map': 'MAP',\n 'mapReduce': 'MapReduce',\n 'fixRate': 'Fixed rate (ms)',\n 'fixDelay': 'Fixed delay (ms)',\n 'workflow': 'Workflow',\n 'validateTimeExpression': 'Validate',\n 'javaContainer': 'External',\n 'runHistory': 'History',\n 'reRun': 'Retry',\n 'builtIn': 'BUILT_IN',\n 'External': 'EXTERNAL',\n // JobInstance\n 'wfInstanceId': 'WorkflowInstanceId',\n 'normalInstance': 'Normal instance',\n 'wfInstance': 'Workflow instance',\n 'triggerTime': 'Trigger time',\n 'finishedTime': 'Finished time',\n 'log': 'Log',\n 'runningTimes': 'Running times',\n 'taskTrackerAddress': 'TaskTracker address',\n 'startTime': 'Start time',\n 'expectedTriggerTime': 'Expected trigger time',\n 'result': 'Result',\n 'subTaskInfo': 'Task info',\n 'secondlyJobHistory': 'Secondly job history',\n 'subInstanceId': 'SubInstanceId',\n 'instanceParams': 'InstanceParams',\n 'lifeCycle': 'Life cycle',\n 'alertThreshold': 'AlertThreshold',\n 'statisticWindow': 'StatisticWindow',\n 'silenceWindow': 'SilenceWindow',\n 'runByParameter': 'Run by parameter',\n 'enteringParameter': 'Entering Parameter',\n // workflowManage\n 'wfId': 'Workflow ID',\n 'wfName': 'Workflow name',\n 'newWorkflow': 'New workflow',\n 'wfDescription': 'Description',\n 'importJob': 'Import job',\n 'deleteJob': 'Delete job',\n 'newStartPoint': 'New starting point',\n 'newEndPoint': 'New ending point',\n 'deleteEdge': 'Delete edge',\n 'importJobTitle': \"Select jobs\",\n 'wfTimeExpressionPLH': 'Cron expression for CRON or empty for API',\n 'import': 'Import',\n 'ntfClickNeedDeleteNode': 'Please click on the node you want to delete.',\n 'ntfClickStartPoint': 'Please click on the start node',\n 'ntfClickTargetPoint': 'Please click on the end node',\n 'ntfClickDeleteEdge': 'Please click on the edge you want to remove.',\n 'ntfAddStartPointFirst': 'Please add the starting point first!',\n 'ntfInvalidEdge': 'Illegal operation (same origin and destination)!',\n // workflowInstance\n 'wfTips': 'tips:Click on a node to view details of the job instance',\n 'ntfClickNoInstanceNode': 'No instances have been generated, and details cannot be viewed!',\n 'wfInitParams': 'InitParams',\n // 容器\n 'newContainer': 'New container',\n 'containerType': 'Type',\n 'containerGitURL': 'Git URL',\n 'branchName': 'Branch',\n 'username': 'Username',\n 'oldPassword': 'Old password',\n 'password': 'Password',\n 'containerId': 'ID',\n 'containerName': 'Name',\n 'containerVersion': 'Version',\n 'deployTime': 'Deployed time',\n 'deploy': 'Deploy',\n 'deployedWorkerList': 'Worker list',\n 'uploadTips': 'Drag and drop or click on the file to upload it automatically',\n // 任务实例状态\n 'waitingDispatch': 'Waiting dispatch',\n 'waitingWorkerReceive': 'Waiting receive',\n 'running': 'Running',\n 'stopped': 'Stopped',\n 'canceled': 'Canceled',\n 'canceleded': 'Canceled',\n 'wfWaiting': 'Waiting',\n 'waitingUpstream': 'Waiting upstream',\n // 新增的提示信息\n 'noSelect': 'Please select at least one data item',\n 'nodeName': 'Node name',\n 'nodeParams': 'Node parameter',\n 'enable': 'Enable',\n 'skipWhenFailed': 'Allow skips when failed',\n 'fullScreen': 'Full Screen',\n 'zoomIn': 'Zoom In',\n 'zoomOut': 'Zoom out',\n 'autoFit': 'Auto Fit',\n 'markerSuccess': 'Marked Success',\n 'restart': 'restart',\n 'wfContext': 'Context',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': 'Copy',\n 'condition': 'Condition',\n 'workflowChild': 'Subprocesses',\n 'importWorkflowTitle': 'importWorkflowTitle'\n },\n ...element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0___default.a\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (en);\n\n//# sourceURL=webpack:///./src/i18n/langs/en.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! element-ui/lib/locale/lang/en */ \"./node_modules/element-ui/lib/locale/lang/en.js\");\n/* harmony import */ var element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0__);\n\nconst en = {\n message: {\n 'save': 'Save',\n 'cancel': 'Cancel',\n 'refresh': 'Refresh',\n 'query': 'Query',\n 'reset': 'Reset',\n 'bulkImport': 'Bulk Import',\n 'keyword': 'Keyword',\n 'run': 'Run',\n 'edit': 'Edit',\n 'delete': 'Delete',\n 'success': 'Success',\n 'failed': 'Failed',\n 'detail': 'Detail',\n 'download': 'Download',\n 'stop': 'Stop',\n 'back': 'Back',\n 'all': 'ALL',\n 'more': '| More',\n // 欢迎界面\n 'appRegister': 'App Registration',\n 'userRegister': 'User Registration',\n 'appNameInputPLH': 'Enter The AppName',\n 'appName': 'AppName',\n 'appPassword': 'AppPassword',\n 'register': 'Register',\n 'name': 'Name',\n 'phone': 'Phone',\n 'email': 'Email',\n 'webhook': 'Webhook',\n 'welcomeTitle': 'Welcome to use PowerJob!',\n 'login': 'Login',\n 'logout': 'Logout',\n 'changeAppInfo': 'Change AppInfo',\n 'newPassword': 'New Password',\n 'newPassword2': 'Check New Password',\n 'stayLogged': 'Keep me logged in',\n 'tabHome': 'Home',\n 'tabJobManage': 'Job management',\n 'tabJobInstance': 'Job instances',\n 'tabWorkflowManage': 'Workflow management',\n 'tabWfInstance': 'Workflow instances',\n 'tabContainerOps': 'Container DevOps',\n 'tabTemplate': 'Template generator',\n 'tabContainerManager': 'Container Management',\n 'omsServerTime': 'Server Time',\n 'omsServerTimezone': 'Server Timezone',\n 'localBrowserTime': 'Local Time',\n 'localBrowserTimezone': 'Local Timezone',\n 'githubURL': 'GitHub Repo',\n 'docURL': 'Document Address',\n 'totalJobNum': 'Total job num',\n 'runningInstanceNum': 'Running instance num',\n 'recentFailedInstanceNum': 'Recent failed instance num',\n 'workerNum': 'Worker node num',\n 'workerAddress': 'Worker address',\n 'cpuLoad': 'CPU Load',\n 'memoryLoad': 'Memory Load',\n 'diskLoad': 'Disk Load',\n 'lastActiveTime': 'Last Active Time',\n // JobManage\n 'jobId': 'Job ID',\n 'instanceId': 'Instance ID',\n 'jobName': 'Job name',\n 'scheduleInfo': 'Schedule info',\n 'executeType': 'Execution type',\n 'processorType': 'Processor type',\n 'status': 'Status',\n 'operation': 'Operation',\n 'newJob': 'New job',\n 'jobDescription': 'Job description',\n 'jobParams': 'Job params',\n 'timeExpressionType': 'Time expression type',\n 'dispatchStrategy': 'Dispatch strategy',\n 'timeExpressionPlaceHolder': 'Cron expression or number of millions for fixed_rate/fixed_delay job',\n 'executeConfig': 'Execution config',\n 'javaProcessorInfoPLH': 'Classname, eg: tech.powerjob.HelloWordProcessor',\n 'containerProcessorInfoPLH': 'ContainerID#classname, eg: 1#tech.powerjob.HelloWordProcessor',\n 'shellProcessorInfoPLH': 'Shell script',\n 'pythonProcessorInfoPLH': 'Python script',\n 'runtimeConfig': 'Runtime config',\n 'maxInstanceNum': 'Max instance num',\n 'threadConcurrency': 'Thread concurrency',\n 'timeout': 'Time limit (ms)',\n 'retryConfig': 'Retry config',\n 'taskRetryTimes': 'Instance retry times',\n 'subTaskRetryTimes': \"Task retry times\",\n 'workerConfig': 'Worker config',\n 'minCPU': 'MinAvailableCPUCores',\n 'minMemory': 'MinMemory(GB)',\n 'minDisk': 'MinDisk(GB)',\n 'clusterConfig': 'Cluster config',\n 'designatedWorkerAddress': 'Designated worker address',\n 'designatedWorkerAddressPLH': 'Empty for all workers; ip:port,ip:port for specific',\n 'maxWorkerNum': 'Max worker num',\n 'maxWorkerNumPLH': '0 means no limit',\n 'alarmConfig': 'Alarm config',\n 'logConfig': 'Log Config',\n 'logType': 'Log Type',\n 'logLevel': 'Log Level',\n 'loggerName': 'Logger Name',\n 'alarmSelectorPLH': 'Alarm receiver(s)',\n 'standalone': 'Standalone',\n 'broadcast': 'Broadcast',\n 'map': 'MAP',\n 'mapReduce': 'MapReduce',\n 'fixRate': 'Fixed rate (ms)',\n 'fixDelay': 'Fixed delay (ms)',\n 'workflow': 'Workflow',\n 'validateTimeExpression': 'Validate',\n 'javaContainer': 'External',\n 'runHistory': 'History',\n 'reRun': 'Retry',\n 'builtIn': 'BUILT_IN',\n 'External': 'EXTERNAL',\n // JobInstance\n 'wfInstanceId': 'WorkflowInstanceId',\n 'normalInstance': 'Normal instance',\n 'wfInstance': 'Workflow instance',\n 'triggerTime': 'Trigger time',\n 'finishedTime': 'Finished time',\n 'log': 'Log',\n 'runningTimes': 'Running times',\n 'taskTrackerAddress': 'TaskTracker address',\n 'startTime': 'Start time',\n 'expectedTriggerTime': 'Expected trigger time',\n 'result': 'Result',\n 'subTaskInfo': 'Task info',\n 'secondlyJobHistory': 'Secondly job history',\n 'subInstanceId': 'SubInstanceId',\n 'instanceParams': 'InstanceParams',\n 'lifeCycle': 'Life cycle',\n 'alertThreshold': 'AlertThreshold',\n 'statisticWindow': 'StatisticWindow',\n 'silenceWindow': 'SilenceWindow',\n 'runByParameter': 'Run by parameter',\n 'enteringParameter': 'Entering Parameter',\n // workflowManage\n 'wfId': 'Workflow ID',\n 'wfName': 'Workflow name',\n 'newWorkflow': 'New workflow',\n 'wfDescription': 'Description',\n 'importJob': 'Import job',\n 'deleteJob': 'Delete job',\n 'newStartPoint': 'New starting point',\n 'newEndPoint': 'New ending point',\n 'deleteEdge': 'Delete edge',\n 'importJobTitle': \"Select jobs\",\n 'wfTimeExpressionPLH': 'Cron expression for CRON or empty for API',\n 'import': 'Import',\n 'ntfClickNeedDeleteNode': 'Please click on the node you want to delete.',\n 'ntfClickStartPoint': 'Please click on the start node',\n 'ntfClickTargetPoint': 'Please click on the end node',\n 'ntfClickDeleteEdge': 'Please click on the edge you want to remove.',\n 'ntfAddStartPointFirst': 'Please add the starting point first!',\n 'ntfInvalidEdge': 'Illegal operation (same origin and destination)!',\n // workflowInstance\n 'wfTips': 'tips:Click on a node to view details of the job instance',\n 'ntfClickNoInstanceNode': 'No instances have been generated, and details cannot be viewed!',\n 'wfInitParams': 'InitParams',\n // 容器\n 'newContainer': 'New container',\n 'containerType': 'Type',\n 'containerGitURL': 'Git URL',\n 'branchName': 'Branch',\n 'username': 'Username',\n 'oldPassword': 'Old password',\n 'password': 'Password',\n 'containerId': 'ID',\n 'containerName': 'Name',\n 'containerVersion': 'Version',\n 'deployTime': 'Deployed time',\n 'deploy': 'Deploy',\n 'deployedWorkerList': 'Worker list',\n 'uploadTips': 'Drag and drop or click on the file to upload it automatically',\n // 任务实例状态\n 'waitingDispatch': 'Waiting dispatch',\n 'waitingWorkerReceive': 'Waiting receive',\n 'running': 'Running',\n 'stopped': 'Stopped',\n 'canceled': 'Canceled',\n 'canceleded': 'Canceled',\n 'wfWaiting': 'Waiting',\n 'waitingUpstream': 'Waiting upstream',\n // 新增的提示信息\n 'noSelect': 'Please select at least one data item',\n 'nodeName': 'Node name',\n 'nodeParams': 'Node parameter',\n 'enable': 'Enable',\n 'skipWhenFailed': 'Allow skips when failed',\n 'fullScreen': 'Full Screen',\n 'zoomIn': 'Zoom In',\n 'zoomOut': 'Zoom out',\n 'autoFit': 'Auto Fit',\n 'markerSuccess': 'Marked Success',\n 'restart': 'restart',\n 'wfContext': 'Context',\n 'yes': 'YES',\n 'no': 'NO',\n 'copy': 'Copy',\n 'condition': 'Condition',\n 'workflowChild': 'Subprocesses',\n 'importWorkflowTitle': 'importWorkflowTitle'\n },\n ...element_ui_lib_locale_lang_en__WEBPACK_IMPORTED_MODULE_0___default.a\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (en);\n\n//# sourceURL=webpack:///./src/i18n/langs/en.js?"); /***/ }), diff --git a/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapProcessorDemo.java b/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapProcessorDemo.java index 17bc517a..e089532d 100644 --- a/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapProcessorDemo.java +++ b/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapProcessorDemo.java @@ -87,7 +87,7 @@ public class MapProcessorDemo implements MapProcessor { @Getter @NoArgsConstructor @AllArgsConstructor - private static class SubTask { + public static class SubTask { private Integer siteId; private List itemIds; } diff --git a/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapReduceProcessorDemo.java b/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapReduceProcessorDemo.java index f741d1c3..b761a770 100644 --- a/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapReduceProcessorDemo.java +++ b/powerjob-worker-samples/src/main/java/tech/powerjob/samples/processors/MapReduceProcessorDemo.java @@ -87,7 +87,7 @@ public class MapReduceProcessorDemo implements MapReduceProcessor { @ToString @NoArgsConstructor @AllArgsConstructor - private static class TestSubTask { + public static class TestSubTask { private String name; private int age; }