This commit is contained in:
zlwu committed 2026-05-27 05:23:28 +08:00
1 parent ad8f8d696f
commit 41aa90aa05
115 files changed
+29626 -10210

No files matched your search

-13
View File
@@ -2217,19 +2217,6 @@ export const createOutboundQcWorkOrder = (data: any) =>
params: data
})
// ========== 中试服务 - 放行审核 ==========
export const createReleaseReview = (data: any) =>
request.post({ url: '/web/admin/pilot-release-review/create', params: data })
export const fetchReleaseReviewList = (params: any) =>
request.get({ url: '/web/admin/pilot-release-review/list', params })
export const updateReleaseReview = (data: any) =>
request.put({ url: '/web/admin/pilot-release-review/update', params: data })
export const deleteReleaseReview = (data: any) =>
request.del({ url: '/web/admin/pilot-release-review/delete', data })
// ========== 中试服务 - 应用确认 ==========
export const createInfusionConfirm = (data: any) =>
request.post({ url: '/web/admin/pilot-infusion-confirm/create', params: data })
@@ -0,0 +1,60 @@
import request from '@/utils/http'
export type OutboundHandoverInfo = {
handoverUserId?: string
handoverPerson?: string
handoverTime?: string
handoverLocation?: string
receiverPerson?: string
remark?: string
}
export type OutboundHandoverDetail = {
scheduleSummary?: {
applicationNo?: string
patientName?: string
infusionTime?: string
}
outboundMaterial?: {
remark?: string
cells?: Array<{ cellProductId?: string; remark?: string }>
qcMaterials?: Array<{ qcMaterialId?: string; qty?: number; remark?: string }>
paperMaterials?: Array<{
paperName?: string
copies?: number
attachmentUrl?: string
remark?: string
}>
}
handover?: OutboundHandoverInfo
}
export function fetchInfusionScheduleOutboundHandover(scheduleId: string) {
return request.get<OutboundHandoverDetail>({
url: `/web/admin/pilot-infusion-schedule-mgmt/${scheduleId}/outbound-handover`
})
}
export function saveInfusionScheduleOutboundHandover(
scheduleId: string,
data: {
outboundMaterial: {
remark?: string
cells: { cellProductId: string; remark?: string }[]
qcMaterials: { materialId: string; qty: number; remark?: string }[]
paperMaterials: { paperName: string; copies: number; attachmentUrl: string; remark?: string }[]
}
handover: {
handoverUserId: string
handoverTime: string
handoverLocation?: string
receiverPerson: string
remark?: string
}
}
) {
return request.put<OutboundHandoverDetail>({
url: `/web/admin/pilot-infusion-schedule-mgmt/${scheduleId}/outbound-handover`,
data
})
}
@@ -0,0 +1,219 @@
import request from '@/utils/http'
import type {
OutboundQcDetailApplication,
OutboundQcDetailPatient,
OutboundQcDetailInfusionPlan,
OutboundQcDetailInfusionSchedule,
OutboundQcDetailProduct,
} from '@/api/qc-work-order'
type PageList<T> = {
list: T[]
total: number
page: number
pageSize: number
totalPages: number
}
export type OutboundReleaseReview = {
id: string
scheduleId?: string
/** pilot_service=中试服务 clinical_application=临床应用 */
bizType?: string
bizTypeLabel?: string
applicationNo?: string
patientName?: string
cellType?: string
specText?: string
infusionTime?: string
scheduleStatus?: string
scheduleStatusLabel?: string
qcStatus?: string
qcStatusLabel?: string
reviewConclusion?: string
reviewConclusionLabel?: string
reviewRemark?: string
reviewAttachments?: string
reviewByName?: string
reviewTime?: string
createTime?: string
updateTime?: string
}
export type {
OutboundQcDetailApplication,
OutboundQcDetailPatient,
OutboundQcDetailInfusionPlan,
OutboundQcDetailInfusionSchedule,
OutboundQcDetailProduct,
}
export type OutboundReviewInfo = {
id?: string
scheduleId?: string
reviewConclusion?: string
reviewRemark?: string
reviewAttachments?: string
reviewByName?: string
reviewTime?: string
}
export type OutboundProductionTask = {
id?: string
taskNo?: string
taskName?: string
taskStatus?: string
taskStatusLabel?: string
conclusion?: string
conclusionLabel?: string
startedTime?: string
completedTime?: string
}
export type OutboundProductionInfo = {
workOrderNo?: string
workOrderStatus?: string
workOrderStatusLabel?: string
tasks?: OutboundProductionTask[]
}
export type OutboundQcTask = {
id?: string
taskType?: string
taskTypeLabel?: string
taskStatus?: string
taskStatusLabel?: string
conclusion?: string
conclusionLabel?: string
}
export type OutboundQcInfo = {
workOrderNo?: string
workOrderStatus?: string
workOrderStatusLabel?: string
tasks?: OutboundQcTask[]
}
export type OutboundReleaseReviewDetail = {
application?: OutboundQcDetailApplication
patient?: OutboundQcDetailPatient
infusionPlan?: OutboundQcDetailInfusionPlan
infusionSchedule?: OutboundQcDetailInfusionSchedule
products?: OutboundQcDetailProduct[]
productionInfo?: OutboundProductionInfo
qcInfo?: OutboundQcInfo
reviewInfo?: OutboundReviewInfo
outboundMaterial?: OutboundReleaseMaterialDetail
}
export type OutboundReleaseCellRow = {
id?: string
cellProductId?: string
productCode?: string
productName?: string
productTypeName?: string
specName?: string
passage?: string
batchNo?: string
storageSlotName?: string
productStatus?: string
remark?: string
}
export type OutboundReleaseQcMaterialRow = {
id?: string
qcMaterialId?: string
qty?: number
materialCode?: string
materialName?: string
specModel?: string
unit?: string
remark?: string
}
export type OutboundReleasePaperRow = {
id?: string
paperName?: string
copies?: number
attachmentUrl?: string
remark?: string
}
export type OutboundReleaseMaterialDetail = {
id?: string
infusionScheduleId?: string
paperAttachments?: string
paperMaterials?: OutboundReleasePaperRow[]
remark?: string
cells?: OutboundReleaseCellRow[]
qcMaterials?: OutboundReleaseQcMaterialRow[]
createTime?: string
updateTime?: string
}
export function fetchOutboundReleaseReviewList(params?: {
page?: number
pageSize?: number
scheduleStatus?: string
reviewConclusion?: string
qcStatus?: string
keyword?: string
}) {
return request.get<PageList<OutboundReleaseReview>>({
url: '/web/admin/pilot-release-reviews',
params,
})
}
export function fetchOutboundReleaseReviewDetail(scheduleId: string) {
return request.get<OutboundReleaseReviewDetail>({
url: `/web/admin/pilot-release-reviews/${scheduleId}/detail`,
})
}
export function submitOutboundReleaseReview(
scheduleId: string,
data: {
reviewConclusion: string
reviewRemark?: string
reviewAttachments?: string
}
) {
return request.put<OutboundReleaseReview>({
url: `/web/admin/pilot-release-reviews/${scheduleId}/review`,
data,
})
}
export function batchReviewOutboundRelease(data: {
scheduleIds: string[]
reviewConclusion: string
reviewRemark?: string
reviewAttachments?: string
}) {
return request.put<void>({
url: '/web/admin/pilot-release-reviews/batch-review',
data,
})
}
export function fetchOutboundReleaseMaterial(scheduleId: string) {
return request.get<OutboundReleaseMaterialDetail>({
url: `/web/admin/pilot-release-reviews/${scheduleId}/outbound-materials`,
})
}
export function saveOutboundReleaseMaterial(
scheduleId: string,
data: {
paperMaterials?: { paperName: string; copies: number; attachmentUrl: string; remark?: string }[]
remark?: string
cells: { cellProductId: string; remark?: string }[]
qcMaterials: { materialId: string; qty: number; remark?: string }[]
}
) {
return request.put<OutboundReleaseMaterialDetail>({
url: `/web/admin/pilot-release-reviews/${scheduleId}/outbound-materials`,
data,
})
}