import request from '@/utils/http' // --------------------------------------------------------------------------- // 耗材管理 // --------------------------------------------------------------------------- export function fetchConsumableList(params?: { page?: number pageSize?: number keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/consumables', params }) } export function fetchAllConsumables() { return request.get({ url: '/web/admin/consumables/all' }) } export function fetchCreateConsumable(data: Record) { return request.post({ url: '/web/admin/consumables', params: data }) } export function fetchUpdateConsumable(id: string, data: Record) { return request.put({ url: `/web/admin/consumables/${id}`, params: data }) } export function fetchDeleteConsumable(id: string) { return request.del({ url: `/web/admin/consumables/${id}` }) } // --------------------------------------------------------------------------- // 试剂管理 // --------------------------------------------------------------------------- export function fetchReagentList(params?: { page?: number; pageSize?: number; keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/reagents', params }) } export function fetchAllReagents() { return request.get({ url: '/web/admin/reagents/all' }) } export function fetchCreateReagent(data: Record) { return request.post({ url: '/web/admin/reagents', params: data }) } export function fetchUpdateReagent(id: string, data: Record) { return request.put({ url: `/web/admin/reagents/${id}`, params: data }) } export function fetchDeleteReagent(id: string) { return request.del({ url: `/web/admin/reagents/${id}` }) } // --------------------------------------------------------------------------- // SOP文档 // --------------------------------------------------------------------------- export function fetchSopList(params?: { page?: number; pageSize?: number; keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/sop-documents', params }) } export function fetchAllSopDocuments() { return request.get({ url: '/web/admin/sop-documents/all' }) } export function fetchCreateSop(data: Record) { return request.post({ url: '/web/admin/sop-documents', params: data }) } export function fetchUpdateSop(id: string, data: Record) { return request.put({ url: `/web/admin/sop-documents/${id}`, params: data }) } export function fetchDeleteSop(id: string) { return request.del({ url: `/web/admin/sop-documents/${id}` }) } // --------------------------------------------------------------------------- // 工艺工序分类 // --------------------------------------------------------------------------- export function fetchProcessCategoryList(params?: { page?: number pageSize?: number keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/process-categories', params }) } export function fetchAllProcessCategories() { return request.get({ url: '/web/admin/process-categories/all' }) } export function fetchCreateProcessCategory(data: Record) { return request.post({ url: '/web/admin/process-categories', params: data }) } export function fetchUpdateProcessCategory(id: string, data: Record) { return request.put({ url: `/web/admin/process-categories/${id}`, params: data }) } export function fetchDeleteProcessCategory(id: string) { return request.del({ url: `/web/admin/process-categories/${id}` }) } // --------------------------------------------------------------------------- // 工艺产出物类型 // --------------------------------------------------------------------------- export function fetchOutputTypeList(params?: { page?: number pageSize?: number keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/output-types', params }) } export function fetchAllOutputTypes() { return request.get({ url: '/web/admin/output-types/all' }) } export function fetchCreateOutputType(data: Record) { return request.post({ url: '/web/admin/output-types', params: data }) } export function fetchUpdateOutputType(id: string, data: Record) { return request.put({ url: `/web/admin/output-types/${id}`, params: data }) } export function fetchDeleteOutputType(id: string) { return request.del({ url: `/web/admin/output-types/${id}` }) } // --------------------------------------------------------------------------- // 耗材包管理 // --------------------------------------------------------------------------- export function fetchConsumablePackList(params?: { page?: number pageSize?: number keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/consumable-packs', params }) } export function fetchAllConsumablePacks() { return request.get({ url: '/web/admin/consumable-packs/all' }) } export function fetchCreateConsumablePack(data: Record) { return request.post({ url: '/web/admin/consumable-packs', params: data }) } export function fetchUpdateConsumablePack(id: string, data: Record) { return request.put({ url: `/web/admin/consumable-packs/${id}`, params: data }) } export function fetchDeleteConsumablePack(id: string) { return request.del({ url: `/web/admin/consumable-packs/${id}` }) } export function fetchConsumablePackDetail(id: string) { return request.get({ url: `/web/admin/consumable-packs/${id}` }) } // --------------------------------------------------------------------------- // 工艺库管理 // --------------------------------------------------------------------------- export function fetchProcessList(params?: { page?: number; pageSize?: number; keyword?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/processes', params }) } export function fetchAllProcesses() { return request.get({ url: '/web/admin/processes/all' }) } export function fetchCreateProcess(data: Record) { return request.post({ url: '/web/admin/processes', params: data }) } export function fetchUpdateProcess(id: string, data: Record) { return request.put({ url: `/web/admin/processes/${id}`, params: data }) } export function fetchDeleteProcess(id: string) { return request.del({ url: `/web/admin/processes/${id}` }) } export function fetchProcessDetail(id: string) { return request.get({ url: `/web/admin/processes/${id}` }) } // --------------------------------------------------------------------------- // 工艺路线管理 // --------------------------------------------------------------------------- export function fetchProcessRouteList(params?: { page?: number pageSize?: number routeName?: string routeCode?: string productTypeId?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number totalPages: number }>({ url: '/web/admin/process-routes', params }) } export function fetchProcessRouteDetail(id: string) { return request.get({ url: `/web/admin/process-routes/${id}` }) } export function fetchCreateProcessRoute(data: Record) { return request.post({ url: '/web/admin/process-routes', params: data }) } export function fetchUpdateProcessRoute(id: string, data: Record) { return request.put({ url: `/web/admin/process-routes/${id}`, params: data }) } export function fetchSetCurrentProcessRoute(routeId: string) { return request.put({ url: '/web/admin/process-routes/set-current', params: { routeId } }) } export function fetchDeleteProcessRoute(id: string) { return request.del({ url: `/web/admin/process-routes/${id}` }) } // 步骤操作 export function fetchAddRouteStep(data: { routeId: string processId: string stepOrder?: number }) { return request.post({ url: '/web/admin/process-routes/step/add', params: data }) } export function fetchCopyRouteStep(data: { stepId: string }) { return request.post({ url: '/web/admin/process-routes/step/copy', params: data }) } export function fetchUpdateRouteStep(data: Record) { return request.put({ url: '/web/admin/process-routes/step/update', params: data }) } export function fetchReorderRouteSteps(data: { routeId: string; stepIds: string[] }) { return request.put({ url: '/web/admin/process-routes/step/reorder', params: data }) } export function fetchDeleteRouteStep(stepId: string) { return request.del({ url: `/web/admin/process-routes/step/${stepId}` }) } // 步骤子表 export function fetchUpdateStepReagents(data: { stepId: string; items: any[] }) { return request.put({ url: '/web/admin/process-routes/step/reagent/update', params: data }) } export function fetchUpdateStepConsumables(data: { stepId: string; items: any[] }) { return request.put({ url: '/web/admin/process-routes/step/consumable/update', params: data }) } export function fetchUpdateStepOutputs(data: { stepId: string; items: any[] }) { return request.put({ url: '/web/admin/process-routes/step/output/update', params: data }) } export function fetchUpdateStepDataCollections(data: { stepId: string; items: any[] }) { return request.put({ url: '/web/admin/process-routes/step/data-collection/update', params: data }) } // --------------------------------------------------------------------------- // 试剂库存操作 // --------------------------------------------------------------------------- export function fetchReagentStockIn(id: string, data: { qty: number; remark?: string }) { return request.post({ url: `/web/admin/reagents/${id}/stock-in`, data }) } export function fetchReagentStockOut( id: string, data: { qty: number; receiver: string; purpose?: string; remark?: string } ) { return request.post({ url: `/web/admin/reagents/${id}/stock-out`, data }) } export function fetchReagentBatchStockIn(data: { items: Array<{ materialId: string; qty: number; remark?: string }> remark?: string }) { return request.post<{ count: number }>({ url: '/web/admin/reagents/batch-stock-in', data }) } export function fetchReagentBatchStockOut(data: { items: Array<{ materialId: string; qty: number }> receiver: string purpose?: string remark?: string }) { return request.post<{ count: number }>({ url: '/web/admin/reagents/batch-stock-out', data }) } export function fetchReagentStockLogs( id: string, params: { page: number; pageSize: number; changeType?: string } ) { return request.get<{ list: any[] total: number page: number pageSize: number }>({ url: `/web/admin/reagents/${id}/stock-logs`, params }) } export function fetchAllReagentStockLogs(params: { page: number pageSize: number keyword?: string changeType?: string startTime?: string endTime?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number }>({ url: '/web/admin/reagents/stock-logs', params }) } // --------------------------------------------------------------------------- // 耗材库存操作 // --------------------------------------------------------------------------- export function fetchConsumableStockIn(id: string, data: { qty: number; remark?: string }) { return request.post({ url: `/web/admin/consumables/${id}/stock-in`, data }) } export function fetchConsumableStockOut( id: string, data: { qty: number; receiver?: string; purpose?: string; remark?: string } ) { return request.post({ url: `/web/admin/consumables/${id}/stock-out`, data }) } export function fetchConsumableBatchStockIn(data: { items: { materialId: string; qty: number; remark?: string }[] remark?: string }) { return request.post<{ count: number }>({ url: '/web/admin/consumables/batch-stock-in', data }) } export function fetchConsumableBatchStockOut(data: { items: { materialId: string; qty: number }[] receiver?: string purpose?: string remark?: string }) { return request.post<{ count: number }>({ url: '/web/admin/consumables/batch-stock-out', data }) } export function fetchConsumableStockLogs( id: string, params: { page: number; pageSize: number; changeType?: string } ) { return request.get<{ list: any[] total: number page: number pageSize: number }>({ url: `/web/admin/consumables/${id}/stock-logs`, params }) } export function fetchAllConsumableStockLogs(params: { page: number pageSize: number keyword?: string changeType?: string startTime?: string endTime?: string }) { return request.get<{ list: any[] total: number page: number pageSize: number }>({ url: '/web/admin/consumables/stock-logs', params }) }