<template>
|
<div class="product" ref="product">
|
<div v-for="(item,index) in loanArr" :key="index">
|
<el-form
|
:model="loanForm[index]"
|
:rules="rules"
|
ref="loanForm"
|
label-width="165px"
|
inline
|
size="small"
|
>
|
<div class="_block">
|
<p class="title">
|
<span></span>
|
基本信息
|
</p>
|
<div class="form">
|
<el-form-item label="申请编号">
|
<el-input v-model="loanForm[index].serialno" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="合同编号" v-if="loanArr[index].contractartificialno.visible">
|
<el-input v-model="loanForm[index].contractartificialno" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="产品名称" v-if="loanArr[index].productid.visible" prop="productid">
|
<el-input v-model="loanForm[index].productname" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="产品维度名称"
|
v-if="loanArr[index].productdimension.visible"
|
prop="productdimension"
|
>
|
<el-input v-show="false" v-model="loanForm[index].productdimension"></el-input>
|
<el-input v-model="loanForm[index].productdimensionname" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="产品客群名称"
|
v-if="loanArr[index].productcustomerscode.visible"
|
prop="productcustomerscode"
|
>
|
<el-select
|
v-model="loanForm[index].productcustomerscode"
|
:disabled="!loanArr[index].productcustomerscode.writeAble"
|
clearable
|
filterable
|
placeholder="支持输入搜索选择"
|
@change="getCustomerbasename"
|
>
|
<el-option
|
v-for="(item,index) in customerBaseList"
|
:key="index"
|
:label="item.customersName"
|
:value="item.customersCode"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="业务城市"
|
v-if="loanArr[index].businesscity.visible"
|
prop="businesscity"
|
>
|
<el-select
|
v-model="loanForm[index].businesscity"
|
:disabled="!loanArr[index].businesscity.writeAble"
|
clearable
|
filterable
|
placeholder="支持输入搜索选择"
|
>
|
<el-option
|
v-for="(item,index) in allCityList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="贷款金额" v-if="loanArr[index].businesssum.visible" prop="businesssum">
|
<el-input
|
v-model="loanForm[index].businesssum"
|
:disabled="!loanArr[index].businesssum.writeAble"
|
@blur="loanForm[index].businesssum = formatMoney(loanForm[index].businesssum)"
|
@change="editBusinesssum(loanForm[index])"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="还款方式"
|
v-if="loanArr[index].repaymenttype.visible"
|
prop="repaymenttype"
|
>
|
<el-select
|
v-model="loanForm[index].repaymenttype"
|
:disabled="!loanArr[index].repaymenttype.writeAble"
|
clearable
|
filterable
|
placeholder="支持输入搜索选择"
|
@change="qryTrial(loanForm[index])"
|
>
|
<el-option
|
v-for="(item,index) in repayTypeList"
|
:key="index"
|
:label="item.paymentName"
|
:value="item.paymentType"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="融资成数"
|
v-if="loanArr[index].financingcvs.visible"
|
prop="financingcvs"
|
>
|
<el-input
|
v-model="loanForm[index].financingcvs"
|
:disabled="!loanArr[index].financingcvs.writeAble"
|
@change="editFinancingcvs(loanForm[index])"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="执行起息日"
|
v-if="loanArr[index].exevaluedate.visible"
|
prop="exevaluedate"
|
>
|
<el-date-picker
|
v-model="loanForm[index].exevaluedate"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
size="small"
|
placeholder="选择日期"
|
:disabled="!item.exevaluedate.writeAble"
|
@change="qryTrial(loanForm[index])"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item
|
label="贷款到期日"
|
v-if="loanArr[index].maturitydate.visible"
|
prop="maturitydate"
|
>
|
<el-input v-model="loanForm[index].maturitydate" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="预计放款金额"
|
v-if="loanArr[index].hopebusinesssum.visible"
|
prop="hopebusinesssum"
|
>
|
<el-input v-model="loanForm[index].hopebusinesssum" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="预计贷款期限"
|
v-if="loanArr[index].hopebusinesstermday.visible"
|
prop="hopebusinesstermday"
|
>
|
<el-input v-model="loanForm[index].hopebusinesstermday" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="实际放款日期"
|
v-if="loanArr[index].actualputoutdate.visible"
|
prop="actualputoutdate"
|
>
|
<el-date-picker
|
v-model="loanForm[index].actualputoutdate"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
size="small"
|
placeholder="选择日期"
|
:disabled="!item.actualputoutdate.writeAble"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item
|
label="实际放款金额"
|
v-if="loanArr[index].actualputoutsum.visible"
|
prop="actualputoutsum"
|
>
|
<el-input
|
v-model="loanForm[index].actualputoutsum"
|
:disabled="!loanArr[index].actualputoutsum.writeAble"
|
@blur="loanForm[index].actualputoutsum = formatMoney(loanForm[index].actualputoutsum)"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="实际贷款期限"
|
v-if="loanArr[index].businesstermday.visible"
|
prop="businesstermday"
|
>
|
<el-input v-model="loanForm[index].businesstermday" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
class="remark"
|
label="备注"
|
v-if="loanArr[index].remark.visible"
|
prop="remark"
|
>
|
<el-input
|
type="textarea"
|
maxlength="200"
|
:autosize="{ minRows: 2, maxRows: 2}"
|
v-model="loanForm[index].remark"
|
:disabled="!loanArr[index].remark.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="放款资金单元" v-if="loanArr[index].fundunitno.visible" prop="fundunitno">
|
<el-select
|
v-model="loanForm[index].fundunitno"
|
:disabled="!loanArr[index].fundunitno.writeAble"
|
clearable
|
filterable
|
placeholder="支持输入搜索选择"
|
@change="selfundunitno"
|
>
|
<el-option
|
v-for="item in fundUnitList"
|
:key="item.fundunitno"
|
:label="item.fundunitname"
|
:value="item.fundunitno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="贷款机构清单"
|
v-if="loanArr[index].loanOrgList.visible"
|
prop="loanOrgList"
|
>
|
<el-input v-model="loanForm[index].loanOrgList" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="资金单元剩余可用额度"
|
v-if="loanArr[index].fundunitremanentamt.visible"
|
prop="fundunitremanentamt"
|
>
|
<el-input v-model="loanForm[index].fundunitremanentamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="基础授信额度"
|
v-if="loanArr[index].basecreditamt.visible"
|
prop="basecreditamt"
|
>
|
<el-input v-model="loanForm[index].basecreditamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="产品授信额度"
|
v-if="loanArr[index].productcreditamtlimit.visible"
|
prop="productcreditamtlimit"
|
>
|
<el-input v-model="loanForm[index].productcreditamtlimit" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="产品剩余可用额度"
|
v-if="loanArr[index].productremanentamt.visible"
|
prop="productremanentamt"
|
>
|
<el-input v-model="loanForm[index].productremanentamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="产品额度生效日期"
|
v-if="loanArr[index].productQuotaValidDate.visible"
|
prop="productQuotaValidDate"
|
>
|
<el-input v-model="loanForm[index].productQuotaValidDate" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="产品额度失效日期"
|
v-if="loanArr[index].productQuotaInvalidDate.visible"
|
prop="productQuotaInvalidDate"
|
>
|
<el-input v-model="loanForm[index].productQuotaInvalidDate" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="推荐人手机号"
|
v-if="loanArr[index].refereephone.visible"
|
prop="refereephone"
|
>
|
<el-input
|
v-model="loanForm[index].refereephone"
|
@change="getRefereerInfo('refereePhone','0')"
|
:disabled="!loanArr[index].refereephone.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="推荐人编号" v-if="loanArr[index].refereeid.visible" prop="refereeid">
|
<el-input
|
v-model="loanForm[index].refereeid"
|
@change="getRefereerInfo('refereeId','1')"
|
:disabled="!loanArr[index].refereeid.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="推荐人名称" v-if="loanArr[index].refereename.visible">
|
<el-input v-model="loanForm[index].refereename" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="推荐人直属机构" v-if="loanArr[index].refereeorgname.visible">
|
<el-input v-model="loanForm[index].refereeorgname" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="推荐人所属一级内部机构"
|
v-if="loanArr[index].refereefirstinternallevel.visible"
|
>
|
<el-input v-model="loanForm[index].refereefirstinternallevelName" disabled></el-input>
|
<el-input v-model="loanForm[index].refereefirstinternallevel" v-show="false"></el-input>
|
</el-form-item>
|
<el-form-item label="报单人编号" v-if="loanArr[index].operateuserid.visible">
|
<el-input v-model="loanForm[index].operateuserid" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="报单人名称" v-if="loanArr[index].operateuserName.visible">
|
<el-input v-model="loanForm[index].operateuserName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="报单人直属机构" v-if="loanArr[index].operateorgName.visible">
|
<el-input v-model="loanForm[index].operateorgName" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="报单人所属一级内部机构"
|
v-if="loanArr[index].operatefirstinternallevel.visible"
|
>
|
<el-input v-model="loanForm[index].operatefirstinternallevelName" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="报单日期" v-if="loanArr[index].operatedate.visible">
|
<el-input v-model="loanForm[index].operatedate" disabled></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="_block" v-if="loanArr[index].payprincipalamt.visible">
|
<p class="title">
|
<span></span>
|
财务信息
|
</p>
|
<div class="form">
|
<el-form-item label="应还本金" v-if="loanArr[index].payprincipalamt.visible">
|
<el-input v-model="loanForm[index].payprincipalamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已还本金" v-if="loanArr[index].actualpayprincipalamt.visible">
|
<el-input v-model="loanForm[index].actualpayprincipalamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应还利息" v-if="loanArr[index].payinterestamt.visible">
|
<el-input v-model="loanForm[index].payinterestamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已还利息" v-if="loanArr[index].actualpayinterestamt.visible">
|
<el-input v-model="loanForm[index].actualpayinterestamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应还支付时罚息" v-if="loanArr[index].payprincipalpenaltyamt.visible">
|
<el-input v-model="loanForm[index].payprincipalpenaltyamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="已还支付时罚息"
|
v-if="loanArr[index].actualpayprincipalpenaltyamt.visible"
|
>
|
<el-input v-model="loanForm[index].actualpayprincipalpenaltyamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应还到期罚息" v-if="loanArr[index].payduepenaltyamt.visible">
|
<el-input v-model="loanForm[index].payduepenaltyamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="应还罚息" v-if="loanArr[index].paypenaltyamt.visible">
|
<el-input v-model="loanForm[index].paypenaltyamt" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已还罚息" v-if="loanArr[index].alreadypayprincipalpenalty.visible">
|
<el-input v-model="loanForm[index].alreadypayprincipalpenalty" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="回款应还总金额" v-if="loanArr[index].backpayallsum.visible">
|
<el-input v-model="loanForm[index].backpayallsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="回款已还总金额" v-if="loanArr[index].haspayallsum.visible">
|
<el-input v-model="loanForm[index].haspayallsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="回款仍需还款金额" v-if="loanArr[index].stillpayallsum.visible">
|
<el-input v-model="loanForm[index].stillpayallsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item
|
label="债务人支付日期"
|
v-if="loanArr[index].debtorpaydate.visible"
|
prop="debtorpaydate"
|
>
|
<el-date-picker
|
v-model="loanForm[index].debtorpaydate"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
size="small"
|
placeholder="选择日期"
|
@change="calculateLoanMes(loanForm[index])"
|
:disabled="!item.debtorpaydate.writeAble"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item
|
label="债务人支付金额"
|
v-if="loanArr[index].debtorpaysum.visible"
|
prop="debtorpaysum"
|
>
|
<el-input
|
v-model="loanForm[index].debtorpaysum"
|
:disabled="!loanArr[index].debtorpaysum.writeAble"
|
@blur="calculateLoanMes(loanForm[index])"
|
></el-input>
|
</el-form-item>
|
<el-form-item label="已收回债务人支付金额" v-if="loanArr[index].hasbackpaysum.visible">
|
<el-input v-model="loanForm[index].hasbackpaysum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="仍需收回债务人支付金额" v-if="loanArr[index].stillbackpaysum.visible">
|
<el-input v-model="loanForm[index].stillbackpaysum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="支付应收总金额" v-if="loanArr[index].payallsum.visible">
|
<el-input v-model="loanForm[index].payallsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="待结算支付差额" v-if="loanArr[index].staypaybalance.visible">
|
<el-input v-model="loanForm[index].staypaybalance" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="已结算支付差额" v-if="loanArr[index].haspaybalance.visible">
|
<el-input v-model="loanForm[index].haspaybalance" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="仍需结算支付差额" v-if="loanArr[index].stillpaybalance.visible">
|
<el-input v-model="loanForm[index].stillpaybalance" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="支付待收款金额" v-if="loanArr[index].stayproceedssum.visible">
|
<el-input v-model="loanForm[index].stayproceedssum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="支付已收款总金额" v-if="loanArr[index].hasproceedsallsum.visible">
|
<el-input v-model="loanForm[index].hasproceedsallsum" disabled></el-input>
|
</el-form-item>
|
<el-form-item label="支付仍需收款金额" v-if="loanArr[index].stillproceedssum.visible">
|
<el-input v-model="loanForm[index].stillproceedssum" disabled></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="_block">
|
<p class="title">
|
<span></span>
|
账户信息
|
</p>
|
<div class="form">
|
<el-form-item
|
label="授权放款账户名"
|
v-if="loanArr[index].putoutbankname.visible"
|
prop="putoutbankname"
|
>
|
<el-input
|
v-model="loanForm[index].putoutbankname"
|
:disabled="!loanArr[index].putoutbankname.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="授权放款账户账号"
|
v-if="loanArr[index].putoutcardno.visible"
|
prop="putoutcardno"
|
>
|
<el-input
|
v-model="loanForm[index].putoutcardno"
|
:disabled="!loanArr[index].putoutcardno.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="授权放款账户开户地所在省"
|
v-if="loanArr[index].putoutbankprovince.visible"
|
prop="putoutbankprovince"
|
>
|
<el-select
|
v-model="loanForm[index].putoutbankprovince"
|
filterable
|
clearable
|
placeholder="支持输入搜索选择"
|
:disabled="!loanArr[index].putoutbankprovince.writeAble"
|
@change="getprovince(loanForm[index].putoutbankprovince,'putoutbankcityList',loanForm[index],function(arr){putoutbankcityList=arr})"
|
>
|
<el-option
|
v-for="(item,index) in provinceList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="授权放款账户开户地所在市"
|
v-if="loanArr[index].putoutbankcity.visible"
|
prop="putoutbankcity"
|
>
|
<el-select
|
v-model="loanForm[index].putoutbankcity"
|
filterable
|
clearable
|
placeholder="支持输入搜索选择"
|
:disabled="!loanArr[index].putoutbankcity.writeAble"
|
>
|
<el-option
|
v-for="(item,index) in putoutbankcityList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="授权放款账户开户行"
|
v-if="loanArr[index].putoutbankno.visible"
|
prop="putoutbankno"
|
>
|
<el-select
|
v-model="loanForm[index].putoutbankno"
|
:disabled="!loanArr[index].putoutbankno.writeAble"
|
@change="selputoutbankno"
|
clearable
|
filterable
|
placeholder="支持输入搜索选择"
|
>
|
<el-option
|
v-for="item in putoutbankList"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="授权放款账户开户分支行"
|
v-if="loanArr[index].putoutbankbranchno.visible"
|
prop="putoutbankbranchno"
|
>
|
<el-input
|
v-model="loanForm[index].putoutbankbranchname"
|
:disabled="!loanArr[index].putoutbankbranchno.writeAble"
|
class="input-with-select"
|
>
|
<el-button
|
slot="append"
|
icon="el-icon-search"
|
v-if="loanArr[index].putoutbankbranchno.writeAble"
|
@click="getBankBranch"
|
></el-button>
|
</el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<div class="_block" v-if="loanArr[index].putOutInfo&&loanArr[index].putoutdate.visible">
|
<p class="title">
|
<span></span>
|
放款信息
|
</p>
|
<div class="form">
|
<el-form-item label="放款日期" prop="putoutdate" v-if="loanArr[index].putoutdate.visible">
|
<el-date-picker
|
v-model="loanForm[index].putoutdate"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
size="small"
|
placeholder="选择日期"
|
:disabled="!loanArr[index].putoutdate.writeAble"
|
@change="qryTrial(loanForm[index])"
|
></el-date-picker>
|
</el-form-item>
|
<el-form-item
|
label="线下放款账户类型"
|
prop="offlineputoutbankno"
|
v-if="loanArr[index].offlineputoutbankno.visible"
|
>
|
<el-select
|
v-model="loanForm[index].offlineputoutbankno"
|
clearable
|
filterable
|
placeholder="支持输入搜索选择"
|
@change="selOfflinePutoutBank"
|
:disabled="!loanArr[index].offlineputoutbankno.writeAble"
|
>
|
<el-option
|
v-for="item in offlinePutoutBankList"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="线下放款账户号码"
|
prop="offlineputoutaccountno"
|
v-if="loanArr[index].offlineputoutaccountno.visible"
|
>
|
<el-input
|
v-model="loanForm[index].offlineputoutaccountno"
|
:disabled="!loanArr[index].offlineputoutaccountno.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="线下放款账户名称"
|
prop="offlineputoutaccountname"
|
v-if="loanArr[index].offlineputoutaccountname.visible"
|
>
|
<el-input
|
v-model="loanForm[index].offlineputoutaccountname"
|
:disabled="!loanArr[index].offlineputoutaccountname.writeAble"
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
<PriceInfo
|
v-if="applyInfo.phaseNo>='0040'"
|
:pricingInfo="loanForm[index].pricingInfo"
|
:discountAgreementFile="loanArr[index].discountAgreementFile.visible"
|
></PriceInfo>
|
</el-form>
|
</div>
|
<div class="fixedBtn">
|
<el-button
|
size="medium"
|
plain
|
@click="saveDraft(loanForm)"
|
v-if="applyInfo.phaseNo=='0040'"
|
>保存草稿</el-button>
|
<el-button
|
size="medium"
|
plain
|
@click="save(loanForm)"
|
v-if="applyInfo.phaseNo>'0040'&&writeAble"
|
>保存</el-button>
|
<el-button size="medium" plain @click="prevStep" v-if="applyInfo.phaseNo=='0040'">上一步</el-button>
|
<el-button size="medium" plain @click="prevStep" v-else>上一页</el-button>
|
<el-button
|
size="medium"
|
type="primary"
|
@click="submit(loanForm)"
|
v-if="applyInfo.phaseNo=='0040'"
|
>下一步</el-button>
|
<el-button size="medium" type="primary" @click="nextPage()" v-else>下一页</el-button>
|
</div>
|
<Branch
|
v-if="showBranch"
|
:visible="showBranch"
|
:bank="loanForm[0].putoutbankno"
|
@closeBranch="showBranch=false"
|
@sendBranch="sendBranch"
|
></Branch>
|
</div>
|
</template>
|
<script>
|
import {
|
qryApplyDetail,
|
getDictionaryList,
|
qryCustomerBaseList,
|
getAllCityAreaList,
|
tryTrialPriceInfo,
|
qryRepayTypeList,
|
qryFundUnitList,
|
qryRefereerInfo,
|
saveOrUpdatePreApplyLoan,
|
submitApplyLoan,
|
qryLoanOrgList,
|
getProvinceCodeList,
|
getBankList,
|
calculateLoanMes
|
} from "@/api/product";
|
import common from "@/utils/common";
|
import PriceInfo from "@views/product/components/PriceInfo";
|
import Branch from "@views/product/components/Branch";
|
export default {
|
data() {
|
return {
|
applyInfo: this.$store.state.product.applyInfo,
|
applyMenu: this.$store.state.product.applyMenu,
|
initialArr: [], //初始数据
|
loanForm: [],
|
loanArr: [],
|
rules: {},
|
allCityList: [],
|
repayTypeList: [],
|
fundUnitList: [],
|
provinceList: [],
|
putoutbankcityList: [],
|
putoutbankList: [],
|
offlinePutoutBankList: [],
|
customerBaseList: [],
|
showBranch: false,
|
writeAble: false
|
};
|
},
|
async created() {
|
this.$parent._data.loading = true;
|
this.fundUnitList = await this.getFundUnitList();
|
const result = await this.getApplyDetail();
|
this.getApplyData(result);
|
this.$parent._data.loading = false;
|
},
|
components: {
|
PriceInfo,
|
Branch
|
},
|
methods: {
|
// 获取客群名称描述
|
getCustomerbasename(val){
|
const { customerBaseList, loanForm } = this
|
this.qryTrial(loanForm[0]);
|
for (let i = 0; i < customerBaseList.length; i++) {
|
if(customerBaseList[i].customersCode == val){
|
console.log(customerBaseList[i].customersName)
|
this.loanForm[0].customerbasename = customerBaseList[i].customersName
|
break
|
}
|
}
|
},
|
// 处理数据,并校验规则
|
async getApplyData(result) {
|
// 获取贷款机构清单
|
const res = await qryLoanOrgList({ fundUnitNo: "SLBL" });
|
result["loanOrgList"].value = res.result[0].orgName;
|
// 保理-放款资金单元默认填写SLB
|
result["fundunitno"].value = "SLBL";
|
this.loanArr = [];
|
this.loanForm = [];
|
this.initialArr = [];
|
this.loanArr.push(result);
|
// 初始化数据和校验规则
|
this.loanArr.forEach(async (val, index) => {
|
for (const key in val) {
|
if (key == "putOutInfo") {
|
for (const child in val[key]) {
|
val[child] = val[key][child];
|
}
|
}
|
}
|
// 将数据重新排列
|
const obj = {};
|
for (const key in val) {
|
// 格式化金额
|
if (
|
key == "stillproceedssum" ||
|
key == "hasproceedsallsum" ||
|
key == "stayproceedssum" ||
|
key == "stillpaybalance" ||
|
key == "haspaybalance" ||
|
key == "staypaybalance" ||
|
key == "stillbackpaysum" ||
|
key == "hasbackpaysum" ||
|
key == "hopebusinesssum" ||
|
key == "businesssum" ||
|
key == "actualputoutsum" ||
|
key == "payprincipalamt" ||
|
key == "actualpayprincipalamt" ||
|
key == "actualpayinterestamt" ||
|
key == "payinterestamt" ||
|
key == "payduepenaltyamt" ||
|
key == "payprincipalpenaltyamt" ||
|
key == "actualpayprincipalpenaltyamt" ||
|
key == "paypenaltyamt" ||
|
key == "paypenaltyamt" ||
|
key == "alreadypayprincipalpenalty" ||
|
key == "backpayallsum" ||
|
key == "payallsum" ||
|
key == "haspayallsum" ||
|
key == "stillpayallsum" ||
|
key == "debtorpaysum" ||
|
key == "fundunitremanentamt" ||
|
key == "basecreditamt" ||
|
key == "productcreditamtlimit" ||
|
key == "productremanentamt"
|
) {
|
val[key].value = this.formatMoney(val[key].value);
|
}
|
// 自定义校验规则,涉及金额将进行格式化
|
this.rules[key] = [];
|
switch (key) {
|
case "putoutcardno":
|
this.rules[key].push(common.validate("number"));
|
break;
|
case "hopebusinesstermday":
|
this.rules[key].push(common.validate("number"));
|
break;
|
case "businesstermday":
|
this.rules[key].push(common.validate("number"));
|
break;
|
default:
|
break;
|
}
|
if (val[key].required) {
|
this.rules[key].push({
|
required: true,
|
message: `请输入${val[key].filedDescription}`,
|
trigger: "change"
|
});
|
}
|
// 如果是定价信息或者订单信息不能直接置空
|
if (
|
key != "pricingInfo" &&
|
key != "voucherInfo" &&
|
key != "putOutInfo"
|
) {
|
obj[key] = val[key].value;
|
obj["hopebusinesstermday"] = obj["hopebusinesstermday"]
|
? parseInt(obj["hopebusinesstermday"])
|
: "";
|
val[key].value = "";
|
} else {
|
obj[key] = val[key];
|
}
|
}
|
// 获取资金单元剩余可用额度
|
this.getFundunitname(obj);
|
this.loanForm.push(obj);
|
this.initialArr.push(Object.assign({}, obj));
|
});
|
this.qryAllCityAreaList();
|
this.getRepayTypeList();
|
this.getCustomerBaseList();
|
getProvinceCodeList({}).then(res => {
|
this.provinceList = res.result;
|
});
|
// 根据省获取市
|
this.loanForm[0].putoutbankprovince
|
? (this.putoutbankcityList = await common.qryCityCodeList(
|
this.loanForm[0].putoutbankprovince
|
))
|
: "";
|
this.writeAble =
|
this.loanArr[0].remark.writeAble ||
|
this.loanArr[0].debtorpaydate.writeAble ||
|
(this.loanArr[0].putOutInfo && this.loanArr[0].offlineputoutbankno.writeAble);
|
this.putoutbankList = await this.qryBankList("1,3");
|
this.offlinePutoutBankList = await this.qryDictionaryList(
|
"PutOutAccountType"
|
);
|
},
|
// 查询贷款申请信息
|
getApplyDetail() {
|
return new Promise(resolve => {
|
qryApplyDetail({ serialNo: this.applyInfo.serialNo }).then(res => {
|
resolve(res.result);
|
});
|
});
|
},
|
// 计算保理财务信息
|
calculateLoanMes(form) {
|
if (!form.debtorpaydate || !form.debtorpaysum) return;
|
const obj = {
|
applyserialno: this.applyInfo.serialNo,
|
debtorpaydate: form.debtorpaydate,
|
debtorpaysum: form.debtorpaysum
|
};
|
this.$parent._data.loading = true;
|
calculateLoanMes(obj).then(res => {
|
if (res.code == "00") {
|
for (const key in res.result) {
|
if (form.hasOwnProperty(key)) {
|
if (key == "debtorpaydate") {
|
form[key] = res.result[key];
|
} else {
|
form[key] = this.formatMoney(res.result[key]);
|
}
|
}
|
}
|
}
|
this.$parent._data.loading = false;
|
});
|
},
|
// 定价信息试算
|
qryTrial(form) {
|
if (form.operatedate >= form.exevaluedate && form.exevaluedate) {
|
form.exevaluedate = "";
|
this.$message.warning("执行起息日不能小于申请日期!");
|
return;
|
}
|
if (
|
(form.productcustomerscode ||
|
!this.loanArr[0].productcustomerscode.visible ||
|
!this.loanArr[0].productcustomerscode.writeAble ||
|
!this.loanArr[0].productcustomerscode.required) &&
|
(form.productcreditamtlimit ||
|
!this.loanArr[0].productcreditamtlimit.visible ||
|
!this.loanArr[0].productcreditamtlimit.writeAble) &&
|
(form.basecreditamt ||
|
!this.loanArr[0].basecreditamt.visible ||
|
!this.loanArr[0].basecreditamt.writeAble) &&
|
(form.putoutdate ||
|
!this.loanArr[0].putOutInfo ||
|
!this.loanArr[0].putoutdate.visible) &&
|
(form.businesssum || !this.loanArr[0].businesssum.visible) &&
|
(form.businesstermday || !this.loanArr[0].businesstermday.visible) &&
|
(form.repaymenttype || !this.loanArr[0].repaymenttype.visible) &&
|
this.applyInfo.phaseNo >= "0040"
|
) {
|
form.businesssum = this.formatMoney(form.businesssum);
|
const obj = {
|
serialno: this.applyInfo.serialNo,
|
productcustomerscode: form.productcustomerscode,
|
businesssum: form.businesssum,
|
repaymenttype: form.repaymenttype,
|
productcreditamtlimit: form.productcreditamtlimit,
|
basecreditamt: form.basecreditamt,
|
actualputoutdate: form.putoutdate,
|
exevaluedate: form.exevaluedate
|
};
|
this.$parent._data.loading = true;
|
if (/^\d{1,3}(,?\d{3})*(\.\d{1,2})?$/.test(form.businesssum)) {
|
tryTrialPriceInfo(obj).then(res => {
|
this.$parent._data.loading = false;
|
if (res.code == "00") {
|
res.result.msg = "";
|
//更新放款金额,产品剩余可用额度
|
form.productdimension = res.result.productdimension;
|
form.productdimensionname = res.result.productdimensionname;
|
form.productremanentamt = this.formatMoney(
|
res.result.productremanentamt
|
);
|
form.amountloan = this.formatMoney(res.result.amountloan);
|
form.productcreditamtlimit = this.formatMoney(
|
res.result.productcreditamtlimit
|
);
|
form.basecreditamt = this.formatMoney(res.result.basecreditamt);
|
form.hopebusinesssum = this.formatMoney(
|
res.result.hopebusinesssum
|
);
|
form.hopebusinesstermday = res.result.hopebusinesstermday;
|
form.actualputoutdate = res.result.actualputoutdate;
|
form.maturitydate = res.result.maturitydate;
|
form.actualputoutsum = this.formatMoney(
|
res.result.actualputoutsum
|
);
|
form.businesstermday = res.result.businesstermday;
|
//更新定价信息
|
if (JSON.stringify(res.result.pricingInfo) != "{}") {
|
form.pricingInfo = res.result.pricingInfo;
|
}
|
// 提示试算结果
|
if (res.result.flags) {
|
for (const key in res.result.flags) {
|
if (res.result.flags[key]) {
|
if (res.result.msg) {
|
res.result.msg += "," + res.result.flags[key];
|
} else {
|
res.result.msg += res.result.flags[key];
|
}
|
// 将还款方式,放款金额清空值
|
switch (key) {
|
case "flagBusinesssum":
|
form.businesssum = "";
|
break;
|
case "flagRepaymenttype":
|
form.repaymenttype = "";
|
break;
|
case "flagProductcreditamtlimit":
|
form.productcreditamtlimit = "";
|
break;
|
default:
|
break;
|
}
|
// 将定价信息里面的所有字段value清空
|
for (const key in form.pricingInfo) {
|
form.pricingInfo[key] = "";
|
}
|
}
|
}
|
}
|
// 提示语
|
if (res.result.msg) {
|
this.$message.warning(res.result.msg);
|
}
|
// 更新还款方式下拉选项
|
if (res.result.repaymentTermList.length) {
|
let flag = true;
|
this.repayTypeList = res.result.repaymentTermList;
|
for (let i = 0; i < this.repayTypeList.length; i++) {
|
if (this.repayTypeList[i].paymentType == form.repaymenttype) {
|
flag = false;
|
break;
|
}
|
}
|
if (flag) {
|
form.repaymenttype = "";
|
}
|
} else {
|
this.getRepayTypeList();
|
}
|
}
|
});
|
} else {
|
this.$message.warning("贷款金额输入格式有误,请重新输入!");
|
form.businesssum = "";
|
this.$parent._data.loading = false;
|
}
|
}
|
},
|
getBankBranch() {
|
if (!this.loanForm[0].putoutbankno) {
|
this.$message.warning("请输入授权放款账户开户行");
|
return;
|
}
|
this.showBranch = true;
|
this.loanForm[0].putoutbankbranchno = "";
|
},
|
selOfflinePutoutBank(val) {
|
for (let i = 0; i < this.offlinePutoutBankList.length; i++) {
|
if (this.offlinePutoutBankList[i].itemno == val) {
|
this.loanForm[0].offlineputoutbankname = this.offlinePutoutBankList[
|
i
|
].itemname;
|
this.loanForm[0].offlineputoutaccountno = this.offlinePutoutBankList[
|
i
|
].attribute1;
|
this.loanForm[0].offlineputoutaccountname = this.offlinePutoutBankList[
|
i
|
].attribute3;
|
break;
|
}
|
}
|
},
|
// 子组件回传
|
sendBranch(data) {
|
this.loanForm[0].putoutbankbranchno = data.bankno;
|
this.loanForm[0].putoutbankbranchname = data.bankname;
|
},
|
// 监听授权放款账户开户行
|
selputoutbankno() {
|
// 当重新选择开户行就要更新开户行分支行
|
this.loanForm[0].putoutbankbranchno = "";
|
this.loanForm[0].putoutbankbranchname = "";
|
},
|
editBusinesssum(form) {
|
form.businesssum = this.formatMoney(form.businesssum);
|
// 计算时去除空格
|
form.financingcvs = (
|
parseInt(form.businesssum.replace(/,/g, "").replace(/\s/g, "")) /
|
parseInt(form.billsum)
|
).toFixed(5);
|
if (parseFloat(form.financingcvs) > 1) {
|
form.businesssum = "";
|
form.financingcvs = "";
|
this.$message.warning("融资成数不能大于1");
|
} else {
|
this.qryTrial(form);
|
}
|
},
|
editFinancingcvs(form) {
|
if (parseFloat(form.financingcvs) > 1) {
|
form.financingcvs = "";
|
this.$message.warning("融资成数不能大于1");
|
} else {
|
form.businesssum = this.formatMoney(
|
parseFloat(form.financingcvs) * parseInt(form.billsum)
|
);
|
this.qryTrial(form);
|
}
|
},
|
// 保存接口
|
saveApplyLoan(arr) {
|
return new Promise(resolve => {
|
saveOrUpdatePreApplyLoan(arr[0]).then(res => {
|
resolve(res);
|
});
|
});
|
},
|
// 提交接口
|
getSubmitApplyLoan(arr) {
|
return new Promise(resolve => {
|
submitApplyLoan(arr[0]).then(res => {
|
resolve(res);
|
});
|
});
|
},
|
// 保存草稿
|
async saveDraft(arr) {
|
this.$parent._data.loading = true;
|
const res = await this.saveApplyLoan(arr);
|
if (res.code == "00") {
|
const result = await this.getApplyDetail();
|
this.getApplyData(result);
|
this.$message.success("保存成功");
|
// 保存草稿需要调用父组件的查询左侧tab的方法
|
this.$parent.getApplyTabTree();
|
}
|
this.$parent._data.loading = false;
|
},
|
// 保存并校验数据完整性
|
async save(arr) {
|
if (!common.validateForm(this.$refs.loanForm).flag) return;
|
this.$parent._data.loading = true;
|
const res = await this.saveApplyLoan(arr);
|
if (res.code == "00") {
|
const result = await this.getApplyDetail();
|
this.getApplyData(result);
|
this.$message.success("保存成功");
|
}
|
this.$parent._data.loading = false;
|
},
|
// 上一步或上一页
|
prevStep() {
|
this.applyMenu.forEach((val, index) => {
|
if (val.tabname == "贷款申请信息") {
|
common.tabInfo(
|
this.applyMenu[index - 1].tabname,
|
this.applyInfo.flowno,
|
this
|
);
|
}
|
});
|
},
|
// 提交
|
async submit(arr) {
|
if (!common.validateForm(this.$refs.loanForm).flag) return;
|
this.$parent._data.loading = true;
|
const res = await this.getSubmitApplyLoan(arr);
|
if (res.code == "00") {
|
const result = await this.getApplyDetail();
|
this.getApplyData(result);
|
this.$parent._data.loading = false;
|
this.nextPage();
|
}
|
},
|
// 下一页
|
nextPage() {
|
// 调用父组件的查询左侧tab的方法
|
this.$parent.updateApplyTabTree("贷款申请信息");
|
},
|
// 产品客群
|
getCustomerBaseList() {
|
qryCustomerBaseList({
|
productCode: this.loanForm[0].productid,
|
applySerialNo: this.applyInfo.serialNo
|
}).then(res => {
|
this.customerBaseList = res.result;
|
});
|
},
|
// 银行列表
|
qryBankList(code) {
|
return new Promise(resolve => {
|
getBankList({
|
codeNo: "BankCode",
|
itmeNo: code
|
}).then(res => {
|
resolve(res.result);
|
});
|
});
|
},
|
// 根据推荐人手机号获取推荐人信息
|
getRefereerInfo(code, i) {
|
const obj = {
|
getFromType: i
|
};
|
obj[code] = this.loanForm[0][code.toLowerCase()];
|
qryRefereerInfo(obj).then(res => {
|
if (res.code == "00") {
|
this.loanForm[0].refereephone = res.result.refereePhone;
|
this.loanForm[0].refereeid = res.result.refereeID;
|
this.loanForm[0].refereename = res.result.refereeName;
|
this.loanForm[0].refereeorgid = res.result.refereeOrgID;
|
this.loanForm[0].refereeorgname = res.result.refereeOrgName;
|
this.loanForm[0].refereefirstinternallevelName =
|
res.result.refereefirstinternallevelName;
|
this.loanForm[0].refereefirstinternallevel =
|
res.result.refereefirstinternallevel;
|
}
|
});
|
},
|
// 根据放款资金单元获取获取贷款机构清单
|
async selfundunitno(val) {
|
this.getFundunitname(this.loanForm[0]);
|
// 获取贷款机构清单
|
if (val) {
|
const res = await qryLoanOrgList({ fundUnitNo: val });
|
this.loanForm[0].loanOrgList = res.result[0].orgName;
|
}
|
},
|
getFundunitname(form) {
|
for (let i = 0; i < this.fundUnitList.length; i++) {
|
if (form.fundunitno == this.fundUnitList[i].fundunitno) {
|
form.fundunitremanentamt = this.formatMoney(
|
this.fundUnitList[i].remainTotalSum
|
);
|
form.fundunitname = this.fundUnitList[i].fundunitname;
|
break;
|
}
|
}
|
},
|
// 放款资金单元下拉
|
getFundUnitList() {
|
return new Promise(resolve => {
|
qryFundUnitList({}).then(res => {
|
resolve(res.result);
|
});
|
});
|
},
|
// 还款方式
|
getRepayTypeList() {
|
qryRepayTypeList({
|
termUnit: this.loanForm[0].termunit,
|
productCode: this.loanForm[0].productid,
|
creditTerm: this.loanForm[0].businesstermmonth,
|
dimensionCode: this.loanForm[0].productdimension
|
}).then(res => {
|
this.repayTypeList = res.result;
|
});
|
},
|
// 城市公用列表
|
qryAllCityAreaList() {
|
getAllCityAreaList({ queryFlag: "02" }).then(res => {
|
this.allCityList = res.result;
|
});
|
},
|
qryDictionaryList(code) {
|
return new Promise(resolve => {
|
getDictionaryList({
|
codeNo: code
|
}).then(res => {
|
resolve(res.result);
|
});
|
});
|
},
|
// 金额格式化
|
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
|
);
|
}
|
}
|
},
|
beforeRouteLeave(to, from, next) {
|
!this.loanForm.length ||
|
common.compareFormData(this.initialArr, this.loanForm, next)
|
? next()
|
: "";
|
}
|
};
|
</script>
|