Files
ticket-workbench/frontend/src/api/ticket.ts
绝尘 bc42f47074 新增: AI工单处理工作台 v1.0
- Go Gin 后端 (19个源文件): 认证、工单CRUD、GLM AI分析、状态流转、备注、操作日志
- Arco Design Vue 前端: 登录、工单列表/详情/创建、AI分析触发与确认
- MySQL 5表: ticket_user/ticket_info/ticket_ai_analysis/ticket_operation_log/ticket_note
- 部署: tk.1216.top HTTPS, Nginx反代
2026-05-13 17:05:49 +08:00

56 lines
1.8 KiB
TypeScript

import axiosInstance from './interceptor'
import type {
Ticket,
TicketFilter,
TicketListResponse,
CreateTicketRequest,
UpdateTicketRequest,
AIAnalysisResponse,
TicketNote,
CreateNoteRequest
} from '@/types'
export function getTicketList(filter: TicketFilter) {
return axiosInstance.get('/tickets', { params: filter }) as Promise<TicketListResponse>
}
export function getTicketDetail(id: number) {
return axiosInstance.get(`/tickets/${id}`) as Promise<Ticket>
}
export function createTicket(data: CreateTicketRequest) {
return axiosInstance.post('/tickets', data) as Promise<Ticket>
}
export function updateTicket(id: number, data: UpdateTicketRequest) {
return axiosInstance.put(`/tickets/${id}`, data) as Promise<Ticket>
}
export function updateTicketStatus(id: number, status: number) {
return axiosInstance.put(`/tickets/${id}/status`, { status }) as Promise<Ticket>
}
export function analyzeTicket(ticketId: number) {
return axiosInstance.post(`/tickets/${ticketId}/analyze`) as Promise<AIAnalysisResponse>
}
export function getAnalysis(ticketId: number) {
return axiosInstance.get(`/tickets/${ticketId}/analysis`) as Promise<AIAnalysisResponse>
}
export function confirmAnalysis(ticketId: number, data: Partial<AIAnalysisResponse>) {
return axiosInstance.put(`/tickets/${ticketId}/analysis`, data) as Promise<AIAnalysisResponse>
}
export function getTicketNotes(ticketId: number) {
return axiosInstance.get(`/tickets/${ticketId}/notes`) as Promise<TicketNote[]>
}
export function createNote(ticketId: number, data: CreateNoteRequest) {
return axiosInstance.post(`/tickets/${ticketId}/notes`, data) as Promise<TicketNote>
}
export function getTicketLogs(ticketId: number) {
return axiosInstance.get(`/tickets/${ticketId}/logs`) as Promise<any[]>
}