From 148e71985f29c8b738eba051c7e8768d99773681 Mon Sep 17 00:00:00 2001 From: CGD <3030332422@qq.com> Date: Fri, 4 Apr 2025 23:52:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BF=AE=E6=94=B9=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E9=A1=B5=E9=9D=A2=E7=9A=84=E2=80=9D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E4=BE=9B=E5=BA=94=E5=99=A8=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E2=80=9C=E5=8A=9F=E8=83=BD=EF=BC=9B=E2=80=9D=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=85=8D=E7=BD=AE=E2=80=9C=E5=87=BA=E7=8E=B0?= =?UTF-8?q?=E2=80=9D=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=86=85=E9=83=A8=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E2=80=9C=E9=94=99=E8=AF=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-web/src/apis/module/model.js | 18 +++++ .../src/components/ModelEditDialog.vue | 51 +++++++++++--- main/manager-web/src/views/ModelConfig.vue | 67 +++++++++++++------ 3 files changed, 106 insertions(+), 30 deletions(-) diff --git a/main/manager-web/src/apis/module/model.js b/main/manager-web/src/apis/module/model.js index 5957af45..2bf7dc00 100644 --- a/main/manager-web/src/apis/module/model.js +++ b/main/manager-web/src/apis/module/model.js @@ -74,5 +74,23 @@ export default { }) }).send() }, + // 删除模型配置 + deleteModel(modelType, provideCode, id, callback) { + RequestService.sendRequest() + .url(`${getServiceUrl()}/api/v1/models/models/${modelType}/${provideCode}/${id}`) + .method('DELETE') + .success((res) => { + RequestService.clearRequestTime() + callback(res) + }) + .fail((err) => { + console.error('删除模型失败:', err) + this.$message.error(err.msg || '删除模型失败') + RequestService.reAjaxFun(() => { + this.deleteModel(modelType, provideCode, id, callback) + }) + }).send() + }, + } diff --git a/main/manager-web/src/components/ModelEditDialog.vue b/main/manager-web/src/components/ModelEditDialog.vue index 4aea1027..1313c6b0 100644 --- a/main/manager-web/src/components/ModelEditDialog.vue +++ b/main/manager-web/src/components/ModelEditDialog.vue @@ -37,10 +37,9 @@
- - - - + + + @@ -84,15 +83,19 @@ diff --git a/main/manager-web/src/views/ModelConfig.vue b/main/manager-web/src/views/ModelConfig.vue index e6703776..cdb9e3ef 100644 --- a/main/manager-web/src/views/ModelConfig.vue +++ b/main/manager-web/src/views/ModelConfig.vue @@ -118,7 +118,7 @@
- + @@ -209,48 +209,71 @@ export default { handleSearch() { console.log('查询:', this.search); }, + // 批量删除 batchDelete() { if (this.selectedModels.length === 0) { - this.$message.warning('请先选择要删除的模型'); - return; + this.$message.warning('请先选择要删除的模型') + return } + this.$confirm('确定要删除选中的模型吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { - const selectedIds = this.selectedModels.map(model => model.code); - this.modelList = this.modelList.filter(model => !selectedIds.includes(model.code)); - this.$message.success('删除成功'); - this.selectedModels = []; - this.isAllSelected = false; + const deletePromises = this.selectedModels.map(model => + new Promise(resolve => { + ModelApi.deleteModel( + this.activeTab, + model.configJson?.provider || '', + model.id, + ({data}) => resolve(data.code === 0) + ) + }) + ) + + Promise.all(deletePromises).then(results => { + if (results.every(Boolean)) { + this.$message.success('批量删除成功') + this.loadData() + } else { + this.$message.error('部分删除失败') + } + }) }).catch(() => { - this.$message.info('已取消删除'); - }); - }, + this.$message.info('已取消删除') + }) + }, addModel() { this.addDialogVisible = true; }, editModel(model) { - this.editModelData = { - code: model.code, - name: model.candidateName, - supplier: model.supplier, - }; + this.editModelData = JSON.parse(JSON.stringify(model)); this.editDialogVisible = true; }, - // 删除模型配置 + // 删除单个模型 deleteModel(model) { - this.$confirm(`确定要删除模型 ${model.candidateName} 吗?`, '提示', { + this.$confirm('确定要删除该模型吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { - this.modelList = this.modelList.filter(item => item.code !== model.code); - this.$message.success('删除成功'); + ModelApi.deleteModel( + this.activeTab, + model.configJson?.provider || '', // 从configJson获取provider + model.id, + ({data}) => { + if (data.code === 0) { + this.$message.success('删除成功') + this.loadData() + } else { + this.$message.error(data.msg || '删除失败') + } + } + ) }).catch(() => { - this.$message.info('已取消删除'); - }); + this.$message.info('已取消删除') + }) }, handleCurrentChange(page) { this.currentPage = page;