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