From d578bdcba213d4e9b2bc8dc637cd180f9c4be4a3 Mon Sep 17 00:00:00 2001 From: yumaojun03 <719118794@qq.com> Date: Sun, 12 Jan 2025 17:22:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=88=A0=E9=99=A4=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vblog/apps/blog/api/api.go | 12 +++ vblog/apps/blog/interface.go | 18 ++++ vblog/web/README.md | 37 +++++++ vblog/web/src/views/backend/BackendLayout.vue | 6 +- vblog/web/src/views/backend/blog/ListPage.vue | 101 ++++++++++++++---- 5 files changed, 154 insertions(+), 20 deletions(-) diff --git a/vblog/apps/blog/api/api.go b/vblog/apps/blog/api/api.go index 638acf8..037057e 100644 --- a/vblog/apps/blog/api/api.go +++ b/vblog/apps/blog/api/api.go @@ -50,6 +50,7 @@ func (h *BlogApiHandler) Init() error { r.Use(middleware.Auth) r.POST("", h.CreateBlog) + r.DELETE(":id", h.DeleteBlog) return nil } @@ -90,3 +91,14 @@ func (h *BlogApiHandler) QueryBlog(ctx *gin.Context) { } response.Success(ctx, ins) } + +func (h *BlogApiHandler) DeleteBlog(ctx *gin.Context) { + in := blog.NewDeleteBlogRequest(ctx.Param("id")) + + err := h.blog.DeleteBlog(ctx.Request.Context(), in) + if err != nil { + response.Failed(ctx, err) + return + } + response.Success(ctx, "ok") +} diff --git a/vblog/apps/blog/interface.go b/vblog/apps/blog/interface.go index 47441a9..8f427d0 100644 --- a/vblog/apps/blog/interface.go +++ b/vblog/apps/blog/interface.go @@ -2,6 +2,7 @@ package blog import ( "context" + "strconv" "strings" "github.com/infraboard/mcube/v2/ioc" @@ -31,6 +32,23 @@ type Service interface { DeleteBlog(context.Context, *DeleteBlogRequest) error } +func NewDeleteBlogRequest[T int | string](id T) *DeleteBlogRequest { + var idValue int + switch v := any(id).(type) { + case int: + idValue = v + case string: + parsedID, _ := strconv.ParseUint(v, 10, 0) + idValue = int(parsedID) + } + + return &DeleteBlogRequest{ + GetRequest: utils.GetRequest{ + Id: uint(idValue), + }, + } +} + type DeleteBlogRequest struct { utils.GetRequest } diff --git a/vblog/web/README.md b/vblog/web/README.md index 5adcf93..b8e7994 100644 --- a/vblog/web/README.md +++ b/vblog/web/README.md @@ -407,3 +407,40 @@ css, :deep(), 用于选择需要覆盖的class进行覆盖 padding-left: 0px; } ``` + +## 列表页 + +- 页头/过滤条件/表格展示 + +后端分页, 默认的Table使用的前端分页 + +```html +