From a199e47701a88e7424b7156d89e3bd6dafc3d89e Mon Sep 17 00:00:00 2001 From: LiJinHui <166460433+stu-rgsze@users.noreply.github.com> Date: Thu, 18 Sep 2025 09:35:03 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AgentTemplateController.java | 18 ++++++++++++-- main/manager-web/src/apis/module/agent.js | 8 +++---- .../src/views/AgentTemplateManagement.vue | 24 +++++++++++-------- .../src/views/TemplateQuickConfig.vue | 23 +++++++++++------- 4 files changed, 48 insertions(+), 25 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentTemplateController.java b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentTemplateController.java index ba317938..3b3dda7f 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentTemplateController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/agent/controller/AgentTemplateController.java @@ -209,10 +209,24 @@ public class AgentTemplateController { } } - @DeleteMapping("/batch-delete") + // 删除原有的批量删除方法 + // @PostMapping("/batch-delete") + // @Operation(summary = "批量删除模板") + // @RequiresPermissions("sys:role:normal") + // public Result batchDeleteAgentTemplates(@RequestBody List ids) { + // boolean deleted = agentTemplateService.removeByIds(ids); + // if (deleted) { + // return ResultUtils.success("批量删除成功"); + // } else { + // return ResultUtils.error("批量删除模板失败"); + // } + // } + + // 添加新的批量删除方法,使用不同的URL + @PostMapping("/batch-remove") @Operation(summary = "批量删除模板") @RequiresPermissions("sys:role:normal") - public Result batchDeleteAgentTemplates(@RequestBody List ids) { + public Result batchRemoveAgentTemplates(@RequestBody List ids) { boolean deleted = agentTemplateService.removeByIds(ids); if (deleted) { return ResultUtils.success("批量删除成功"); diff --git a/main/manager-web/src/apis/module/agent.js b/main/manager-web/src/apis/module/agent.js index 2d5eade2..ec7201c3 100644 --- a/main/manager-web/src/apis/module/agent.js +++ b/main/manager-web/src/apis/module/agent.js @@ -1,5 +1,5 @@ -import { getServiceUrl } from '../api'; import RequestService from '../httpRequest'; +import { getServiceUrl } from '../api'; export default { @@ -337,9 +337,9 @@ export default { // 批量删除智能体模板 batchDeleteAgentTemplate(ids, callback) { RequestService.sendRequest() - .url(`${getServiceUrl()}/agent/template/batch-delete`) - .method('DELETE') - .data(ids) + .url(`${getServiceUrl()}/agent/template/batch-remove`) // 修改为新的URL + .method('POST') + .data(Array.isArray(ids) ? ids : [ids]) // 确保是数组格式 .success((res) => { RequestService.clearRequestTime(); callback(res); diff --git a/main/manager-web/src/views/AgentTemplateManagement.vue b/main/manager-web/src/views/AgentTemplateManagement.vue index 91b5e8cf..d8671db4 100644 --- a/main/manager-web/src/views/AgentTemplateManagement.vue +++ b/main/manager-web/src/views/AgentTemplateManagement.vue @@ -23,11 +23,11 @@ + class="transparent-table"> @@ -298,6 +298,7 @@ export default { }, // 修改batchDeleteTemplate方法,使用selectedTemplates + // 批量删除模板 - 完全重写这个方法 batchDeleteTemplate() { if (this.selectedTemplates.length === 0) { this.$message.warning('请选择要删除的模板') @@ -309,12 +310,19 @@ export default { cancelButtonText: '取消', type: 'warning' }).then(() => { + // 确保参数格式正确 - 将id数组作为请求体 const ids = this.selectedTemplates.map(template => template.id) + console.log('批量删除的模板ID:', ids) + agentApi.batchDeleteAgentTemplate(ids, (res) => { + // 添加更健壮的响应处理 + console.log('批量删除响应:', res) if (res && typeof res === 'object') { if (res.data && res.data.code === 0) { this.$message.success('模板批量删除成功') + // 重新加载模板列表 this.loadTemplateList() + // 清空选中状态 this.selectedTemplates = [] this.isAllSelected = false } else { @@ -322,7 +330,7 @@ export default { } } else { console.error('无效的响应对象:', res) - this.$message.error('删除失败') + this.$message.error('删除失败,请检查后端服务是否正常') } }) }).catch(() => { @@ -402,14 +410,10 @@ export default { this.isAllSelected = this.templateList.length > 0 && this.selectedTemplates.length === this.templateList.length; }, - // 修改handleRowClick方法,实现点击行选中/取消选中 + // 修改handleRowClick方法,移除选中状态切换逻辑 handleRowClick(row, event, column) { - // 如果点击的是选择框所在的列,则不触发行选择 - if (column && column.label === '选择') { - return; - } - row.selected = !row.selected; - this.handleRowSelectionChange(row); + // 完全移除选中状态切换的逻辑,只允许通过复选框点击来选择 + // 保留方法以避免可能的事件处理问题 }, } diff --git a/main/manager-web/src/views/TemplateQuickConfig.vue b/main/manager-web/src/views/TemplateQuickConfig.vue index 49c4ec37..06af4ac8 100644 --- a/main/manager-web/src/views/TemplateQuickConfig.vue +++ b/main/manager-web/src/views/TemplateQuickConfig.vue @@ -521,9 +521,9 @@ export default { } .main-wrapper { - margin: 0 22px 22px 22px; /* 保留左右和底部边距 */ + margin: 1vh 22px; /* 借鉴角色配置页面,使用1vh的上下边距,使上下边框更加均衡 */ border-radius: 15px; - height: calc(100vh - 14vh); /* 调整高度计算 */ + height: calc(100vh - 24vh); /* 借鉴角色配置页面的高度计算方式 */ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1); position: relative; background: rgba(237, 242, 255, 0.5); @@ -534,16 +534,21 @@ export default { .content-panel { flex: 1; - overflow-y: auto; - padding: 0 !important; /* 确保没有内边距 */ - margin: 0 !important; /* 确保没有外边距 */ + display: flex; + overflow: hidden; + height: 100%; + border-radius: 15px; + background: transparent; + border: 1px solid #fff; /* 借鉴角色配置页面,添加白色边框 */ } .content-area { - width: 100% !important; - max-width: none !important; - margin: 0 !important; - height: 100% !important; + flex: 1; + height: 100%; + overflow: auto; + background-color: white; + display: flex; + flex-direction: column; } /* 调整config-card样式 */