diff --git a/src/resources/api/framework/tagent/tagent.js b/src/resources/api/framework/tagent/tagent.js index 1b2ac3d6125803571de8ea5b93a126ea371ba3ac..df62a8a93f59c1a626212789ec2a6d65d96b89e7 100644 --- a/src/resources/api/framework/tagent/tagent.js +++ b/src/resources/api/framework/tagent/tagent.js @@ -7,6 +7,10 @@ const tagent = { deleteTagents(params) { return axios.post('/api/rest/tagent/delete', params); }, + //批量删除tagent + batchDeleteTagent(params) { + return axios.post('/api/rest/tagent/delete/batch', params); + }, //查看密码 getAccountById(params) { return axios.post('api/rest/tagent/account/get', params); diff --git a/src/resources/assets/languages/term/en.json b/src/resources/assets/languages/term/en.json index 367935030b74ad4e5f8a7c4c2937d4ab8b6da988..1f4d07ac5207ae2f2932f128f7101001c49ed735 100644 --- a/src/resources/assets/languages/term/en.json +++ b/src/resources/assets/languages/term/en.json @@ -1355,7 +1355,8 @@ "tagentuploadupgradepkg": "Upload upgrade package", "versionremarks": "Version Remarks", "heartbeaturl": "Backend server address", - "runnergrouptips": "The request for login authentication needs to carry a header as a rule expression (note that the header parameter in the expression must be all lowercase and the prefix must be {prefix}). If the value of the expression after execution is true, the executor group will take effect, and false and syntax exceptions will not take effect. For example:" + "runnergrouptips": "The request for login authentication needs to carry a header as a rule expression (note that the header parameter in the expression must be all lowercase and the prefix must be {prefix}). If the value of the expression after execution is true, the executor group will take effect, and false and syntax exceptions will not take effect. For example:", + "batchdeletetagenttooltip": "Tagent in connected state cannot be deleted" }, "knowledge": { "document": "Document", diff --git a/src/resources/assets/languages/term/zh.json b/src/resources/assets/languages/term/zh.json index 17ed38c68449cc8821f6b17ce4c675cbcfda9dfc..7e901aa7d39119a7e4f8df7e761c831168510fb1 100644 --- a/src/resources/assets/languages/term/zh.json +++ b/src/resources/assets/languages/term/zh.json @@ -1355,7 +1355,8 @@ "tagentuploadupgradepkg": "上传升级包", "versionremarks": "版本备注", "heartbeaturl": "后端服务器地址", - "runnergrouptips": "登录认证的请求需要携带Header做规则表达式(注意表达式中header参数全小写,且前缀必须为{prefix}),如果表达式执行后的值为true则该执行器组生效,false和语法异常都不生效。如:" + "runnergrouptips": "登录认证的请求需要携带Header做规则表达式(注意表达式中header参数全小写,且前缀必须为{prefix}),如果表达式执行后的值为true则该执行器组生效,false和语法异常都不生效。如:", + "batchdeletetagenttooltip": "已连接状态的tagent不能删除" }, "knowledge": { "document": "文档", diff --git a/src/views/pages/framework/tagent/tagent-manage.vue b/src/views/pages/framework/tagent/tagent-manage.vue index 7e20a982c1e2256e3ba180164b94fa40b7991565..96a6613aa5937b3451b36440debaaea4851b72d0 100644 --- a/src/views/pages/framework/tagent/tagent-manage.vue +++ b/src/views/pages/framework/tagent/tagent-manage.vue @@ -7,6 +7,22 @@ {{ $t('term.framework.batchupgrade') }} {{ $t('term.framework.batchreboot') }} {{ $t('term.framework.batchresetcred') }} + + + {{ $t('page.batchdelete') }} + +
{{ $t('term.framework.batchdeletetagenttooltip') }}
+
{{ $t('term.framework.tagentupgrade') }} {{ $t('term.framework.tagentinstall') }} {{ $t('page.export') }} @@ -24,7 +40,9 @@ { + if (item.status === 'connected') { + this.batchDeleteIsDisabled = true; + } + }); + this.selected = itemList; + }, + batchDelete() { + if (this.selected && this.selected.length > 0) { + let tagentNameList = []; + let tagentIdList = []; + let flag = false; + this.selected.forEach(item => { + if (item.status === 'connected') { + flag = true; + } + tagentNameList.push(item.name); + tagentIdList.push(item.id); + }); + if (flag) { + return; + } + let params = { + idList: tagentIdList + }; + // 批量删除确认提示框 + this.$createDialog({ + title: this.$t('dialog.title.deleteconfirm'), + content: this.$t('dialog.content.deletetargetconfirm', {target: tagentNameList.join(', ')}), + btnType: 'error', + 'on-ok': vnode => { + this.$api.framework.tagent.batchDeleteTagent(params) + .then((res) => { + if (res.Status == 'OK') { + this.changeCurrent(); + this.selected = []; + this.$Message.success(this.$t('message.deletesuccess')); + } + }).finally(res => { + vnode.isShow = false; + }); + } + }); + } } }, computed: {},