feat(admin): 补齐工单工作台与流量日志

---
 feat(admin): add ticket workspace and traffic logs
This commit is contained in:
yinjianm
2026-04-21 23:13:00 +08:00
parent 97cf167090
commit 60b5c99e74
12 changed files with 1614 additions and 55 deletions
+44
View File
@@ -2,6 +2,10 @@ import { adminClient } from './client'
import type {
AdminPaginationResult,
AdminPlanOption,
AdminTicketDetail,
AdminTicketFetchParams,
AdminTicketListItem,
AdminTrafficLogResult,
AdminUserFetchParams,
AdminUserGeneratePayload,
AdminUserListItem,
@@ -114,3 +118,43 @@ export function resetUserSecret(id: number): Promise<ApiResponse<boolean>> {
export function deleteUser(id: number): Promise<ApiResponse<boolean>> {
return unwrapPost<boolean>('/user/destroy', { id })
}
export function fetchTickets(params: AdminTicketFetchParams): Promise<AdminPaginationResult<AdminTicketListItem>> {
return adminClient
.get<AdminPaginationResult<AdminTicketListItem>>('/ticket/fetch', { params })
.then((res) => res.data)
}
export function getTicketById(id: number): Promise<ApiResponse<AdminTicketDetail>> {
return unwrap<AdminTicketDetail>('/ticket/fetch', { id })
}
export function replyTicket(id: number, message: string): Promise<ApiResponse<boolean>> {
return unwrapPost<boolean>('/ticket/reply', { id, message })
}
export function closeTicket(id: number): Promise<ApiResponse<boolean>> {
return unwrapPost<boolean>('/ticket/close', { id })
}
export function fetchUserTrafficLogs(params: {
userId: number
pageSize?: number
page?: number
minTotal?: number
startTime?: number
endTime?: number
}): Promise<AdminTrafficLogResult> {
return adminClient
.get<AdminTrafficLogResult>('/stat/getStatUser', {
params: {
user_id: params.userId,
pageSize: params.pageSize,
page: params.page,
min_total: params.minTotal,
start_time: params.startTime,
end_time: params.endTime,
},
})
.then((res) => res.data)
}