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) => {