|
|
|
|
@ -76,7 +76,11 @@
|
|
|
|
|
label="款项类型"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
/>
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
{{ paymentType[scope.row.type] || '未知' }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="apply_money"
|
|
|
|
|
label="申请金额"
|
|
|
|
|
@ -351,7 +355,11 @@
|
|
|
|
|
label="款项类型"
|
|
|
|
|
width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
/>
|
|
|
|
|
>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
{{ paymentType[scope.row.type] || '未知' }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="is_end"
|
|
|
|
|
label="是否最后一笔"
|
|
|
|
|
@ -871,9 +879,10 @@ export default {
|
|
|
|
|
// 支付占比
|
|
|
|
|
percentPay() {
|
|
|
|
|
const total = this.totalMoney()
|
|
|
|
|
if (!total || !this.contract || !this.contract.money || isNaN(total) || isNaN(this.contract.money)) {
|
|
|
|
|
if (!total || !this.contract || !this.contract.money || isNaN(total) || isNaN(this.contract.money) || Number(this.contract.money) === 0) {
|
|
|
|
|
return '0%'
|
|
|
|
|
}
|
|
|
|
|
console.log('total', total, this.contract.money)
|
|
|
|
|
const percent = (total / this.contract.money) * 100
|
|
|
|
|
return isNaN(percent) ? '0%' : percent.toFixed(2) + '%'
|
|
|
|
|
},
|
|
|
|
|
@ -1108,6 +1117,7 @@ export default {
|
|
|
|
|
audit_money: this.paymentRegistrationForm.audit_money ? this.paymentRegistrationForm.audit_money : 0,
|
|
|
|
|
end_time: this.paymentRegistrationForm.end_time,
|
|
|
|
|
is_check: this.paymentRegistrationForm.isCheck ? 1 : 0,
|
|
|
|
|
act_date: this.paymentRegistrationForm.act_date,
|
|
|
|
|
// 提交更新后的HTML和字段数据
|
|
|
|
|
forms: this.forms,
|
|
|
|
|
other_data: this.contract.contract_template?.contract_template_fields || []
|
|
|
|
|
@ -1473,8 +1483,20 @@ export default {
|
|
|
|
|
input.addEventListener('blur', this.calculateTotal)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 监听 total 输入框的变化
|
|
|
|
|
const totalInput = dom.querySelector('input[data-field="total"]')
|
|
|
|
|
if (totalInput) {
|
|
|
|
|
totalInput.removeEventListener('input', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.removeEventListener('change', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.removeEventListener('blur', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
|
|
|
|
|
totalInput.addEventListener('input', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.addEventListener('change', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.addEventListener('blur', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 初始计算一次
|
|
|
|
|
this.calculateTotal()
|
|
|
|
|
// this.calculateTotal()
|
|
|
|
|
}, 100)
|
|
|
|
|
},
|
|
|
|
|
caculateRoadDay() {
|
|
|
|
|
@ -1486,7 +1508,7 @@ export default {
|
|
|
|
|
const s = new Date(sdate)
|
|
|
|
|
const e = new Date(edate)
|
|
|
|
|
// 计算天数差
|
|
|
|
|
const roadDay = Math.floor((e - s) / (1000 * 60 * 60 * 24))
|
|
|
|
|
const roadDay = Math.floor((e - s) / (1000 * 60 * 60 * 24)) + 1
|
|
|
|
|
console.log('roadDay', sdate, edate, roadDay)
|
|
|
|
|
const roadDayInput = this.$refs.mainTable.querySelector('input[data-field="roadDay"]')
|
|
|
|
|
if (roadDayInput) {
|
|
|
|
|
@ -1532,7 +1554,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
const wanInput = dom.querySelector('input[data-field="wTotal"]')
|
|
|
|
|
if (wanInput) {
|
|
|
|
|
wanInput.value = wanTotal===0?'':wanTotal
|
|
|
|
|
wanInput.value = wanTotal===0?'0':wanTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let qianTotal = 0
|
|
|
|
|
@ -1544,7 +1566,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
const qianInput = dom.querySelector('input[data-field="qTotal"]')
|
|
|
|
|
if (qianInput) {
|
|
|
|
|
qianInput.value = qianTotal===0?'':qianTotal
|
|
|
|
|
qianInput.value = qianTotal===0?'0':qianTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let baiTotal = 0
|
|
|
|
|
@ -1556,7 +1578,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
const baiInput = dom.querySelector('input[data-field="bTotal"]')
|
|
|
|
|
if (baiInput) {
|
|
|
|
|
baiInput.value = baiTotal===0?'':baiTotal
|
|
|
|
|
baiInput.value = baiTotal===0?'0':baiTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let shiTotal = 0
|
|
|
|
|
@ -1568,7 +1590,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
const shiInput = dom.querySelector('input[data-field="sTotal"]')
|
|
|
|
|
if (shiInput) {
|
|
|
|
|
shiInput.value = shiTotal===0?'':shiTotal
|
|
|
|
|
shiInput.value = shiTotal===0?'0':shiTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let yuanTotal = 0
|
|
|
|
|
@ -1580,7 +1602,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
const yuanInput = dom.querySelector('input[data-field="yTotal"]')
|
|
|
|
|
if (yuanInput) {
|
|
|
|
|
yuanInput.value = yuanTotal===0?'':yuanTotal
|
|
|
|
|
yuanInput.value = yuanTotal===0?'0':yuanTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let jiaoTotal = 0
|
|
|
|
|
@ -1592,7 +1614,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
const jiaoInput = dom.querySelector('input[data-field="jTotal"]')
|
|
|
|
|
if (jiaoInput) {
|
|
|
|
|
jiaoInput.value = jiaoTotal===0?'':jiaoTotal
|
|
|
|
|
jiaoInput.value = jiaoTotal===0?'0':jiaoTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let fenTotal = 0
|
|
|
|
|
@ -1604,11 +1626,12 @@ export default {
|
|
|
|
|
|
|
|
|
|
const fenInput = dom.querySelector('input[data-field="fTotal"]')
|
|
|
|
|
if (fenInput) {
|
|
|
|
|
fenInput.value = fenTotal===0?'':fenTotal
|
|
|
|
|
fenInput.value = fenTotal===0?'0':fenTotal
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// console.log('fenTotal', wanTotal, qianTotal, baiTotal, shiTotal, yuanTotal, jiaoTotal, fenTotal)
|
|
|
|
|
this.otherTotal = wanTotal * 10000 + qianTotal * 1000 + baiTotal * 100 + shiTotal * 10 + yuanTotal + jiaoTotal * 0.1 + fenTotal * 0.01
|
|
|
|
|
|
|
|
|
|
this.otherTotal = this.otherTotal.toFixed(2)
|
|
|
|
|
// console.log('this.otherTotal', this.otherTotal)
|
|
|
|
|
this.total = 0
|
|
|
|
|
// 只计算以 amount 开头的输入框
|
|
|
|
|
const amountInputs = dom.querySelectorAll('input[data-field^="amount"]')
|
|
|
|
|
@ -1620,16 +1643,11 @@ export default {
|
|
|
|
|
// 更新总金额输入框
|
|
|
|
|
const totalInput = dom.querySelector('input[data-field="total"]')
|
|
|
|
|
if (totalInput) {
|
|
|
|
|
totalInput.value = this.total.toFixed(2)
|
|
|
|
|
|
|
|
|
|
// 监听 total 输入框的变化
|
|
|
|
|
totalInput.removeEventListener('input', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.removeEventListener('change', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.removeEventListener('blur', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
|
|
|
|
|
totalInput.addEventListener('input', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.addEventListener('change', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
totalInput.addEventListener('blur', (e) => this.updateUpperCaseFromTotal(e, dom))
|
|
|
|
|
if (this.total===0) {
|
|
|
|
|
this.total = parseFloat(totalInput.value) || 0
|
|
|
|
|
} else {
|
|
|
|
|
totalInput.value = this.total.toFixed(2)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 更新大写金额
|
|
|
|
|
@ -1652,15 +1670,8 @@ export default {
|
|
|
|
|
const upperCaseInput = dom.querySelector('input[data-field="upperCaseAmount"]')
|
|
|
|
|
|
|
|
|
|
if (totalInput && upperCaseInput) {
|
|
|
|
|
const total = parseFloat(totalInput.value) || 0
|
|
|
|
|
upperCaseInput.value = numberToChinese(total)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let wanTotal = 0
|
|
|
|
|
const wanInput = dom.querySelector('input[data-field="wTotal"]')
|
|
|
|
|
if (wanInput) {
|
|
|
|
|
wanTotal = parseFloat(wanInput.value) || 0
|
|
|
|
|
upperCaseInput.value = numberToChinese(wanTotal)
|
|
|
|
|
this.total = parseFloat(totalInput.value) || 0
|
|
|
|
|
upperCaseInput.value = numberToChinese(this.total)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|