<template>
|
<div class="product">
|
<div v-for="(item,index) in feeSettleArr" :key="index">
|
<el-form :model="feeSettleForm[index]" :rules="rules" ref="feeSettleForm" label-width="165px" size="small" inline>
|
<div class="_block">
|
<p class="title">
|
<span></span>
|
财务信息
|
</p>
|
<div class="form">
|
<el-form-item label="应还本金" v-if="item.feeSettlementMessageRes.payprincipalamt.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payprincipalamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已还本金" v-if="item.feeSettlementMessageRes.actualpayprincipalamt.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.actualpayprincipalamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="逾期天数" v-if="item.feeSettlementMessageRes.overdueday.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.overdueday" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应收利息" v-if="item.feeSettlementMessageRes.payinterestamt.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已预收利息" v-if="item.feeSettlementMessageRes.adpayinterestamt.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.adpayinterestamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应收手续费" v-if="item.feeSettlementMessageRes.payinterestamta1.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestamta1" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已预收手续费" v-if="item.feeSettlementMessageRes.adpayinterestamta1.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.adpayinterestamta1" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应收担保费" v-if="item.feeSettlementMessageRes.payinterestamta3.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestamta3" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已预收担保费" v-if="item.feeSettlementMessageRes.adpayinterestamta3.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.adpayinterestamta3" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应收平台服务费" v-if="item.feeSettlementMessageRes.payinterestamta2.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestamta2" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已预收平台服务费" v-if="item.feeSettlementMessageRes.adpayinterestamta2.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.adpayinterestamta2" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应收罚息" v-if="item.feeSettlementMessageRes.payinterestamta4.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestamta4" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应收息费总额" v-if="item.feeSettlementMessageRes.payinterestamtsum.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestamtsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已预收息费总额" v-if="item.feeSettlementMessageRes.adpayinterestamtsum.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.adpayinterestamtsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已结算息费总额" v-if="item.feeSettlementMessageRes.settlepayinterestamtsum.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.settlepayinterestamtsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="待结算息费差额" v-if="item.feeSettlementMessageRes.payinterestbalance.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.payinterestbalance" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="鹏友收款对公户开户行" v-if="item.feeSettlementMessageRes.balancebankname.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.balancebankname" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="鹏友收款对公户账号" v-if="item.feeSettlementMessageRes.balanceaccount.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.balanceaccount" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="客户还款虚拟账号" v-if="item.feeSettlementMessageRes.balancefictitiousaccount.visible">
|
<el-input v-model="feeSettleForm[index].feeSettlementMessageRes.balancefictitiousaccount" disabled></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="_block" v-if="isrefund != '0'">
|
<p class="title">
|
<span></span>
|
退息费信息
|
</p>
|
<Refund
|
:isrefund='isrefund'
|
:refunds="feeSettleForm[index].refundRegistrations"
|
@sendReFund='sendClaimResult'
|
>
|
</Refund>
|
</div>
|
</el-form>
|
<WaitFunds
|
v-if="isclaimed == '0'"
|
@sendClaimResult='sendClaimResult'
|
:balancefictitiousaccount='feeSettleForm[index].feeSettlementMessageRes.balancefictitiousaccount'
|
operationType='0'
|
></WaitFunds>
|
<ClaimedFunds
|
:claimedFunds="feeSettleData"
|
operationType='0'
|
>
|
</ClaimedFunds>
|
</div>
|
<div class="fixedBtn">
|
<el-button
|
size="medium"
|
plain
|
@click="refuse"
|
v-if="applyInfo.phaseNo=='0230'"
|
>驳回/拒绝</el-button>
|
<el-button
|
size="medium"
|
plain
|
@click="prevStep"
|
>上一页</el-button>
|
<el-button
|
size="medium"
|
type="primary"
|
@click="nextPage()"
|
>下一步</el-button>
|
</div>
|
</div>
|
</template>
|
<script>
|
import {
|
qryFeeSettleInfo,
|
} from '@api/product'
|
import common from '@/utils/common'
|
import WaitFunds from '../../../components/WaitFunds'
|
import ClaimedFunds from '../../../components/ClaimedFunds'
|
import Refund from './components/Refund'
|
export default {
|
data () {
|
return {
|
applyInfo: this.$store.state.product.applyInfo,
|
applyMenu: this.$store.state.product.applyMenu,
|
feeSettleArr: [],
|
feeSettleForm: [],
|
feeSettleData: [],
|
initialArr: [],
|
rules: {},
|
isrefund: '',
|
isclaimed: '',
|
}
|
},
|
async created () {
|
const result = await this.qryFeeSettleInfo()
|
this.qryFeeSettleData(result)
|
this.$parent._data.loading = false;
|
},
|
components: {
|
WaitFunds,
|
ClaimedFunds,
|
Refund
|
},
|
methods: {
|
// 根据线下账户类型选择
|
selSettlebankno(val){
|
for (let i = 0; i < this.settlebanklist.length; i++) {
|
if(this.settlebanklist[i].itemno == val){
|
this.feeSettleForm[0].feeSettlementMessageRes.settlebankname = this.settlebanklist[i].itemname
|
this.feeSettleForm[0].feeSettlementMessageRes.settleacctno = this.settlebanklist[i].attribute1
|
this.feeSettleForm[0].feeSettlementMessageRes.settleacctsname = this.settlebanklist[i].attribute3
|
break;
|
}
|
}
|
},
|
// 接受子组件传值并且更新已认领资金列表
|
async sendClaimResult() {
|
const result = await this.qryFeeSettleInfo()
|
this.qryFeeSettleData(result)
|
},
|
// 息费结算查询
|
qryFeeSettleInfo() {
|
return new Promise(resolve => {
|
qryFeeSettleInfo({ applySerialno: this.applyInfo.serialNo }).then(res => {
|
resolve(res.result)
|
})
|
})
|
},
|
// 对数据进行处理
|
qryFeeSettleData(result) {
|
this.isrefund = result.isrefund.value
|
this.isclaimed = result.isclaimed.value
|
this.feeSettleArr = [result]
|
this.feeSettleForm = []
|
this.initialArr = []
|
this.feeSettleData = []
|
this.feeSettleArr.forEach((val, index) => {
|
if (index == 0) {
|
for (const key in val) {
|
if (key == 'feeSettlementMessageRes') {
|
for (const child in val[key]) {
|
// 格式化金额
|
if (
|
child == 'payprincipalamt' ||
|
child == 'payinterestamt' ||
|
child == 'adpayinterestamt' ||
|
child == 'payinterestamta1' ||
|
child == 'adpayinterestamta1' ||
|
child == 'payinterestamta3' ||
|
child == 'adpayinterestamta3' ||
|
child == 'payinterestamta2' ||
|
child == 'adpayinterestamta2' ||
|
child == 'payinterestamta4' ||
|
child == 'payinterestamtsum' ||
|
child == 'adpayinterestamtsum' ||
|
child == 'settlepayinterestamtsum' ||
|
child == 'payinterestbalance' ||
|
child == 'actualpayprincipalamt'
|
) {
|
val[key][child].value = this.formatMoney(
|
val[key][child].value
|
)
|
}
|
this.rules['feeSettlementMessageRes.' + child] = []
|
if (val[key][child].required) {
|
this.rules['feeSettlementMessageRes.' + child].push({
|
required: true,
|
message: `请输入${val[key][child].filedDescription}`,
|
trigger: 'change'
|
})
|
}
|
}
|
} else if (key == 'refundRegistrations') {
|
for (const child in val[key]) {
|
// 格式化金额
|
if (
|
child == 'refundpayinterestamt' ||
|
child == 'refundguarantee' ||
|
child == 'refundcharge'
|
) {
|
val[key][child].value = this.formatMoney(
|
val[key][child].value
|
)
|
}
|
}
|
}
|
}
|
}
|
// 将数据重新排列
|
let obj = {}
|
for (const key in val) {
|
if (key == 'feeSettlementMessageRes') {
|
obj['feeSettlementMessageRes'] = {}
|
for (const child in val[key]) {
|
obj['feeSettlementMessageRes'][child] = val[key][child].value
|
}
|
} else if (key == 'refundRegistrations') {
|
obj['refundRegistrations'] = []
|
val[key].forEach(value => {
|
const subObj = {}
|
for (const child in value) {
|
subObj[child] = value[child].value
|
}
|
obj['refundRegistrations'].push(subObj)
|
});
|
} else if (key == 'claimBankWaterMessageRes') {
|
val[key].receivableManage.forEach(value => {
|
const obj = {}
|
for (const key in value) {
|
if (key == 'receivabletype') {
|
obj[key] = value[key].valueDesc
|
} else {
|
obj[key] = value[key].value
|
}
|
}
|
this.feeSettleData.push(obj)
|
})
|
}
|
}
|
this.feeSettleForm.push(obj)
|
this.initialArr.push(JSON.parse(JSON.stringify(obj)))
|
})
|
},
|
// 金额格式化
|
formatMoney(value) {
|
if (value) {
|
value =
|
parseFloat((value + '').replace(/[^\d\.-]/g, '')).toFixed(2) + ''
|
if (value == 'NaN') return
|
let l = value
|
.split('.')[0]
|
.split('')
|
.reverse()
|
let r = value.split('.')[1]
|
let t = ''
|
for (let i = 0; i < l.length; i++) {
|
t += l[i] + ((i + 1) % 3 === 0 && i + 1 !== l.length ? ',' : '')
|
}
|
return (
|
t
|
.split('')
|
.reverse()
|
.join('') +
|
'.' +
|
r
|
)
|
}
|
},
|
// 驳回/拒绝
|
refuse() {
|
this.$parent._data.showCredit = true
|
this.applyMenu.forEach((val, index) => {
|
if (val.tabname == '息费结算信息') {
|
common.tabInfo(
|
this.applyMenu[index + 1].tabname,
|
this.applyInfo.flowno,
|
this
|
)
|
}
|
})
|
},
|
// 上一页
|
prevStep() {
|
this.applyMenu.forEach((val, index) => {
|
if (val.tabname == '息费结算信息') {
|
common.tabInfo(this.applyMenu[index - 1].tabname, this.applyInfo.flowno, this)
|
}
|
})
|
},
|
// 下一步校验必填
|
nextPage() {
|
if(!common.validateForm(this.$refs.feeSettleForm).flag)return;
|
// 调用父组件的查询左侧tab的方法
|
this.$parent.updateApplyTabTree('息费结算信息');
|
}
|
},
|
// 路由离开前需要比较页面数据是否发生变化
|
beforeRouteLeave(to, from, next) {
|
if(JSON.stringify(this.feeSettleForm) != JSON.stringify(this.initialArr)){
|
// 页面有数据未保存
|
common.comfirm("提示", "当前页面有数据未保存,是否放弃保存?", () => {
|
next();
|
});
|
return
|
}
|
next()
|
}
|
}
|
</script>
|