feat(admin): 新增后台公告管理与发布归档
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import { adminClient } from '@/shared/api/adminClient'
|
||||
import type { ApiResponse } from '@/shared/api/types'
|
||||
import type {
|
||||
AdminAnnouncement,
|
||||
AdminAnnouncementPage,
|
||||
AdminAnnouncementPayload,
|
||||
AdminAnnouncementQuery,
|
||||
AdminCaptcha,
|
||||
AdminDispute,
|
||||
AdminDisputePage,
|
||||
@@ -345,3 +349,59 @@ export async function fetchFinanceDetails(
|
||||
page_size: data.data.page_size ?? query.page_size ?? 20,
|
||||
}
|
||||
}
|
||||
|
||||
export async function fetchAdminAnnouncements(query: AdminAnnouncementQuery) {
|
||||
const { data } = await adminClient.get<ApiResponse<Partial<AdminAnnouncementPage>>>(
|
||||
'/admin/announcements',
|
||||
{ params: compactParams(query) }
|
||||
)
|
||||
return {
|
||||
items: data.data.items ?? [],
|
||||
total: data.data.total ?? 0,
|
||||
page: data.data.page ?? query.page ?? 1,
|
||||
page_size: data.data.page_size ?? query.page_size ?? 20,
|
||||
}
|
||||
}
|
||||
|
||||
export async function createAdminAnnouncement(payload: AdminAnnouncementPayload) {
|
||||
const { data } = await adminClient.post<ApiResponse<AdminAnnouncement>>(
|
||||
'/admin/announcements',
|
||||
payload
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function updateAdminAnnouncement(
|
||||
id: number | string,
|
||||
payload: AdminAnnouncementPayload
|
||||
) {
|
||||
const { data } = await adminClient.put<ApiResponse<AdminAnnouncement>>(
|
||||
`/admin/announcements/${id}`,
|
||||
{
|
||||
title: payload.title,
|
||||
content: payload.content,
|
||||
category: payload.category,
|
||||
priority: payload.priority,
|
||||
is_pinned: payload.is_pinned,
|
||||
is_important: payload.is_important,
|
||||
is_popup: payload.is_popup,
|
||||
}
|
||||
)
|
||||
return data.data
|
||||
}
|
||||
|
||||
export async function publishAdminAnnouncement(id: number | string) {
|
||||
await adminClient.post(`/admin/announcements/${id}/publish`)
|
||||
}
|
||||
|
||||
export async function archiveAdminAnnouncement(id: number | string) {
|
||||
await adminClient.post(`/admin/announcements/${id}/archive`)
|
||||
}
|
||||
|
||||
export async function unarchiveAdminAnnouncement(id: number | string) {
|
||||
await adminClient.post(`/admin/announcements/${id}/unarchive`)
|
||||
}
|
||||
|
||||
export async function deleteAdminAnnouncement(id: number | string) {
|
||||
await adminClient.delete(`/admin/announcements/${id}`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user