| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // 工单管理API端点
- import type { AxiosInstance } from 'axios';
- import type {
- WorkOrder,
- CreateWorkOrderRequest,
- UpdateWorkOrderRequest,
- WorkOrderQueryParams,
- ApiResponse,
- PaginatedResponse
- } from '@smartcut/types';
- export class WorkOrderApi {
- constructor(private client: AxiosInstance) {}
- /**
- * 获取工单列表
- */
- async getWorkOrders(params?: WorkOrderQueryParams): Promise<PaginatedResponse<WorkOrder>> {
- const response = await this.client.get<ApiResponse<PaginatedResponse<WorkOrder>>>('/work-orders', { params });
- return response.data.data;
- }
- /**
- * 创建工单
- */
- async createWorkOrder(data: CreateWorkOrderRequest): Promise<WorkOrder> {
- const response = await this.client.post<ApiResponse<WorkOrder>>('/work-orders', data);
- return response.data.data;
- }
- /**
- * 获取工单详情
- */
- async getWorkOrder(id: number): Promise<WorkOrder> {
- const response = await this.client.get<ApiResponse<WorkOrder>>(`/work-orders/${id}`);
- return response.data.data;
- }
- /**
- * 更新工单(PATCH语义)
- */
- async updateWorkOrder(id: number, data: UpdateWorkOrderRequest): Promise<WorkOrder> {
- const response = await this.client.put<ApiResponse<WorkOrder>>(`/work-orders/${id}`, data);
- return response.data.data;
- }
- /**
- * 删除工单
- */
- async deleteWorkOrder(id: number): Promise<void> {
- await this.client.delete<ApiResponse>(`/work-orders/${id}`);
- }
- /**
- * 生成工单二维码
- */
- async getWorkOrderQRCode(id: number): Promise<Blob> {
- const response = await this.client.get(`/work-orders/${id}/qrcode`, {
- responseType: 'blob'
- });
- return response.data;
- }
- }
|