<template>
|
<div class="product">
|
<div class="borrower" v-for="(item, index) in borrowerArr" :key="index">
|
|
<el-form
|
:model="borrowerForm[index]"
|
:rules="rules"
|
ref="borrowerForm"
|
size="small"
|
inline
|
:style="{'margin-bottom':isPubilc?'0':'36px'}"
|
label-width="165px"
|
>
|
<p class="title">
|
<span></span>
|
借款人基本信息
|
</p>
|
<div class="form">
|
<el-form-item
|
label="借款人类型"
|
v-if="borrowerArr[index].borrowertype.visible"
|
prop="borrowertype"
|
:class="{
|
isDifferent: borrowerArr[index].borrowertype.isDifferent,
|
}"
|
>
|
<el-select
|
v-model="borrowerForm[index].borrowertype"
|
clearable
|
filterable
|
:disabled="!borrowerArr[index].borrowertype.writeAble"
|
placeholder="支持输入搜索选择"
|
>
|
<el-option
|
v-for="(i, index) in borrowertypeList"
|
:key="index"
|
:label="i.itemname"
|
:value="i.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="借款人名称"
|
v-if="borrowerArr[index].customername.visible"
|
prop="customername"
|
:class="{ isDifferent: item.customername.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].customername"
|
:disabled="!borrowerArr[index].customername.writeAble"
|
></el-input>
|
</el-form-item>
|
<!-- 借款人证件类型,个人是身份证,企业为统一信用代码 -->
|
<el-form-item
|
:label="
|
borrowerArr[index].borrowertype.value === '01'
|
? '统一社会信用代码'
|
: '借款人身份证号码'
|
"
|
v-if="borrowerArr[index].customercertno.visible"
|
prop="customercertno"
|
:class="{ isDifferent: item.customercertno.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].customercertno"
|
:disabled="!borrowerArr[index].customercertno.writeAble"
|
>
|
</el-input>
|
</el-form-item>
|
<!-- 法定代表人名称 -->
|
<el-form-item
|
:label="borrowerArr[index].corporatename.filedDescription"
|
v-if="borrowerArr[index].corporatename.visible"
|
prop="corporatename"
|
:class="{ isDifferent: item.corporatename.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].corporatename"
|
:disabled="!borrowerArr[index].corporatename.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<!-- 法定代表人身份证号码 -->
|
<el-form-item
|
:label="borrowerArr[index].corporatecertid.filedDescription"
|
v-if="borrowerArr[index].corporatecertid.visible"
|
prop="corporatecertid"
|
:class="{ isDifferent: item.corporatecertid.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].corporatecertid"
|
:disabled="!borrowerArr[index].corporatecertid.writeAble"
|
></el-input>
|
</el-form-item>
|
|
|
<!-- 通讯地址(省) -->
|
<el-form-item
|
:label="borrowerArr[index].permanentprovince.filedDescription"
|
v-if="borrowerArr[index].permanentprovince.visible"
|
prop="permanentprovince"
|
:class="{ isDifferent: item.permanentprovince.isDifferent }"
|
>
|
<el-select
|
v-model="borrowerForm[index].permanentprovince"
|
filterable
|
clearable
|
:disabled="!borrowerArr[index].permanentprovince.writeAble"
|
placeholder="支持输入搜索选择"
|
@change="
|
getprovince(
|
borrowerForm[index].permanentprovince,
|
'permanentcityList',
|
borrowerForm[index],
|
function (arr) {
|
permanentcityList = 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="borrowerArr[index].permanentcity.filedDescription"
|
v-if="borrowerArr[index].permanentcity.visible"
|
prop="permanentcity"
|
:class="{ isDifferent: item.permanentcity.isDifferent }"
|
>
|
<el-select
|
v-model="borrowerForm[index].permanentcity"
|
filterable
|
clearable
|
:disabled="!borrowerArr[index].permanentcity.writeAble"
|
placeholder="支持输入搜索选择"
|
@change="
|
getcity(
|
borrowerForm[index].permanentcity,
|
'permanentcountyList',
|
borrowerForm[index],
|
function (arr) {
|
permanentcountyList = arr;
|
}
|
)
|
"
|
>
|
<el-option
|
v-for="(item, index) in permanentcityList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<!-- 通讯地址(区) -->
|
<el-form-item
|
:label="borrowerArr[index].permanentcounty.filedDescription"
|
v-if="borrowerArr[index].permanentcounty.visible"
|
prop="permanentcounty"
|
:class="{ isDifferent: item.permanentcounty.isDifferent }"
|
>
|
<el-select
|
v-model="borrowerForm[index].permanentcounty"
|
filterable
|
clearable
|
:disabled="!borrowerArr[index].permanentcounty.writeAble"
|
placeholder="支持输入搜索选择"
|
>
|
<el-option
|
v-for="(item, index) in permanentcountyList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<!-- 通讯地址(详细) -->
|
<el-form-item
|
:label="borrowerArr[index].permanentaddress.filedDescription"
|
v-if="borrowerArr[index].permanentaddress.visible"
|
prop="permanentaddress"
|
:class="{ isDifferent: item.permanentaddress.isDifferent }"
|
>
|
<el-input
|
type="textarea"
|
autosize
|
v-model="borrowerForm[index].permanentaddress"
|
:disabled="!borrowerArr[index].permanentaddress.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="邮箱"
|
v-if="borrowerArr[index].email.visible"
|
prop="email"
|
:class="{ isDifferent: item.email.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].email"
|
:disabled="!borrowerArr[index].email.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="手机号码"
|
v-if="borrowerArr[index].phone.visible"
|
prop="phone"
|
:class="{ isDifferent: item.phone.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].phone"
|
:disabled="!borrowerArr[index].phone.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<p class="title">
|
<span></span>
|
实控人信息
|
</p>
|
<!-- 实控人名称 -->
|
<el-form-item
|
:label="borrowerArr[index].controlpeoplename.filedDescription"
|
v-if="borrowerArr[index].controlpeoplename.visible"
|
prop="controlpeoplename"
|
:class="{ isDifferent: item.controlpeoplename.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].controlpeoplename"
|
:disabled="!borrowerArr[index].controlpeoplename.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<!-- 实控人身份证号码 -->
|
<el-form-item
|
:label="borrowerArr[index].controlpeoplencertid.filedDescription"
|
v-if="borrowerArr[index].controlpeoplencertid.visible"
|
prop="controlpeoplencertid"
|
:class="{ isDifferent: item.controlpeoplencertid.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].controlpeoplencertid"
|
:disabled="!borrowerArr[index].controlpeoplencertid.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<!-- 实控人控制人手机号码 -->
|
<el-form-item
|
:label="borrowerArr[index].controlpeoplenphone.filedDescription"
|
v-if="borrowerArr[index].controlpeoplenphone.visible"
|
prop="controlpeoplenphone"
|
:class="{ isDifferent: item.controlpeoplenphone.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].controlpeoplenphone"
|
:disabled="!borrowerArr[index].controlpeoplenphone.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<!-- TODO::当借款人为企业时,需要添加联系人姓名,联系人电话,联系人邮箱 -->
|
<p class="title">
|
<span></span>
|
联系人信息
|
</p>
|
<template v-if="!isPubilc">
|
<el-form-item
|
label="联系人姓名"
|
v-if="borrowerArr[index].relativecustomername.visible"
|
prop="relativecustomername"
|
>
|
<el-input
|
v-model="borrowerForm[index].relativecustomername"
|
:disabled="!borrowerArr[index].relativecustomername.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="联系人电话"
|
v-if="borrowerArr[index].relativecustomerphone.visible"
|
prop="relativecustomerphone"
|
>
|
<el-input
|
v-model="borrowerForm[index].relativecustomerphone"
|
:disabled="!borrowerArr[index].relativecustomerphone.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="联系人邮箱"
|
v-if="borrowerArr[index].relativecustomeremail.visible"
|
prop="relativecustomeremail"
|
>
|
<el-input
|
v-model="borrowerForm[index].relativecustomeremail"
|
:disabled="!borrowerArr[index].relativecustomeremail.writeAble"
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="证件类型"
|
v-if="borrowerArr[index].certtype.visible"
|
prop="certtype"
|
:class="{ isDifferent: item.certtype.isDifferent }"
|
>
|
<el-select
|
v-model="borrowerForm[index].certtype"
|
filterable
|
clearable
|
placeholder="支持输入搜索选择"
|
:disabled="!borrowerArr[index].certtype.writeAble"
|
>
|
<el-option
|
v-for="item in certtypeList"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item
|
label="证件号码"
|
v-if="borrowerArr[index].certid.visible"
|
prop="certid"
|
:class="{ isDifferent: item.certid.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].certid"
|
:disabled="!borrowerArr[index].certid.writeAble"
|
@change="
|
borrowerForm[index].certid =
|
borrowerForm[index].certid.toUpperCase()
|
"
|
>
|
<el-button
|
slot="append"
|
icon="el-icon-camera"
|
:disabled="isUploadAble"
|
@click="handleCeridUploadOpen"
|
></el-button>
|
</el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="出生年月"
|
prop="cardBirthday"
|
v-if="borrowerArr[index].cardBirthday.visible"
|
:class="{
|
isDifferent: borrowerArr[index].cardBirthday.isDifferent,
|
}"
|
>
|
<el-date-picker
|
v-model="borrowerForm[index].cardBirthday"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
placeholder="选择日期"
|
:disabled="!borrowerArr[index].cardBirthday.writeAble"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item
|
label="签发机关"
|
prop="issuer"
|
v-if="borrowerArr[index].issuer.visible"
|
:class="{ isDifferent: borrowerArr[index].issuer.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].issuer"
|
:disabled="!borrowerArr[index].issuer.writeAble"
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="身份证有效期开始日期"
|
prop="validBegin"
|
v-if="borrowerArr[index].validBegin.visible"
|
:class="{ isDifferent: borrowerArr[index].validBegin.isDifferent }"
|
>
|
<el-date-picker
|
v-model="borrowerForm[index].validBegin"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
placeholder="选择日期"
|
:disabled="!borrowerArr[index].validBegin.writeAble"
|
>
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item
|
label="身份证有效期结束日期"
|
prop="validEnd"
|
v-if="borrowerArr[index].validEnd.visible"
|
:class="{ isDifferent: borrowerArr[index].validEnd.isDifferent }"
|
>
|
<el-date-picker
|
v-model="borrowerForm[index].validEnd"
|
type="date"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
placeholder="选择日期"
|
:disabled="!borrowerArr[index].validEnd.writeAble"
|
>
|
</el-date-picker>
|
</el-form-item>
|
|
<el-form-item
|
label="单位电话"
|
v-if="borrowerArr[index].companyphone.visible"
|
prop="companyphone"
|
:class="{ isDifferent: item.companyphone.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].companyphone"
|
:disabled="
|
!borrowerArr[index].companyphone.writeAble || headshipFlag
|
"
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="家庭电话"
|
v-if="borrowerArr[index].hometel.visible"
|
prop="hometel"
|
:class="{ isDifferent: item.hometel.isDifferent }"
|
>
|
<el-input
|
v-model="borrowerForm[index].hometel"
|
:disabled="!borrowerArr[index].hometel.writeAble"
|
></el-input>
|
</el-form-item>
|
</template>
|
</div>
|
<div class="form">
|
<el-form-item
|
label=" "
|
class="is_btn"
|
v-if="applyInfo.phaseNo == '0100'"
|
>
|
<el-button
|
plain
|
size="small"
|
class="is_background"
|
@click="getVirtualAccount(borrowerForm[index])"
|
>获取虚拟号</el-button
|
>
|
</el-form-item>
|
<el-form-item
|
label="鹏友收款对公户开户行"
|
v-if="borrowerArr[index].bankName.visible"
|
prop="bankName"
|
>
|
<el-input
|
v-model="borrowerForm[index].bankName"
|
disabled
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="鹏友收款对公户账号"
|
v-if="borrowerArr[index].balanceaccount.visible"
|
prop="balanceaccount"
|
>
|
<el-input
|
v-model="borrowerForm[index].balanceaccount"
|
disabled
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="客户还款虚拟账号"
|
v-if="borrowerArr[index].balancefictitiousaccount.visible"
|
prop="balancefictitiousaccount"
|
>
|
<el-input
|
v-model="borrowerForm[index].balancefictitiousaccount"
|
disabled
|
></el-input>
|
</el-form-item>
|
</div>
|
</el-form>
|
<el-table
|
:data="contactList"
|
v-if="isPubilc"
|
style="width: 100%;"
|
>
|
<el-table-column label="序号" type="index" align="center" width="50px"> </el-table-column>
|
<el-table-column prop="relativecustomername" label="联系人姓名"></el-table-column>
|
<el-table-column prop="phone" label="联系人电话"></el-table-column>
|
<el-table-column prop="relationshipDesc" label="与借款人关系"></el-table-column>
|
</el-table>
|
<!-- <Contacts v-if="applyInfo.phaseNo >= '0040'" :show="writeAble"></Contacts> -->
|
</div>
|
<div :class="[applyInfo.phaseNo >= '0040' ? 'fixedBtn' : 'btn']">
|
<el-button
|
size="medium"
|
plain
|
@click="saveDraft"
|
v-if="(applyInfo.phaseNo == '0040' || applyInfo.phaseNo == '0010') && !isReadonly"
|
>保存草稿</el-button
|
>
|
<el-button
|
size="medium"
|
plain
|
@click="save"
|
v-if="
|
applyInfo.phaseNo > '0040' && writeAble
|
"
|
>保存</el-button
|
>
|
<el-button
|
size="medium"
|
type="primary"
|
@click="submit()"
|
v-if="(applyInfo.phaseNo == '0040' || applyInfo.phaseNo == '0010' || applyInfo.phaseNo == '0060') && !isReadonly"
|
>下一步</el-button
|
>
|
<el-button
|
size="medium"
|
type="primary"
|
@click="nextPage()"
|
v-else
|
>下一步</el-button
|
>
|
</div>
|
<!-- 证件图片上传 -->
|
<CertUpload
|
:visible="showCeridUploadImg"
|
@close="handleCeridUploadClose"
|
@submit="subimtCeridUpload"
|
></CertUpload>
|
</div>
|
</template>
|
<script>
|
import {
|
qryCustomerBasicInfo,
|
getDictionaryList,
|
getAllCityAreaList,
|
submitCustomerBasicInfo,
|
saveCustomerBasicInfo,
|
getProvinceCodeList,
|
getCityCodeList,
|
getAreaCodeList,
|
qryContactList,
|
qryVirtualSettleAcct,
|
} from "@/api/product";
|
import { setStorage, getStorage, removeStorage } from "@/utils/storage";
|
import common from "@/utils/common";
|
import Contacts from "@views/product/components/Contacts";
|
import CertUpload from "@views/product/components/CertUpload";
|
export default {
|
data() {
|
return {
|
applyInfo: this.$store.state.product.applyInfo,
|
applyMenu: this.$store.state.product.applyMenu,
|
isUploadAble: false,
|
initialArr: [], //初始化数据
|
borrowerForm: [],
|
borrowerArr: [],
|
borrowertypeList: [],
|
certtypeList: [],
|
workCityList: [],
|
marriageList: [],
|
educationList: [],
|
headshiplist: [],
|
occupationlist: [],
|
nationlist: [],
|
sexlist: [],
|
provinceList: [],
|
|
permanentcityList: [],
|
permanentcountyList: [],
|
|
companycityList: [],
|
companycountyList: [],
|
|
familycityList: [],
|
familycountyList: [],
|
|
kosekicityList: [],
|
kosekicountyList: [],
|
contactList:[],
|
creditList: [],
|
arr: [],
|
rules: {},
|
writeAble: "",
|
showCeridUploadImg: false,
|
relativeRule: {
|
relativecustomername: {
|
filedDescription: "联系人姓名",
|
name: "relativecustomername",
|
required: false,
|
value: "",
|
visible: true,
|
writeAble: true
|
},
|
relativecustomerphone: {
|
filedDescription: "联系人电话",
|
name: "relativecustomerphone",
|
required: false,
|
value: "",
|
visible: true,
|
writeAble: true
|
},
|
relativecustomeremail: {
|
filedDescription: "联系人邮箱",
|
name: "relativecustomeremail",
|
required: false,
|
value: "",
|
visible: true,
|
writeAble: false
|
}
|
}
|
};
|
},
|
computed: {
|
// 是否是对公产品
|
isPubilc(){
|
const objectType = this.$store.state.product.applyInfo.objecttype
|
const ispubile = this.borrowerForm[0].borrowertype == '01' && objectType == 'CreditApplyCommon'
|
return ispubile
|
},
|
// 职业类型: 自由、无业
|
headshipFlag() {
|
return this.borrowerForm[0].headship == "04";
|
},
|
isReadonly() {
|
return this.$parent._data.applyMenu[this.$parent._data.activeIndex].readonly == 'Y'
|
}
|
},
|
components: {
|
Contacts,
|
CertUpload,
|
},
|
async created() {
|
const { applyInfo } = this;
|
console.log('借款人信息带入',applyInfo)
|
const { productID } = applyInfo;
|
this.$parent._data.loading = true;
|
this.isUploadAble = applyInfo.phaseNo <= "0040" ? false : true;
|
// 查询借款人信息
|
let result = await this.getCustomerBasicInfo();
|
result = this.compareFields(result);
|
this.getBorrowerData(result);
|
// 根据与借款人关系判断页面是否都是只读
|
this.writeAble = this.borrowerArr[0].phone.writeAble || this.borrowerArr[0].corporatename.writeAble;
|
//获取证件类型列表
|
this.certtypeList = await this.qryDictionaryList("CertType");
|
//获取工作经营城市
|
getAllCityAreaList({ queryFlag: "02" }).then((res) => {
|
this.workCityList = res.result;
|
});
|
// 获取婚姻状况下拉
|
this.marriageList = await this.qryDictionaryList("MarRiage");
|
// 最高学历下拉
|
this.educationList = await this.qryDictionaryList("EducationCode");
|
// 职业类型
|
this.headshiplist = await this.qryDictionaryList("HeadShip");
|
// 职业种类
|
this.occupationlist = await this.qryDictionaryList("Occupation");
|
// 民族
|
this.nationlist = await this.qryDictionaryList("Rh_NATION");
|
// 性别
|
this.sexlist = await this.qryDictionaryList("Sex");
|
//借款人类型选项
|
this.borrowertypeList = await this.qryDictionaryList("BorrowerType");
|
|
this.$parent._data.loading = false;
|
},
|
methods: {
|
compareFields(result) {
|
const { applyInfo } = this;
|
const { refuseFlag, phaseNo } = applyInfo;
|
if (refuseFlag == 1) {
|
const { customerInfo } = this.$store.state.product.fields;
|
for (const key in customerInfo) {
|
if (key != "customerRelativeList") {
|
if (result[key].value != customerInfo[key]) {
|
result[key]["isDifferent"] = true;
|
}
|
}
|
}
|
}
|
return result;
|
},
|
// 获取虚拟号
|
getVirtualAccount(form) {
|
this.$parent._data.loading = true;
|
qryVirtualSettleAcct({ applySerialNo: this.applyInfo.serialNo }).then(
|
(res) => {
|
this.$parent._data.loading = false;
|
if (res.code == "00") {
|
form.bankName = res.result.bankName;
|
form.balanceaccount = res.result.settleAcct;
|
form.balancefictitiousaccount = res.result.acctNo;
|
}
|
}
|
);
|
},
|
// 处理数据,将数据重新排列
|
async getBorrowerData(result) {
|
const { applyInfo } = this;
|
const { productID, phaseNo } = applyInfo;
|
this.borrowerForm = [];
|
this.initialArr = [];
|
this.borrowerArr = [];
|
try {
|
for (const key in result) {
|
if(key == 'contactList'){
|
this.contactList = result[key].map(res=>{
|
return {relativecustomername:res.relativecustomername.value,phone:res.phone.value,relationshipDesc:res.relationshipDesc.value}
|
})
|
}
|
}
|
} catch (error) {
|
|
}
|
this.borrowerArr.push(result);
|
// 取数组第一个作为校验规则
|
this.borrowerArr.forEach((val, index) => {
|
if (index == 0) {
|
for (const key in val) {
|
this.rules[key] = [];
|
// 自定义规则校验
|
switch (key) {
|
case "customername":
|
// this.rules[key].push(common.validate("name"));
|
break;
|
case "phone":
|
case "relativecustomerphone":
|
case "controlpeoplenphone":
|
this.rules[key].push(common.validate("phone"));
|
break;
|
case "email":
|
case "relativecustomeremail":
|
this.rules[key].push(common.validate("email"));
|
break;
|
case "certid":
|
// 自定义校验身份证格式
|
const checkCertid = (rule, value, callback) =>
|
common.checkCertid(
|
this.borrowerForm[index].certtype,
|
value,
|
callback
|
);
|
this.rules[key].push({
|
validator: checkCertid,
|
trigger: "change",
|
});
|
break;
|
case "controlpeoplencertid":
|
// 自定义校验身份证格式
|
const checkControlpeoplencertid = (rule, value, callback) =>
|
common.checkCertid(
|
'01',
|
value,
|
callback
|
);
|
if(val[key].required) {
|
this.rules[key].push({
|
validator: checkControlpeoplencertid,
|
trigger: "blur",
|
});
|
}
|
break;
|
case "companyname":
|
this.rules[key].push(common.validate("companyname"));
|
break;
|
case "companyphone":
|
case "hometel":
|
this.rules[key].push(common.validate("telephone"));
|
break;
|
case "cardBirthday":
|
case "validBegin":
|
case "validEnd":
|
this.rules[key].push({
|
required: true,
|
message: "请输入日期",
|
trigger: "change",
|
});
|
break;
|
case "relativecustomername":
|
this.rules[key].push(common.validate("name"));
|
break;
|
default:
|
break;
|
}
|
// 必填校验
|
if (val[key].required) {
|
this.rules[key].push({
|
required: true,
|
message: `请输入${val[key].filedDescription}`,
|
trigger: "change",
|
});
|
}
|
if(this.isReadonly) {
|
val[key].writeAble = false
|
}
|
}
|
}
|
const obj = {};
|
for (const key in val) {
|
obj[key] = val[key].value;
|
}
|
this.borrowerForm.push(obj);
|
this.initialArr.push(Object.assign({}, obj));
|
});
|
console.log('borrowerForm',this.borrowerForm,'borrowerArr',this.borrowerArr)
|
// 判断如果是贷款就要添加下面的逻辑
|
if (phaseNo >= "0040") {
|
// 获取省枚举值
|
getProvinceCodeList({}).then((res) => {
|
this.provinceList = res.result;
|
});
|
// 征信类型查询
|
this.creditList = await this.qryDictionaryList("queryCreditType");
|
// 产品为乐贷、精装贷、车位贷时,下拉框值需要修改.接口直接修改返回值会影像到其他使用该接口的数据,所以前端做修改
|
if (productID === "LD" || productID === "JZ" || productID === "CW") {
|
const itemnameIndex = this.creditList.findIndex(
|
(item) => item.itemname === "无需客户征信"
|
);
|
if (itemnameIndex > -1) {
|
this.creditList[itemnameIndex].itemname +=
|
"(自营项目且贷款额<=10万必填)";
|
}
|
}
|
//是否企业主/个体户
|
if (this.borrowerForm[0].headship == "01") {
|
this.borrowerForm[0].isindividualhousehold = "1";
|
this.borrowerForm[0].isindividualhouseholdDesc = "是";
|
} else {
|
this.borrowerForm[0].isindividualhousehold = "0";
|
this.borrowerForm[0].isindividualhouseholdDesc = "否";
|
}
|
// 根据省获取市
|
this.borrowerForm[0].permanentprovince
|
? (this.permanentcityList = await common.qryCityCodeList(
|
this.borrowerForm[0].permanentprovince
|
))
|
: "";
|
this.borrowerForm[0].companyprovince
|
? (this.companycityList = await common.qryCityCodeList(
|
this.borrowerForm[0].companyprovince
|
))
|
: "";
|
this.borrowerForm[0].familyprovince
|
? (this.familycityList = await common.qryCityCodeList(
|
this.borrowerForm[0].familyprovince
|
))
|
: "";
|
this.borrowerForm[0].kosekiprovince
|
? (this.kosekicityList = await common.qryCityCodeList(
|
this.borrowerForm[0].kosekiprovince
|
))
|
: "";
|
// 根据市获取区
|
this.borrowerForm[0].permanentcity
|
? (this.permanentcountyList = await common.qryAreaCodeList(
|
this.borrowerForm[0].permanentcity
|
))
|
: "";
|
this.borrowerForm[0].companycity
|
? (this.companycountyList = await common.qryAreaCodeList(
|
this.borrowerForm[0].companycity
|
))
|
: "";
|
this.borrowerForm[0].familycity
|
? (this.familycountyList = await common.qryAreaCodeList(
|
this.borrowerForm[0].familycity
|
))
|
: "";
|
this.borrowerForm[0].kosekicity
|
? (this.kosekicountyList = await common.qryAreaCodeList(
|
this.borrowerForm[0].kosekicity
|
))
|
: "";
|
}
|
|
},
|
// 查询借款人
|
getCustomerBasicInfo() {
|
return new Promise((resolve) => {
|
qryCustomerBasicInfo({
|
applySerialNo: this.applyInfo.serialNo,
|
customerId: this.applyInfo.customerid,
|
}).then((res) => {
|
let data = res.result
|
if(!data.contactList.length) {
|
this.relativeCustomerState = 'add'
|
data = {...data, ...this.relativeRule}
|
} else {
|
const contactList = data.contactList[0]
|
this.relativeCustomerState = 'edit'
|
data.relativecustomername = contactList.relativecustomername
|
data.relativecustomeremail = contactList.email
|
data.relativecustomerphone = contactList.phone
|
data.relativecustomerserialno = contactList.serialno
|
data.relativecustomercustomerid = contactList.customerid
|
}
|
resolve(data);
|
});
|
});
|
},
|
// 保存借款人接口
|
getSaveCustomerBasicInfo(form) {
|
form.applyserialno = this.applyInfo.serialNo;
|
return new Promise((resolve) => {
|
let params = this.borrowerForm[0]
|
// 默认控制人证件类型 为身份证
|
params.controlpeoplencertype = "01"
|
if(params.relativecustomername || params.relativecustomerphone || params.relativecustomeremail) {
|
params.customerRelativeList = [{
|
serialno: this.relativeCustomerState !== 'add'?params.relativecustomerserialno:'',//如果不是新增就是修改
|
relativecustomername: params.relativecustomername, // "联系人名称",
|
phone: params.relativecustomerphone, // "联系人手机号码",
|
email: params.relativecustomeremail, // "联系人邮箱",
|
customerid: params.relativecustomercustomerid, // "借款人ID",
|
relationtype: '03', // "与借款人关系,固定03。Code:RelationType:'01'-共同借款人;'02'-担保人;03-联系人"
|
}]
|
} else {
|
params.customerRelativeList = []
|
}
|
saveCustomerBasicInfo(params).then((res) => {
|
resolve(res);
|
});
|
});
|
},
|
// 提交借款人接口
|
getSubmitCustomerBasicInfo(form) {
|
return new Promise((resolve) => {
|
let params = this.borrowerForm[0]
|
// 默认控制人证件类型 为身份证
|
params.controlpeoplencertype = "01"
|
if(params.relativecustomername || params.relativecustomerphone || params.relativecustomeremail) {
|
params.customerRelativeList = [{
|
relativecustomername: params.relativecustomername, // "联系人名称",
|
phone: params.relativecustomerphone, // "联系人手机号码",
|
email: params.relativecustomeremail, // "联系人邮箱",
|
customerid: params.relativecustomercustomerid, // "借款人ID",
|
relationtype: '03', // "与借款人关系,固定03。Code:RelationType:'01'-共同借款人;'02'-担保人;03-联系人"
|
}]
|
if(this.relativeCustomerState !== 'add') {
|
params.customerRelativeList[0].serialno = params.relativecustomerserialno
|
}
|
} else {
|
params.customerRelativeList = []
|
}
|
submitCustomerBasicInfo(params).then((res) => {
|
resolve(res);
|
});
|
});
|
},
|
//根据职业类型自动填充是否企业主
|
handleHeadship(val) {
|
console.log(val);
|
// 判断是否是贷款申请编辑
|
if (this.applyInfo.phaseNo >= "0040") {
|
if (val == "01") {
|
this.borrowerForm[0].isindividualhousehold = "1";
|
this.borrowerForm[0].isindividualhouseholdDesc = "是";
|
} else {
|
this.borrowerForm[0].isindividualhousehold = "0";
|
this.borrowerForm[0].isindividualhouseholdDesc = "否";
|
}
|
if (val == "04") {
|
let borrowerForm = this.borrowerForm[0];
|
borrowerForm.companyname = null;
|
borrowerForm.companyphone = null;
|
borrowerForm.companyprovince = null;
|
borrowerForm.companycity = null;
|
borrowerForm.companycounty = null;
|
borrowerForm.companyaddress = null;
|
}
|
}
|
},
|
qryDictionaryList(code) {
|
return new Promise((resolve) => {
|
getDictionaryList({
|
codeNo: code,
|
}).then((res) => {
|
resolve(res.result);
|
});
|
});
|
},
|
// 查询联系人
|
getContactList() {
|
return new Promise((resolve) => {
|
qryContactList({
|
applySerialNo: this.applyInfo.serialNo,
|
customerId: this.applyInfo.customerid,
|
relationtype: "03",
|
}).then((res) => {
|
resolve(res.result);
|
});
|
});
|
},
|
// 下一页
|
nextPage() {
|
// 调用父组件的查询左侧tab的方法
|
|
this.$parent.updateApplyTabTree("借款人信息");
|
},
|
// 提交
|
async submit() {
|
if (!common.validateForm(this.$refs.borrowerForm).flag) return;
|
// const contacts = await this.getContactList();
|
// if (this.applyInfo.phaseNo >= "0040") {
|
// if (!contacts.length) {
|
// this.$message.warning("至少填写一个联系人信息");
|
// return;
|
// }
|
// }
|
this.$parent._data.loading = true;
|
const res = await this.getSubmitCustomerBasicInfo(this.borrowerForm[0]);
|
if (res.code == "00") {
|
const result = await this.getCustomerBasicInfo();
|
this.getBorrowerData(result);
|
this.nextPage();
|
}
|
this.$parent._data.loading = false;
|
},
|
// 保存需要校验数据完整性
|
async save() {
|
if (!common.validateForm(this.$refs.borrowerForm).flag) return;
|
// const contacts = await this.getContactList();
|
// if (this.applyInfo.phaseNo >= "0040") {
|
// if (!contacts.length) {
|
// this.$message.warning("至少填写一个联系人信息");
|
// return;
|
// }
|
// }
|
this.$parent._data.loading = true;
|
// 保存
|
const res = await this.getSaveCustomerBasicInfo(this.borrowerForm[0]);
|
// 保存成功查询列表数据
|
if (res.code == "00") {
|
const result = await this.getCustomerBasicInfo();
|
// 将数据重新排列
|
this.getBorrowerData(result);
|
this.$message.success("保存成功");
|
}
|
this.$parent._data.loading = false;
|
},
|
// 保存草稿
|
async saveDraft() {
|
this.$parent._data.loading = true;
|
// 保存
|
const res = await this.getSaveCustomerBasicInfo(this.borrowerForm[0]);
|
// 保存成功查询列表数据
|
if (res.code == "00") {
|
const result = await this.getCustomerBasicInfo();
|
// 将数据重新排列
|
this.getBorrowerData(result);
|
this.$message.success("保存成功");
|
// 保存草稿需要调用父组件的查询左侧tab的方法
|
this.$parent.getApplyTabTree();
|
}
|
this.$parent._data.loading = false;
|
},
|
// 上传证件照片 - 打开
|
handleCeridUploadOpen() {
|
this.showCeridUploadImg = true;
|
},
|
// 上传证件照片 - 关闭
|
handleCeridUploadClose() {
|
this.showCeridUploadImg = false;
|
},
|
subimtCeridUpload(info) {
|
const certKeys = Object.keys(info);
|
certKeys.map((key) => {
|
if (key !== "certid") {
|
this.borrowerForm[0][key] = info[key];
|
} else {
|
if (this.borrowerArr[0].certid.writeAble) {
|
this.borrowerForm[0][key] = info[key];
|
}
|
}
|
});
|
this.showCeridUploadImg = false;
|
Object.assign({}, this.borrowerForm);
|
},
|
},
|
beforeRouteLeave(to, from, next) {
|
// console.log('this.borrowerForm',JSON.stringify(this.borrowerForm),JSON.stringify(this.initialArr))
|
for (let i = 0; i < this.borrowerForm.length; i++) {
|
for (const key in this.borrowerForm[i]) {
|
if (this.initialArr[i].hasOwnProperty(key) && key !='isindividualhousehold' && key !='isindividualhousehold' && key !='isindividualhouseholdDesc') {
|
if (this.borrowerForm[i][key] != this.initialArr[i][key]) {
|
// 页面有数据未保存
|
common.comfirm(
|
"提示",
|
"当前页面有数据未保存,是否放弃保存?",
|
() => {
|
next();
|
}
|
);
|
return;
|
}
|
}
|
}
|
}
|
next();
|
},
|
};
|
</script>
|