|
|
|
|
@ -17,7 +17,7 @@
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="flex items-center justify-between">
|
|
|
|
|
<div style="text-align: left; font-weight: bold; font-size: 24px">{{ pageTitle }}</div>
|
|
|
|
|
<el-button v-if="canEditDetail" type="primary" @click="handleAddDetail">
|
|
|
|
|
<el-button v-if="canEditDetail" type="primary" :disabled="!canAddDetail" @click="handleAddDetail">
|
|
|
|
|
<el-icon class="mr-1"><Plus /></el-icon>
|
|
|
|
|
新增分款
|
|
|
|
|
</el-button>
|
|
|
|
|
@ -232,6 +232,9 @@ const remainingAmount = computed(() => Number(form.value.paymentAmount || 0) - a
|
|
|
|
|
/** 分款金额与回款金额平衡容差(元) */
|
|
|
|
|
const ALLOCATION_AMOUNT_EPS = 0.005;
|
|
|
|
|
|
|
|
|
|
/** 剩余可分大于 0 时才允许新增分款 */
|
|
|
|
|
const canAddDetail = computed(() => canEditDetail.value && remainingAmount.value > ALLOCATION_AMOUNT_EPS);
|
|
|
|
|
|
|
|
|
|
/** 提交/审批前校验:分款总额须等于回款金额 */
|
|
|
|
|
const validateAllocationBeforeSubmit = (): boolean => {
|
|
|
|
|
const remain = remainingAmount.value;
|
|
|
|
|
@ -445,6 +448,10 @@ const handleAddDetail = () => {
|
|
|
|
|
if (!canEditDetail.value) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!canAddDetail.value) {
|
|
|
|
|
proxy?.$modal.msgWarning('剩余可分金额为0,无法新增分款');
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
showProjectDialog.value = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|