diff --git a/src/views/modules/sampleTracking/projectProofTracking.vue b/src/views/modules/sampleTracking/projectProofTracking.vue
index d47e177..04b7894 100644
--- a/src/views/modules/sampleTracking/projectProofTracking.vue
+++ b/src/views/modules/sampleTracking/projectProofTracking.vue
@@ -1076,6 +1076,18 @@
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
+ style="width: 100%"
+ @change="handleProofDialogRequiredDeliveryDateChange">
+
+
+
+
+
+
@@ -1091,14 +1103,14 @@
+
+
-
-
-
+
@@ -4073,6 +4085,7 @@ export default {
proofingNumber: '',
planStartDate: '',
requiredDeliveryDate: '',
+ baseline: '',
actualityDeliveryDate: '',
pmInqueryTime: '',
importance: 'N',
@@ -4636,7 +4649,7 @@ export default {
handleOneKeyProofingNoChange (proofingNo) {
const selectedNo = this.isBlankValue(proofingNo) ? '' : String(proofingNo).trim()
if (this.oneKeyDialogMode !== 'create') {
- // 修改模式下预计完成日期、打样开始日期以数据库已存值为准,不跟随打样单号自动回填/清空。
+ // 修改模式:库里已有日期保留;为空时才跟随打样单号回填,避免空日期一直缺值。
if (!selectedNo) {
this.oneKeyForm.proofingNo = ''
return
@@ -4644,6 +4657,7 @@ export default {
const matchedInEdit = this.oneKeyProofingApplyOptions.find(item => item && item.applyNo === selectedNo)
if (matchedInEdit) {
this.oneKeyForm.proofingNo = matchedInEdit.applyNo
+ this.fillEmptyOneKeyProofingDatesFromApply(matchedInEdit)
}
return
}
@@ -4662,6 +4676,23 @@ export default {
this.oneKeyForm.planStartDate = matched.createTime || ''
this.syncOneKeyBaselineByRequiredDeliveryDate(this.oneKeyForm.requiredDeliveryDate, false)
},
+ fillEmptyOneKeyProofingDatesFromApply (matched) {
+ if (!matched) {
+ return
+ }
+ let filledRequiredDate = false
+ if (this.isBlankValue(this.oneKeyForm.requiredDeliveryDate)) {
+ this.oneKeyForm.requiredDeliveryDate = matched.expectedFinishDate || ''
+ filledRequiredDate = true
+ }
+ if (this.isBlankValue(this.oneKeyForm.planStartDate)) {
+ this.oneKeyForm.planStartDate = matched.createTime || ''
+ }
+ // 仅在本次补了预计完成日期时尝试带出 baseline,避免覆盖修改态已有 baseline。
+ if (filledRequiredDate) {
+ this.syncOneKeyBaselineByRequiredDeliveryDate(this.oneKeyForm.requiredDeliveryDate, false)
+ }
+ },
handleOneKeyRequiredDeliveryDateChange (dateVal) {
this.syncOneKeyBaselineByRequiredDeliveryDate(dateVal, false)
},
@@ -4745,6 +4776,21 @@ export default {
this.proofDialogData.requiredDeliveryDate = matched.expectedFinishDate || ''
// 打样开始日期默认取工程实验单创建日期;清空打样单时同步清空,避免残留旧单日期。
this.proofDialogData.planStartDate = matched.createTime || ''
+ this.syncProofDialogBaselineByRequiredDeliveryDate(this.proofDialogData.requiredDeliveryDate, false)
+ },
+ handleProofDialogRequiredDeliveryDateChange (dateVal) {
+ this.syncProofDialogBaselineByRequiredDeliveryDate(dateVal, false)
+ },
+ syncProofDialogBaselineByRequiredDeliveryDate (requiredDeliveryDate, forceSync) {
+ const normalizedRequiredDate = this.formatDate(requiredDeliveryDate)
+ if (!normalizedRequiredDate) {
+ return
+ }
+ const normalizedBaseline = this.formatDate(this.proofDialogData.baseline)
+ if (forceSync || !normalizedBaseline) {
+ // 新增打样时 baseline 首次默认跟随预计完成日期,后续允许用户改写。
+ this.proofDialogData.baseline = normalizedRequiredDate
+ }
},
loadProofDialogApplyOptions (projectNo) {
const normalizedProjectNo = this.normalizeProjectNo(projectNo)
@@ -5523,6 +5569,7 @@ export default {
proofingNumber: '',
planStartDate: '',
requiredDeliveryDate: '',
+ baseline: '',
actualityDeliveryDate: '',
pmInqueryTime: '',
importance: 'N',
@@ -5747,6 +5794,15 @@ export default {
}
return true
},
+ resolveProofDialogBaseline () {
+ const baseline = this.formatDate(this.proofDialogData.baseline)
+ if (baseline) {
+ return baseline
+ }
+ // 用户未填 baseline 时,按预计完成日期初始化,与一键创建口径一致。
+ const requiredDeliveryDate = this.formatDate(this.proofDialogData.requiredDeliveryDate)
+ return requiredDeliveryDate || null
+ },
buildProofPayload () {
return {
site: this.proofDialogData.site,
@@ -5762,6 +5818,7 @@ export default {
proofingNumber: Number(this.proofDialogData.proofingNumber),
planStartDate: this.proofDialogData.planStartDate,
requiredDeliveryDate: this.proofDialogData.requiredDeliveryDate,
+ baseline: this.resolveProofDialogBaseline(),
actualityDeliveryDate: this.proofDialogData.actualityDeliveryDate || null,
pmInqueryTime: this.isBlankValue(this.proofDialogData.pmInqueryTime) ? null : this.proofDialogData.pmInqueryTime,
importance: this.normalizeImportanceValue(this.proofDialogData.importance),