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(); });