From a5cc9b13d61534402f49e9b243f54cce4f7724f6 Mon Sep 17 00:00:00 2001 From: Rogee Date: Mon, 5 Jan 2026 09:19:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=B8=BB=E5=AE=9A?= =?UTF-8?q?=E8=B0=83=E8=BF=87=E6=BB=A4=E9=80=89=E9=A1=B9=EF=BC=8C=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E5=86=85=E5=AE=B9=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/http/v1/dto/creator.go | 1 + backend/app/services/creator.go | 3 +++ frontend/portal/src/views/creator/ContentsView.vue | 13 ++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/backend/app/http/v1/dto/creator.go b/backend/app/http/v1/dto/creator.go index 1781586..336322b 100644 --- a/backend/app/http/v1/dto/creator.go +++ b/backend/app/http/v1/dto/creator.go @@ -88,6 +88,7 @@ type CreatorContentListFilter struct { requests.Pagination Status *string `query:"status"` Genre *string `query:"genre"` + Key *string `query:"key"` Keyword *string `query:"keyword"` } diff --git a/backend/app/services/creator.go b/backend/app/services/creator.go index c52f675..19194ed 100644 --- a/backend/app/services/creator.go +++ b/backend/app/services/creator.go @@ -128,6 +128,9 @@ func (s *creator) ListContents( q = q.Where(tbl.Genre.Eq(val)) } } + if filter.Key != nil && *filter.Key != "" { + q = q.Where(tbl.Key.Eq(*filter.Key)) + } if filter.Keyword != nil && *filter.Keyword != "" { q = q.Where(tbl.Title.Like("%" + *filter.Keyword + "%")) } diff --git a/frontend/portal/src/views/creator/ContentsView.vue b/frontend/portal/src/views/creator/ContentsView.vue index b586d8e..a60a581 100644 --- a/frontend/portal/src/views/creator/ContentsView.vue +++ b/frontend/portal/src/views/creator/ContentsView.vue @@ -26,6 +26,14 @@ +
+ 主定调: + +
{ try { @@ -150,6 +160,7 @@ const fetchContents = async () => { const params = {}; if (filterStatus.value !== 'all') params.status = filterStatus.value; if (filterGenre.value !== 'all') params.genre = filterGenre.value; + if (filterKey.value !== 'all') params.key = filterKey.value; if (searchKeyword.value) params.keyword = searchKeyword.value; const res = await creatorApi.listContents(params); @@ -164,7 +175,7 @@ onMounted(() => { fetchContents(); }); -watch([filterStatus, filterGenre], () => { +watch([filterStatus, filterGenre, filterKey], () => { fetchContents(); });