From a3566335700e89b2f3e0ca2c7e01317c878fc3d5 Mon Sep 17 00:00:00 2001 From: zhouxiaofeng <2946471396@qq.com> Date: Wed, 3 Jun 2026 14:17:45 +0800 Subject: [PATCH] fix --- .../ContractPartyPlaceholderModal.vue | 57 +++++++++++++++---- 1 file changed, 46 insertions(+), 11 deletions(-) diff --git a/src/views/contract/launch/components/ContractPartyPlaceholderModal.vue b/src/views/contract/launch/components/ContractPartyPlaceholderModal.vue index e8e0aae..7ac081c 100644 --- a/src/views/contract/launch/components/ContractPartyPlaceholderModal.vue +++ b/src/views/contract/launch/components/ContractPartyPlaceholderModal.vue @@ -433,7 +433,7 @@ /> - + + + + + + +
是否需修订条款 - - + +
@@ -1035,7 +1051,7 @@ function normalizeBooleanValue(value) { function pickBooleanSource(source = {}, key) { const mapping = { - needAmendments: [source.needAmendments, source.isNeedAmendments], + // needAmendments 改为 String 1/0,不再走 boolean 映射 isInvolveHongKongMacaoTaiwan: [ source.isInvolveHongKongMacaoTaiwan, source.isSgat, @@ -1402,7 +1418,7 @@ function createContractFormData() { isIncludedInCurrentYearBudget: false, isShared: false, isMajorContract: false, - needAmendments: false, + needAmendments: "0", extraAmounts: { depositEnabled: false, deposit: 0, @@ -1420,6 +1436,8 @@ function createContractFormData() { bzjAmount: 0, performancePlans: [], signDate: "", + activeDate: "", + sealQuantity: 1, }; } @@ -1471,7 +1489,7 @@ function copyContractFormData(data = {}) { ? source.contractBodyArrayBuffer.slice(0) : null : null; - } else if (key === "signDate" || key === "invoiceDate" || key === "receiveDate") { + } else if (key === "signDate" || key === "invoiceDate" || key === "receiveDate" || key === "activeDate") { form[key] = source[key] ? String(source[key]).slice(0, 10) : form[key]; } else if (key === "assistDept") { form.assistDept = source.assistDept ?? source.assistDepartmentName ?? form.assistDept; @@ -1480,7 +1498,6 @@ function copyContractFormData(data = {}) { source.signingSubjectCode ?? source.orgId ?? form.signingSubjectCode; } else if ( [ - "needAmendments", "isInvolveHongKongMacaoTaiwan", "isPublicTender", "isForeignRelatedSubject", @@ -2002,6 +2019,15 @@ function validateState() { ) return "请填写期限说明"; if (!detailState.value.valuationMode) return "请选择计价方式"; + // 固定总价时标的额必填 + if ( + detailState.value.valuationMode === "1" && + (detailState.value.contractAmount === null || + detailState.value.contractAmount === undefined || + detailState.value.contractAmount === "") + ) + return "请填写合同标的额"; + // 预估总价时预估金额必填 if ( detailState.value.valuationMode === "2" && (detailState.value.estimatedAmount === null || @@ -2009,13 +2035,20 @@ function validateState() { detailState.value.estimatedAmount === "") ) return "请填写预估金额"; + // 无金额/无法预估总价时金额说明必填 + if ( + (detailState.value.valuationMode === "0" || + detailState.value.valuationMode === "3") && + !detailState.value.amountExplain?.trim() + ) + return "请填写金额说明"; if (!detailState.value.currencyName) return "请选择币种"; if (!detailState.value.sealType) return "请选择签订方式"; if (!detailState.value.textSource) return "请选择文本来源"; - if (!detailState.value.mandateType) return "请选择委托类型"; - if (!detailState.value.cargoType) return "请选择货种"; + // needAmendments 必填(文档要求) + if (!detailState.value.needAmendments || detailState.value.needAmendments === "") return "请选择是否需修订条款"; if (!detailState.value.paymentDirection) return "请选择收支方向"; - if (!detailState.value.isElectron) return "请选择签署方式"; + if (!detailState.value.contractTypeCode) return "请选择合同属性中的合同类型"; if (!detailState.value.contractTypeCode) return "请选择合同属性中的合同类型"; if (!detailState.value.executorAccount?.trim()) return "请填写合同执行人"; if (detailState.value.isPublicTender && !detailState.value.biddingNo?.trim()) @@ -2178,7 +2211,7 @@ function buildLaunchRecord() { primaryContent: detailState.value.primaryContent, amountExplain: detailState.value.amountExplain, valuationMode: detailState.value.valuationMode, - needAmendments: detailState.value.needAmendments ? "1" : "0", + needAmendments: detailState.value.needAmendments, estimatedAmount: detailState.value.valuationMode === "2" ? detailState.value.estimatedAmount @@ -2214,6 +2247,8 @@ function buildLaunchRecord() { signDate: formatDateTimeValue(detailState.value.signDate), invoiceDate: formatDateTimeValue(detailState.value.invoiceDate), receiveDate: formatDateTimeValue(detailState.value.receiveDate), + activeDate: formatDateTimeValue(detailState.value.activeDate), + sealQuantity: detailState.value.sealQuantity, templateFieldValuesJson: JSON.stringify( detailState.value.templateFieldValues || {}, ),