提交
This commit is contained in:
1 parent
c1832f9d03
commit
e7d080c9d3
27 files changed
+5168
-4954
No files matched your search
@@ -237,10 +237,10 @@ const CARD_META_BY_TAB: Record<ProductionWorkOrderTabKey, ProductionWorkOrderCar
|
||||
showProtocolFeeSummary: false,
|
||||
showOutboundFeeSummary: false,
|
||||
metaFields: temporaryFields,
|
||||
allowDispatchQc: false,
|
||||
allowDispatchQc: true,
|
||||
allowSampleReception: false,
|
||||
allowDispatchComplete: false,
|
||||
allowEditRemark: false,
|
||||
allowDispatchComplete: true,
|
||||
allowEditRemark: true,
|
||||
allowDelete: true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { QcWorkOrder } from '@/api/qc-work-order'
|
||||
import { fetchQcWorkOrderDetail } from '@/api/qc-work-order'
|
||||
import { fetchMyQcTaskList, type QcTask } from '@/api/qc-task'
|
||||
import { groupInboundQcWorkOrders } from '@/utils/qc-work-order-groups'
|
||||
import { groupInboundQcWorkOrders, matchesTemporaryQcSourceFilter } from '@/utils/qc-work-order-groups'
|
||||
import type { QcWorkOrderTabKey } from '@/utils/qc-work-order-tabs'
|
||||
import {
|
||||
resolveTabKeyFromWorkOrder,
|
||||
@@ -51,7 +51,7 @@ function keywordMatchesWorkOrder(row: QcWorkOrder, keyword: string, tabKey: QcWo
|
||||
const tab = getQcWorkOrderTab(tabKey)!
|
||||
const fields =
|
||||
tabKey === 'temporary'
|
||||
? [row.workOrderNo]
|
||||
? [row.workOrderNo, row.productionWorkOrderNo]
|
||||
: tabKey === 'outbound_basic_experiment'
|
||||
? [row.workOrderNo, row.applicationNo, row.projectTitle, row.customerName, row.applicationName]
|
||||
: tab.group === 'outbound'
|
||||
@@ -70,8 +70,12 @@ export function filterMineEntriesByWorkOrderSearch(
|
||||
const row = entry.workOrder
|
||||
if (resolveTabKeyFromWorkOrder(row) !== tabKey) return false
|
||||
if (filters.workOrderStatus && row.workOrderStatus !== filters.workOrderStatus) return false
|
||||
if (tab.listLayout !== 'standalone' && filters.triggerSource && row.triggerSource !== filters.triggerSource) {
|
||||
return false
|
||||
if (filters.triggerSource) {
|
||||
if (tabKey === 'temporary') {
|
||||
if (!matchesTemporaryQcSourceFilter(row, filters.triggerSource)) return false
|
||||
} else if (tab.listLayout !== 'standalone' && row.triggerSource !== filters.triggerSource) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
if (!keywordMatchesWorkOrder(row, filters.keyword || '', tabKey)) return false
|
||||
if (tabUsesInfusionTimeFilter(tab)) {
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
import type { QcWorkOrder } from '@/api/qc-work-order'
|
||||
import { qcBizTypeLabel } from '@/utils/qc-labels'
|
||||
import {
|
||||
donationStatusLabel,
|
||||
donationStatusTagType,
|
||||
protocolStatusLabel,
|
||||
protocolStatusTagType,
|
||||
qcBizTypeTagType
|
||||
protocolStatusTagType
|
||||
} from '@/utils/status-tag-registry'
|
||||
import type { TagType } from '@/utils/status-tag-registry'
|
||||
import type { QcWorkOrderTabKey } from '@/utils/qc-work-order-tabs'
|
||||
import { getQcWorkOrderTab } from '@/utils/qc-work-order-tabs'
|
||||
import { formatMoneyDisplay } from '@/utils/money-format'
|
||||
import {
|
||||
isTemporaryQcFromProduction
|
||||
} from '@/utils/qc-work-order-groups'
|
||||
|
||||
export type CardMetaFieldKind = 'text' | 'tag'
|
||||
|
||||
@@ -130,10 +131,9 @@ const outboundBasicExperimentFields: CardMetaField[] = [
|
||||
|
||||
const temporaryFields: CardMetaField[] = [
|
||||
{
|
||||
label: '业务类型',
|
||||
kind: 'tag',
|
||||
getValue: (row) => row.qcBizTypeLabel || qcBizTypeLabel('temporary'),
|
||||
getTagType: () => qcBizTypeTagType('temporary')
|
||||
label: '关联生产工单',
|
||||
getValue: (row) => row.productionWorkOrderNo || '—',
|
||||
visible: (row) => isTemporaryQcFromProduction(row)
|
||||
},
|
||||
{
|
||||
label: '产品编码',
|
||||
@@ -266,7 +266,7 @@ const CARD_META_BY_TAB: Record<QcWorkOrderTabKey, QcWorkOrderCardMetaConfig> = {
|
||||
temporary: {
|
||||
tabKey: 'temporary',
|
||||
listLayout: 'standalone',
|
||||
showTriggerTag: false,
|
||||
showTriggerTag: true,
|
||||
showProtocolFeeSummary: false,
|
||||
showOutboundFeeSummary: false,
|
||||
metaFields: temporaryFields,
|
||||
|
||||
@@ -75,3 +75,23 @@ export function isGateTriggerSource(source?: string | null) {
|
||||
const ts = (source || 'reception').trim()
|
||||
return ts === 'reception' || ts === 'schedule'
|
||||
}
|
||||
|
||||
/** 临时质检:是否由生产工单派发 */
|
||||
export function isTemporaryQcFromProduction(row: QcWorkOrder) {
|
||||
return (row.triggerSource || '') === 'production' || !!(row.productionWorkOrderId || '').trim()
|
||||
}
|
||||
|
||||
export function temporaryQcSourceLabel(row: QcWorkOrder) {
|
||||
return isTemporaryQcFromProduction(row) ? '生产派发' : '手动创建'
|
||||
}
|
||||
|
||||
export function temporaryQcSourceTagType(row: QcWorkOrder): 'warning' | 'info' {
|
||||
return isTemporaryQcFromProduction(row) ? 'warning' : 'info'
|
||||
}
|
||||
|
||||
export function matchesTemporaryQcSourceFilter(row: QcWorkOrder, filterValue?: string) {
|
||||
if (!filterValue) return true
|
||||
if (filterValue === 'production') return isTemporaryQcFromProduction(row)
|
||||
if (filterValue === 'manual') return !isTemporaryQcFromProduction(row)
|
||||
return (row.triggerSource || '') === filterValue
|
||||
}
|
||||
Reference in new issue
Block a user