diff --git a/api/handler/admin/chat_model_handler.go b/api/handler/admin/chat_model_handler.go
index 64a5ed97..b0eba079 100644
--- a/api/handler/admin/chat_model_handler.go
+++ b/api/handler/admin/chat_model_handler.go
@@ -8,6 +8,7 @@ package admin
// * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import (
+ "fmt"
"geekai/core"
"geekai/core/types"
"geekai/handler"
@@ -36,6 +37,7 @@ func (h *ChatModelHandler) RegisterRoutes() {
group.POST("set", h.Set)
group.POST("sort", h.Sort)
group.GET("remove", h.Remove)
+ group.POST("batch-remove", h.BatchRemove)
}
func (h *ChatModelHandler) Save(c *gin.Context) {
@@ -211,3 +213,33 @@ func (h *ChatModelHandler) Remove(c *gin.Context) {
}
resp.SUCCESS(c)
}
+
+// BatchRemove 批量删除模型
+func (h *ChatModelHandler) BatchRemove(c *gin.Context) {
+ var data struct {
+ Ids []uint `json:"ids"`
+ }
+
+ if err := c.ShouldBindJSON(&data); err != nil {
+ resp.ERROR(c, types.InvalidArgs)
+ return
+ }
+
+ if len(data.Ids) == 0 {
+ resp.ERROR(c, "请选择要删除的模型")
+ return
+ }
+
+ // 执行批量删除
+ err := h.DB.Where("id IN ?", data.Ids).Delete(&model.ChatModel{}).Error
+ if err != nil {
+ logger.Error("批量删除模型失败:", err)
+ resp.ERROR(c, "批量删除失败:"+err.Error())
+ return
+ }
+
+ resp.SUCCESS(c, gin.H{
+ "message": fmt.Sprintf("成功删除 %d 个模型", len(data.Ids)),
+ "deleted_count": len(data.Ids),
+ })
+}
diff --git a/web/src/views/admin/ChatModel.vue b/web/src/views/admin/ChatModel.vue
index 3af801ba..691a16be 100644
--- a/web/src/views/admin/ChatModel.vue
+++ b/web/src/views/admin/ChatModel.vue
@@ -11,10 +11,24 @@
搜索
新增
+
+ 批量删除 ({{ selectedItems.length }})
+
-
+
@@ -216,9 +230,9 @@