feat(chat): 新增主站二维码池管理页

This commit is contained in:
yml2213
2026-10-30 16:58:15 +08:00
parent fd95bff747
commit 8f0ec10e75
7 changed files with 763 additions and 1 deletions
+64
View File
@@ -115,6 +115,11 @@ import type {
AdminChatMessage,
AdminChatMessagePage,
AdminChatPage,
AdminQrCode,
AdminQrCodePage,
AdminQrCodePayload,
AdminQrCodeStats,
AdminQrCodeUpdatePayload,
ManualDisbursementPayload,
OperatingExpensePage,
OperatingExpensePayload,
@@ -1640,5 +1645,64 @@ export async function fetchAdminChatSupportAdmins() {
return data.data ?? []
}
export async function fetchAdminQrCodes(query: {
status?: string
keyword?: string
wecom_renamed?: string
bound?: string
expire_status?: string
page?: number
limit?: number
}) {
const { data } = await adminClient.get<{ data: Partial<AdminQrCodePage> }>(
'/admin/chats/qrcodes',
{ 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.limit ?? 20,
}
}
export async function fetchAdminQrCodeStats() {
const { data } = await adminClient.get<{ data: AdminQrCodeStats }>('/admin/chats/qrcodes/stats')
return data.data
}
export async function createAdminQrCode(payload: AdminQrCodePayload) {
const { data } = await adminClient.post<{ data: AdminQrCode }>('/admin/chats/qrcodes', payload)
return data.data
}
export async function batchCreateAdminQrCodes(items: AdminQrCodePayload[]) {
const { data } = await adminClient.post<{ data: AdminQrCode[] }>(
'/admin/chats/qrcodes/batch',
{ items }
)
return data.data ?? []
}
export async function batchDeleteAdminQrCodes(ids: number[]) {
const { data } = await adminClient.post<{ data: { deleted: number } }>(
'/admin/chats/qrcodes/batch-delete',
{ ids }
)
return data.data.deleted ?? 0
}
export async function updateAdminQrCode(id: number, payload: AdminQrCodeUpdatePayload) {
const { data } = await adminClient.patch<{ data: AdminQrCode }>(
`/admin/chats/qrcodes/${id}`,
payload
)
return data.data
}
export async function deleteAdminQrCode(id: number) {
await adminClient.delete(`/admin/chats/qrcodes/${id}`)
}