From bd203141d867fe990371169184c5d5eb755208f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AF=BB=E6=AC=A2?= Date: Thu, 3 Apr 2025 14:35:00 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/config.dev.yaml | 2 +- internal/handler/robot.go | 31 +++++++++++++ internal/view/layouts/main.html | 5 +- internal/view/robot/index.html | 71 +++++++++++++++++++++++++++++ public/js/components.js | 81 +++++++++++++++++++++++++-------- 5 files changed, 169 insertions(+), 21 deletions(-) diff --git a/configs/config.dev.yaml b/configs/config.dev.yaml index 806c8c0..4778b01 100644 --- a/configs/config.dev.yaml +++ b/configs/config.dev.yaml @@ -1,6 +1,6 @@ server: port: 8080 - host: "localhost" + host: "0.0.0.0" env: "development" # 开发环境使用SQLite diff --git a/internal/handler/robot.go b/internal/handler/robot.go index f778829..ac58cac 100644 --- a/internal/handler/robot.go +++ b/internal/handler/robot.go @@ -4,6 +4,7 @@ import ( "context" "log" "strconv" + "strings" "time" "github.com/gofiber/fiber/v2" @@ -119,6 +120,13 @@ func ShowRobot(c *fiber.Ctx) error { func DeleteRobot(c *fiber.Ctx) error { id, err := strconv.Atoi(c.Params("id")) if err != nil { + // 针对API请求返回JSON + if strings.HasPrefix(c.Get("Accept"), "application/json") || c.Method() == "DELETE" { + return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{ + "success": false, + "message": "无效的ID", + }) + } return fiber.NewError(fiber.StatusBadRequest, "无效的ID") } @@ -126,6 +134,13 @@ func DeleteRobot(c *fiber.Ctx) error { db := model.GetDB() if err := db.First(&robot, id).Error; err != nil { + // 针对API请求返回JSON + if strings.HasPrefix(c.Get("Accept"), "application/json") || c.Method() == "DELETE" { + return c.Status(fiber.StatusNotFound).JSON(fiber.Map{ + "success": false, + "message": "机器人不存在", + }) + } if err == gorm.ErrRecordNotFound { return fiber.NewError(fiber.StatusNotFound, "机器人不存在") } @@ -155,9 +170,25 @@ func DeleteRobot(c *fiber.Ctx) error { // 删除数据库记录 if err := db.Delete(&robot).Error; err != nil { + // 针对API请求返回JSON + if strings.HasPrefix(c.Get("Accept"), "application/json") || c.Method() == "DELETE" { + return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{ + "success": false, + "message": "删除机器人失败: " + err.Error(), + }) + } return fiber.NewError(fiber.StatusInternalServerError, "删除机器人失败: "+err.Error()) } + // 针对API请求返回JSON + if strings.HasPrefix(c.Get("Accept"), "application/json") || c.Method() == "DELETE" { + return c.JSON(fiber.Map{ + "success": true, + "message": "机器人已成功删除", + }) + } + + // 普通请求重定向 return c.Redirect("/admin/robots") } diff --git a/internal/view/layouts/main.html b/internal/view/layouts/main.html index 9a887b3..596f94c 100644 --- a/internal/view/layouts/main.html +++ b/internal/view/layouts/main.html @@ -122,7 +122,10 @@ {{embed}} {{end}} - + + + + {{if .CustomJS}} diff --git a/internal/view/robot/index.html b/internal/view/robot/index.html index 80cafe7..94a06a8 100644 --- a/internal/view/robot/index.html +++ b/internal/view/robot/index.html @@ -200,6 +200,77 @@ }); + +