diff --git a/src/views/modules/sampleTracking/projectProofTracking.vue b/src/views/modules/sampleTracking/projectProofTracking.vue index a340690..daea97d 100644 --- a/src/views/modules/sampleTracking/projectProofTracking.vue +++ b/src/views/modules/sampleTracking/projectProofTracking.vue @@ -6260,20 +6260,33 @@ export default { } return this.getTrackingStatusProcessLabel(row, processCol) }, - getTrackingStatusType (row) { + getTrackingPackageDate (row) { if (!row) { return '' } const requiredDeliveryDate = this.formatDate(row.requiredDeliveryDate) - if (!requiredDeliveryDate) { + if (requiredDeliveryDate) { + return requiredDeliveryDate + } + // requiredDeliveryDate 与 Delivery&Package 工序日期同一口径,主字段缺失时回退工序实际日期。 + return this.formatDate(row.deliveryPackageActualDate) + }, + getTrackingStatusType (row) { + if (!row) { + return '' + } + const packageDate = this.getTrackingPackageDate(row) + const baseline = this.formatDate(row.baseline) + // 缺少 package 或 baseline 时无法判定延期,保持空状态由文案函数显示 '-'。 + if (!packageDate || !baseline) { return '' } - const today = this.formatDate(new Date()) - // 按业务口径:今日 <= 预计完成日期 判定为 On schedule,其余判定为 Delay。 - if (today <= requiredDeliveryDate) { - return 'onSchedule' + // Delay 按 Delivery&Package 相对原计划判定:package 晚于 baseline 即延期, + // 不再用“今天 vs 预计完成日期”,避免计划已改期后仍显示 On schedule。 + if (packageDate > baseline) { + return 'delay' } - return 'delay' + return 'onSchedule' }, isProofingFinishedForTrackingStatus (row) { if (!row || this.isBlankValue(row.proofingStatus)) {