新增: 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反代
This commit is contained in:
55
frontend/src/api/ticket.ts
Normal file
55
frontend/src/api/ticket.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
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[]>
|
||||
}
|
||||
Reference in New Issue
Block a user