@@ -198,7 +194,7 @@ const payMentRules = {
advancePayRatio: [{ required: true, message: '请输入预付款比例', trigger: 'blur' }],
balancePayRatio: [{ required: true, message: '请输入尾款比例', trigger: 'blur' }],
assuranceDepositRatio: [{ required: true, message: '请输入质保金比例', trigger: 'blur' }],
- payRatio: [{ required: true, message: '请输入付款比例', trigger: 'blur' }],
+
};
const project = computed(() => {
@@ -207,6 +203,16 @@ const project = computed(() => {
return JSON.parse(localStorage.getItem("selectedProject"))
});
+const payRatioComputed = computed({
+ get: () => {
+ const { advancePayRatio = 0, balancePayRatio = 0, assuranceDepositRatio = 0 } = form.value;
+ const total = 100 - (advancePayRatio + balancePayRatio + assuranceDepositRatio);
+ // form.value.payRatio = total;
+ return total;
+ },
+ // 只读
+ set: () => { }
+});
const checkContractType = (type) => {
contract_type.value = type;
form.value.contract_type = type;
@@ -282,10 +288,16 @@ const resetForm = () => {
}, 0);
};
const submitForm = async () => {
- console.log(payMentRef.value);
-
await payMentRef.value.validate(async (valid) => {
if (valid) {
+
+ if (payRatioComputed.value < 0) {
+
+ ElMessage.error('四项付款比例之和必须等于100%');
+ return;
+ }
+ form.value.payRatio = payRatioComputed.value;
+
// 提交付款信息逻辑
console.log('提交付款信息', form.value, fileList.value);
// 这里可以调用API提交数据
@@ -304,6 +316,7 @@ const submitForm = async () => {
}
resetForm();
ElMessage.success('合同提交成功');
+ active.value = 0; // 重置步骤
} else {
ElMessage.error('请填写完整的付款信息');
}