签订日期

This commit is contained in:
2026-06-08 14:32:00 +08:00
parent 9df278e85f
commit 92fd726e2b
4 changed files with 222 additions and 5 deletions
@@ -602,12 +602,28 @@
placeholder="选填,用于应收账款提醒"
/>
</a-form-item>
<a-form-item class="tight-item" label="签订日期">
<a-date-picker
v-model:value="detailState.signDate"
value-format="YYYY-MM-DD"
style="width: 100%"
placeholder="签署完成前需补齐"
/>
</a-form-item>
<a-form-item class="tight-item" label="用印时间">
<a-date-picker
v-model:value="detailState.sealDate"
value-format="YYYY-MM-DD"
style="width: 100%"
placeholder="签署完成前需补齐"
/>
</a-form-item>
<a-form-item class="tight-item" label="合同生效日期">
<a-date-picker
v-model:value="detailState.activeDate"
value-format="YYYY-MM-DD"
style="width: 100%"
placeholder="合同生效日期必须在合同期限范围内"
placeholder="必填,且必须在合同期限范围内"
/>
</a-form-item>
<a-form-item class="tight-item" label="用印数量">
@@ -1450,6 +1466,7 @@ function createContractFormData() {
bzjAmount: 0,
performancePlans: [],
signDate: "",
sealDate: "",
activeDate: "",
sealQuantity: 1,
};
@@ -1503,7 +1520,7 @@ function copyContractFormData(data = {}) {
? source.contractBodyArrayBuffer.slice(0)
: null
: null;
} else if (key === "signDate" || key === "invoiceDate" || key === "receiveDate" || key === "activeDate") {
} else if (key === "signDate" || key === "sealDate" || 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;
@@ -2032,6 +2049,15 @@ function validateState() {
!detailState.value.periodExplain?.trim()
)
return "请填写期限说明";
if (!detailState.value.activeDate) return "请选择合同生效日期";
if (
detailState.value.contractPeriodType === "0" &&
detailState.value.effectiveStart &&
detailState.value.effectiveEnd &&
(detailState.value.activeDate < detailState.value.effectiveStart ||
detailState.value.activeDate > detailState.value.effectiveEnd)
)
return "合同生效日期必须在合同期限范围内";
if (!detailState.value.valuationMode) return "请选择计价方式";
// 固定总价时标的额必填
if (
@@ -2073,12 +2099,19 @@ function validateState() {
!(detailState.value.authAttachmentList || []).length
)
return "请上传授权委托书附件";
if (!(detailState.value.performancePlans || []).length)
return "请至少添加一条履行计划";
for (const plan of detailState.value.performancePlans || []) {
if (!plan.planMatter?.trim()) return "请填写履行计划的履行事项";
if (!plan.planWhere?.trim()) return "请填写履行计划的履约条件";
if (!plan.planTime) return "请选择履行计划的节点日期";
if (plan.planDay === null || plan.planDay === undefined || plan.planDay === "")
return "请填写履行计划的提醒提前天数";
if (
!["0", "3"].includes(detailState.value.valuationMode) &&
(plan.planMoney === null || plan.planMoney === undefined || plan.planMoney === "")
)
return "请填写履行计划的款项金额";
}
return "";
}
@@ -2258,6 +2291,7 @@ function buildLaunchRecord() {
contractTextFileType: detailState.value.contractBodyFileType || "docx",
contractTextFileSize: detailState.value.contractBodyFileSize || null,
signDate: formatDateTimeValue(detailState.value.signDate),
sealDate: formatDateTimeValue(detailState.value.sealDate),
invoiceDate: formatDateTimeValue(detailState.value.invoiceDate),
receiveDate: formatDateTimeValue(detailState.value.receiveDate),
activeDate: formatDateTimeValue(detailState.value.activeDate),