Files
zkxw/web-admin/src/api/sample-reception.ts
T
2026-06-30 09:19:06 +08:00

117 lines
2.7 KiB
TypeScript

import request from '@/utils/http'
type PageList<T> = {
list: T[]
total: number
page: number
pageSize: number
totalPages: number
}
export function fetchSampleReceptionPendingList(params?: {
page?: number
pageSize?: number
keyword?: string
sourceType?: string
etaTimeStart?: string
etaTimeEnd?: string
}) {
return request.get<PageList<Record<string, unknown>>>({
url: '/web/admin/sample-receptions/pending',
params
})
}
export function fetchSampleReceptionReceivedList(params?: {
page?: number
pageSize?: number
keyword?: string
sourceType?: string
receptionTimeStart?: string
receptionTimeEnd?: string
}) {
return request.get<PageList<Record<string, unknown>>>({
url: '/web/admin/sample-receptions/received',
params
})
}
export function fetchSampleReceptionDetail(receptionId: string) {
return request.get<Record<string, unknown>>({
url: `/web/admin/sample-receptions/${receptionId}`
})
}
export function fetchAllocateLabStorageCodes(data: { receptionDate: string; count?: number }) {
return request.post<{ codes: string[] }>({
url: '/web/admin/sample-receptions/allocate-lab-storage-codes',
data
})
}
export type SampleReceptionCheckResult = {
id?: string
checkItemId?: string
itemCode: string
itemName: string
checked: boolean
orderNum?: number
}
export function fetchSampleReceptionUpdate(
receptionId: string,
data: {
receptionTime: string
handlerUserId?: string
handlerName?: string
receiveTemperature?: string
checks: Array<{ checkItemId: string; checked: boolean }>
acceptConclusion: 'js' | 'bj'
receiveAttachments?: string
remark?: string
labStorageCode?: string
}
) {
return request.put({
url: `/web/admin/sample-receptions/${receptionId}`,
data
})
}
export function fetchSampleReceptionSubmit(data: {
protocolSampleId?: string
sourceType?: 'cell_storage' | 'research_donation'
donationSampleId?: string
receptionTime: string
handlerUserId?: string
handlerName?: string
receiveTemperature?: string
checks: Array<{ checkItemId: string; checked: boolean }>
acceptConclusion: 'js' | 'bj'
receiveAttachments?: string
remark?: string
labStorageCode?: string
}) {
return request.post({
url: '/web/admin/sample-receptions',
data
})
}
/**
* 根据样本编码查询样本接收记录
* @returns 包含 receptionId(有记录时)和 sampleInfo(样本信息)的对象;无记录时 receptionId 为空
*/
export function fetchSampleReceptionBySampleCode(params: {
sampleCode: string
sourceType?: string
}) {
return request.get<{
receptionId?: string
sampleInfo?: Record<string, unknown> | null
}>({
url: '/web/admin/sample-receptions/by-sample-code',
params
})
}