ZaiZai 1 жил өмнө
parent
commit
e03ec814db

+ 39 - 47
src/views/debit-pay/admin/components/middlepay/addModal.vue

@@ -121,7 +121,8 @@
                                 <hc-table-input v-model="row.containChangeTotal" :disabled="isView" @blur="containChangeTotalBlur(row)" />
                             </template>
                             <template #payRatio="{ row }">
-                                <hc-table-input v-model="row.payRatio" :disabled="isNullES(row.upPayRatio) || isView || baseForm.fileList.length > 0" @blur="unPayRatioBlur(row)" />
+                                <hc-table-input v-if="isNullES(row.upPayRatio)" v-model="row.payRatio" disabled />
+                                <hc-table-input v-else v-model="row.payRatio" :disabled="isView || baseForm.fileList.length > 0" @blur="unPayRatioBlur(row)" />
                             </template>
                             <template #currentMeterMoney="{ row }">
                                 <hc-table-input v-model="row.currentMeterMoney" disabled />
@@ -317,12 +318,11 @@ watch(() => baseForm.value.fileList, (list) => {
                 }
                 ele.upPayRatio = 100
             })
-            } else {
-                addTableData.value.forEach((ele)=>{
-                    if (!ischangeByGetNode.value) {
-                        ele.upPayRatio = ele.oldupPayRatio || '0.00'
-                    }
-
+        } else {
+            addTableData.value.forEach((ele)=>{
+                if (!ischangeByGetNode.value) {
+                    ele.upPayRatio = ele.oldupPayRatio || '0.00'
+                }
             })
         }
     }
@@ -404,11 +404,10 @@ const getNodeDivide = async (nodeId) => {
  //获取当前节点下,当期未被计量的所有清单
  const getCurrentNodeAllFormData = async (nodeId) => {
     const { data } = await mainApi.getCurrentNodeAllForm({ contractId:  cid.value, contractPeriodId:baseForm.value.contractPeriodId, contractUnitId:nodeId })
- addTableData.value = getArrValue(data)
- addTableData.value.forEach((ele)=>{
+    addTableData.value = getArrValue(data)
+    addTableData.value.forEach((ele)=>{
         ele.oldupPayRatio = ele.upPayRatio
     })
-
 }
 
 //获取变更令
@@ -514,7 +513,7 @@ const currentMeterTotalBlur = (row) => {
         //计算本期支付比例
         //本期支 付比例=本期计量数量/变更后数量
         //如果不存在unPayRatio,支付比例不能计算
-        if (row.upPayRatio !== null) {
+        if (!isNullES(row.upPayRatio)) {
             row.payRatio = isNaN(BigNumber(currentMeterTotal).dividedBy(row.changeTotal).toString() * 100) ? '0.00' : BigNumber(currentMeterTotal).dividedBy(row.changeTotal).toString() * 100
             row.payRatio = row.payRatio .toFixed(2) === 'Infinity' ? 0 : row.payRatio .toFixed(2)
         }
@@ -534,41 +533,38 @@ const containChangeTotalBlur = (row) => {
     })
 }
 const compareRowUnpayRatio = (row, type)=>{
-          // 计算方式:
-        //本期支 付比例=本期计量数量/变更后数量
-        //本期支付比例=本期计量数量/变更后数量
-        //本期计量数量=本期支付比例*变更后数量
-        // 会返回最大支付比例   upPayRatio
-        //     和其他期支付比例 otherPayRatio
-
-        // 每次填写完 本期计量数量或者支付比例后
-        // 就去对比:本期支付比例+其他期支付比例
-        //             是否大于最大支付比例
-        // 如果大于,则提示
-           let payRatio = new BigNumber(row.payRatio )//本期支付比例
-           let upPayRatio = new BigNumber(row.upPayRatio )//最大支付比例
-           let otherPayRatio = new BigNumber(row.otherPayRatio )//其他期支付比例
-           let result = BigNumber(payRatio).plus(otherPayRatio)//本期支付比例+其他期支付比例
-           const isComparedRa = result.comparedTo(upPayRatio)
-           isComparedRaVal.value = isComparedRa
-
-            if (isComparedRa === 1 ) {
-                isCanSave.value = true
-                if (type === 1) {
-                    window.$message.warning('累计计量金额超出支付比列,如需计量100%,请完成关联对应的质保资料')
-                } else if (type === 2) {
-                    return isComparedRa
-                }
-
-        } else {
-            isCanSave.value = false
-
+    // 计算方式:
+    //本期支 付比例=本期计量数量/变更后数量
+    //本期支付比例=本期计量数量/变更后数量
+    //本期计量数量=本期支付比例*变更后数量
+    // 会返回最大支付比例   upPayRatio
+    // 和其他期支付比例 otherPayRatio
+
+    // 每次填写完 本期计量数量或者支付比例后
+    // 就去对比:本期支付比例+其他期支付比例
+    // 是否大于最大支付比例
+    // 如果大于,则提示
+    let payRatio = new BigNumber(row.payRatio )//本期支付比例
+    let upPayRatio = new BigNumber(row.upPayRatio )//最大支付比例
+    let otherPayRatio = new BigNumber(row.otherPayRatio )//其他期支付比例
+    let result = BigNumber(payRatio).plus(otherPayRatio)//本期支付比例+其他期支付比例
+    const isComparedRa = result.comparedTo(upPayRatio)
+    isComparedRaVal.value = isComparedRa
+    if (isComparedRa === 1 ) {
+        isCanSave.value = true
+        if (type === 1) {
+            window.$message.warning('累计计量金额超出支付比列,如需计量100%,请完成关联对应的质保资料')
+        } else if (type === 2) {
+            return isComparedRa
         }
+    } else {
+        isCanSave.value = false
+    }
 }
 const unPayRatioBlur = (row)=>{
-       row.payRatio = keepdecimal(row.payRatio)
+    row.payRatio = keepdecimal(row.payRatio)
     nextTick(()=>{
-           //如果为空
+        //如果为空
         let payRatio1 = row.payRatio
         const isMeter = isNumberReg(payRatio1)
         if (isNullES(payRatio1) || !isMeter) {
@@ -578,24 +574,20 @@ const unPayRatioBlur = (row)=>{
         let changeTotal = new BigNumber(row.changeTotal )//变更后数量
         // 本期计量数量=本期支付比例*变更后数量
         row.currentMeterTotal = (payRatio.dividedBy(100).multipliedBy(changeTotal)).toFixed(2).toString()
-        console.log( (payRatio.dividedBy(100).multipliedBy(changeTotal)).toFixed(2), '  row.currentMeterTotal ')
         row.currentMeterMoney = (BigNumber(row.currentMeterTotal).multipliedBy(row.currentPrice)).toFixed(2).toString()//本期计量金额额
         row.allMeterTotal = (BigNumber(row.currentMeterTotal).plus(row.otherMeterTotal)).toFixed(2).toString()
          // 就去对比:本期支付比例+其他期支付比例
         //   是否大于最大支付比例
         compareRowUnpayRatio(row, 1)
-
         //计算总计量金额
         let meterMoney = 0, table = addTableData.value
         for (let i = 0; i < table.length; i++) {
             meterMoney = (BigNumber(meterMoney).plus(table[i].currentMeterMoney)).toString()
         }
         baseForm.value.meterMoney = meterMoney
-
-
     })
-
 }
+
 //判断是否红色
 const isCanSave = ref(false)