From 37ae086d2af9d5157db1246e36ffa9ff8004ad46 Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 5 Jun 2026 16:10:14 +0800 Subject: [PATCH] =?UTF-8?q?1.1.56=20=E5=90=88=E5=90=8C=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=97=B6=E5=8F=91=E8=B4=A7/=E4=BA=A4=E8=B4=A7=E6=9C=9F?= =?UTF-8?q?=E4=B8=8E=E8=B4=A8=E4=BF=9D=E6=9C=9F=E6=8F=8F=E8=BF=B0=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E9=80=89=E6=8B=A9=E6=A8=A1=E6=9D=BF=E3=80=81=E5=90=88?= =?UTF-8?q?=E5=90=8C=E6=A8=A1=E6=9D=BF=E6=A0=87=E8=AF=86=E9=80=89=E5=86=85?= =?UTF-8?q?=E9=83=A8=E6=97=B6=E5=90=88=E5=90=8C=E6=A8=A1=E6=9D=BF=E5=BF=85?= =?UTF-8?q?=E5=A1=AB=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/oa/erp/contractInfo/edit.vue | 123 +++++++++++++++++++++++-- 1 file changed, 117 insertions(+), 6 deletions(-) diff --git a/src/views/oa/erp/contractInfo/edit.vue b/src/views/oa/erp/contractInfo/edit.vue index f896440..a1bee51 100644 --- a/src/views/oa/erp/contractInfo/edit.vue +++ b/src/views/oa/erp/contractInfo/edit.vue @@ -279,7 +279,11 @@ v-model="form.warrantyPeriodDescription" placeholder="请完整输入质保期描述(如:验收合格后12个月或发货后18个月等)" :disabled="isFormDisabled" - /> + > + + @@ -309,12 +313,13 @@ + > + + @@ -755,6 +760,44 @@ + + + + + + + + + + + + + + + + + + @@ -981,6 +1024,52 @@ const materialRules = { taxRate: [{ required: true, message: '税率不能为空', trigger: 'blur' }] }; +/** 发货/交货期预设模板 */ +const deliveryStartTemplates = [ + { content: '自合同签订并生效之日起XX天发货' }, + { content: '自合同签订并生效之日起30天发货' }, + { content: '自合同签订并生效之日起60天发货' } +]; + +const deliveryStartTemplateDialog = reactive({ + visible: false +}); + +/** 打开发货/交货期模板选择弹窗 */ +const openDeliveryStartTemplateDialog = () => { + deliveryStartTemplateDialog.visible = true; +}; + +/** 选择发货/交货期模板 */ +const selectDeliveryStartTemplate = (row: { content: string }) => { + form.value.deliveryStart = row.content; + deliveryStartTemplateDialog.visible = false; + contractInfoFormRef.value?.validateField('deliveryStart'); +}; + +/** 质保期描述预设模板 */ +const warrantyPeriodDescriptionTemplates = [ + { content: '设备自XX之日起提供XX月的质保期服务' }, + { content: '设备自验收合格之日起提供12个月的质保期服务' }, + { content: '设备自发货之日起提供18个月的质保期服务' }, +]; + +const warrantyTemplateDialog = reactive({ + visible: false +}); + +/** 打开质保期描述模板选择弹窗 */ +const openWarrantyTemplateDialog = () => { + warrantyTemplateDialog.visible = true; +}; + +/** 选择质保期描述模板 */ +const selectWarrantyTemplate = (row: { content: string }) => { + form.value.warrantyPeriodDescription = row.content; + warrantyTemplateDialog.visible = false; + contractInfoFormRef.value?.validateField('warrantyPeriodDescription'); +}; + // 合同付款方式对话框 const paymentMethodDialog = reactive({ visible: false, @@ -1186,6 +1275,18 @@ const data = reactive<{ form: ContractInfoFormEx; rules: any }>({ } ], contractTemplateFlag: [{ required: true, message: '合同模板标识不能为空', trigger: 'blur' }], + templateId: [ + { + validator: (_rule: any, _value: any, callback: (err?: Error) => void) => { + if (form.value.contractTemplateFlag === '2' && !form.value.templateId) { + callback(new Error('合同模板不能为空')); + return; + } + callback(); + }, + trigger: 'change' + } + ], isFrameworkContract: [{ required: true, message: '请选择关联框架合同', trigger: 'change' }], frameworkValidPeriod: [ { @@ -1279,6 +1380,16 @@ watch( { immediate: true } ); +watch( + () => form.value.contractTemplateFlag, + (newVal) => { + if (newVal === '1') { + form.value.templateId = undefined; + } + nextTick(() => contractInfoFormRef.value?.validateField('templateId')); + } +); + watch( () => form.value.settlementCurrency, (newVal) => {