This commit is contained in:
zlwu committed 2026-07-06 16:59:53 +08:00
1 parent 973176d508
commit cdaa0ac273
327 files changed
+32861 -25627

No files matched your search

+4 -2
View File
@@ -74,6 +74,9 @@ export function fetchMyProductionTasks(params: {
bizType?: string
scope: 'current' | 'history'
includeStepSummary?: boolean
excludeVoidProtocol?: boolean
plannedStartTimeStart?: string
plannedStartTimeEnd?: string
}) {
return request.get<{
list: any[]
@@ -152,8 +155,7 @@ export function fetchProductionTaskEditorInit(
id: string,
options?: { includeReference?: boolean }
) {
const params =
options?.includeReference === false ? { includeReference: false } : undefined
const params = options?.includeReference === false ? { includeReference: false } : undefined
return request.get<ProductionTaskEditorInitPayload>({
url: `/web/admin/production-tasks/${id}/editor-init`,
params
+22 -9
View File
@@ -26,6 +26,8 @@ export interface ProductionWorkOrderItem {
receptionTime?: string
workOrderStatus: string
createTime?: string
/** 卡片展示:工单下全部工艺步骤计划开始时间区间(前端聚合) */
plannedStartTimeRange?: string
remark?: string
labStorageCode?: string
protocolStatus?: string
@@ -62,7 +64,9 @@ export interface ProductionWorkOrderItem {
export type ProductionWorkOrderDetail = ProductionWorkOrderItem & {
reception?: QcWorkOrderReceptionDetail
productionReception?: import('@/utils/sample-production-reception-fields').ProductionReceptionRecord | null
productionReception?:
| import('@/utils/sample-production-reception-fields').ProductionReceptionRecord
| null
bizType?: string
bizTypeLabel?: string
/** 临床应用出库:简要申请单 */
@@ -100,6 +104,9 @@ export function fetchProductionWorkOrderList(params?: {
createTimeEnd?: string
infusionTimeStart?: string
infusionTimeEnd?: string
plannedStartTimeStart?: string
plannedStartTimeEnd?: string
excludeVoidProtocol?: boolean
}) {
return request.get<{
list: ProductionWorkOrderItem[]
@@ -201,7 +208,9 @@ export type ProductionWorkOrderQcInfoDetail = {
showGateSection?: boolean
gateQcInfo?: import('@/components/business/sample-qc-info-cards/index.vue').SampleQcInfo | null
processQcInfoList?: import('@/components/business/sample-qc-info-cards/index.vue').SampleQcInfo[]
sampleReception?: import('@/components/business/sample-qc-info-cards/index.vue').SampleReceptionBrief | null
sampleReception?:
| import('@/components/business/sample-qc-info-cards/index.vue').SampleReceptionBrief
| null
}
export function fetchProductionWorkOrderQcInfo(workOrderId: string) {
@@ -212,7 +221,7 @@ export function fetchProductionWorkOrderQcInfo(workOrderId: string) {
export type ProductionWorkOrderTabStepCount = {
overdueIncomplete: number
unassigned: number
futureIncomplete: number
}
export type ProductionWorkOrderTabStepCounts = Record<
@@ -220,13 +229,17 @@ export type ProductionWorkOrderTabStepCounts = Record<
ProductionWorkOrderTabStepCount
>
export function formatProductionWorkOrderTabStepBadge(count: ProductionWorkOrderTabStepCount): string {
export function formatProductionWorkOrderTabStepBadge(
count: ProductionWorkOrderTabStepCount
): string {
const fmt = (n: number) => (n > 99 ? '99+' : String(n))
return `${fmt(count.overdueIncomplete)}+${fmt(count.unassigned)}`
return `${fmt(count.overdueIncomplete)}+${fmt(count.futureIncomplete)}`
}
export function isProductionWorkOrderTabStepBadgeZero(count: ProductionWorkOrderTabStepCount): boolean {
return (count.overdueIncomplete || 0) === 0 && (count.unassigned || 0) === 0
export function isProductionWorkOrderTabStepBadgeZero(
count: ProductionWorkOrderTabStepCount
): boolean {
return (count.overdueIncomplete || 0) === 0 && (count.futureIncomplete || 0) === 0
}
/** 汇总可见 Tab 的步骤角标(左侧菜单展示各 Tab 数值之和) */
@@ -238,10 +251,10 @@ export function sumProductionWorkOrderTabStepCounts(
(acc, key) => {
const c = counts?.[key]
acc.overdueIncomplete += c?.overdueIncomplete || 0
acc.unassigned += c?.unassigned || 0
acc.futureIncomplete += c?.futureIncomplete || 0
return acc
},
{ overdueIncomplete: 0, unassigned: 0 }
{ overdueIncomplete: 0, futureIncomplete: 0 }
)
}
+3
View File
@@ -2,6 +2,7 @@ import request from '@/utils/http'
import type {
QcBasicExperimentFeeSummary,
QcProtocolPaymentSummary,
QcProtocolSiblingSample,
OutboundQcDetailProduct
} from '@/api/qc-work-order'
@@ -128,6 +129,8 @@ export type QcTask = {
feeSummary?: QcBasicExperimentFeeSummary | null
/** 列表级工单摘要:未完成标题栏角标数字 */
unfinishedBadgeCount?: number
/** 列表 enrich:同协议下全部样本 */
protocolSiblingSamples?: QcProtocolSiblingSample[]
}
export type QcTaskOperateScope = 'mine' | 'manage'
+9
View File
@@ -27,6 +27,12 @@ export type QcProtocolPaymentDetailSummary = {
payStatusLabel?: string
}
export type QcProtocolSiblingSample = {
sampleCode: string
labStorageCode?: string
sampleTypeName?: string
}
export type QcProtocolPaymentSummary = {
payMode?: string
payModeLabel?: string
@@ -153,6 +159,8 @@ export type QcWorkOrder = {
feeSummary?: QcBasicExperimentFeeSummary | null
/** 列表 enrich:未完成工单卡片角标数字(待配置=1,已配置=未完成任务数) */
unfinishedBadgeCount?: number
/** 列表 enrich:同协议下全部样本(标题栏「同协议样本」展示) */
protocolSiblingSamples?: QcProtocolSiblingSample[]
}
export type QcWorkOrderDetail = QcWorkOrder & {
@@ -220,6 +228,7 @@ export function fetchQcWorkOrderList(params?: {
infusionTimeStart?: string
infusionTimeEnd?: string
triggerSource?: string
sampleTypeId?: string
}) {
return request.get<PageList<QcWorkOrder>>({
url: '/web/admin/qc-work-orders',