|
@@ -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)
|
|
|
|