feat: redesign ticket list experience

This commit is contained in:
hailin
2026-07-01 15:16:05 +08:00
parent 4a44f66505
commit 382237e9f5
6 changed files with 350 additions and 69 deletions

View File

@@ -1,13 +1,16 @@
import { apiRequest } from '@/lib/api'
import type { Ticket, TicketComment, TicketInput, TicketStatus } from './types'
import type { Ticket, TicketComment, TicketInput, TicketListParams, TicketListResponse, TicketStatus } from './types'
export function listTickets(params: { status?: string; q?: string } = {}) {
export function listTickets(params: TicketListParams = {}) {
const query = new URLSearchParams()
if (params.status) query.set('status', params.status)
if (params.q) query.set('q', params.q)
Object.entries(params).forEach(([key, value]) => {
if (value !== undefined && value !== null && value !== '') {
query.set(key, String(value))
}
})
const suffix = query.toString() ? `?${query}` : ''
return apiRequest<Ticket[]>(`/tickets${suffix}`)
return apiRequest<TicketListResponse>(`/tickets${suffix}`)
}
export function createTicket(payload: TicketInput) {