<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="核心企业名称"
|
v-if="loanArr[index].enterprisename.visible"
|
>
|
<el-input
|
v-model="loanArr[index].enterprisename.value"
|
disabled
|
></el-input>
|
</el-form-item>
|
<el-form-item
|
label="核心企业社会信用代码"
|
v-if="loanArr[index].reditcode.visible"
|
>
|
<el-input v-model="loanArr[index].reditcode.value" disabled></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="企业所在省"
|
v-if="loanArr[index].registerprovince.visible"
|
>
|
<el-select
|
v-model="loanArr[index].registerprovince.value"
|
filterable
|
clearable
|
disabled
|
placeholder="支持输入搜索选择"
|
>
|
<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].registercitys.visible"
|
>
|
<el-select
|
v-model="loanArr[index].registercitys.value"
|
filterable
|
clearable
|
disabled
|
placeholder="支持输入搜索选择"
|
>
|
<el-option
|
v-for="(item, index) in cityList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="企业所在区"
|
v-if="loanArr[index].registercounty.visible"
|
>
|
<el-select
|
v-model="loanArr[index].registercounty.value"
|
filterable
|
clearable
|
disabled
|
placeholder="支持输入搜索选择"
|
>
|
<el-option
|
v-for="(item, index) in areaList"
|
:key="index"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="企业所在详细地址"
|
v-if="loanArr[index].companytualaddress.visible"
|
>
|
<el-input
|
v-model="loanArr[index].companytualaddress.value"
|
disabled
|
></el-input>
|
</el-form-item>
|
|
</div>
|
<p class="title">
|
<span></span>
|
核心企业联系人信息
|
</p>
|
<div class="form">
|
<el-form-item
|
label="联系人姓名"
|
v-if="loanArr[index].contactname.visible"
|
>
|
<el-input
|
v-model="loanArr[index].contactname.value"
|
disabled
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="联系人证件号码"
|
v-if="loanArr[index].contactcertid.visible"
|
>
|
<el-input
|
v-model="loanArr[index].contactcertid.value"
|
disabled
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="联系人电话"
|
v-if="loanArr[index].contactphone.visible"
|
>
|
<el-input
|
v-model="loanArr[index].contactphone.value"
|
disabled
|
></el-input>
|
</el-form-item>
|
</div>
|
<p class="title" v-if="loanArr[index].projectCompanyName.visible">
|
<span></span>
|
项目公司/物流园信息
|
</p>
|
<div class="form">
|
<el-form-item
|
label="名称"
|
v-if="loanArr[index].projectCompanyName.visible"
|
prop="projectCompanyName"
|
>
|
<!-- <el-input
|
v-model="loanForm[index].projectCompanyName"
|
:disabled="!loanArr[index].projectCompanyName.writeAble"
|
></el-input> -->
|
<!-- <el-autocomplete
|
v-model="loanForm[index].projectCompanyName"
|
:disabled="!loanArr[index].projectCompanyName.writeAble"
|
clearable
|
:fetch-suggestions="querySearchAsync"
|
:trigger-on-focus="false"
|
:popper-append-to-body="true"
|
:debounce='300'
|
value-key="label"
|
placeholder="请输入名称进行选择"
|
@select="handleSelect"
|
@clear="blurForBug()"
|
ref="myAutocomplete"
|
></el-autocomplete> -->
|
<!-- <el-select></el-select> -->
|
|
<el-select
|
v-model="loanForm[index].projectCompanyName"
|
:disabled="!loanArr[index].projectCompanyName.writeAble" placeholder="请选择"
|
@change="handleSelect">
|
<el-option
|
v-for="item in projectCompanyList"
|
:key="item.serialno"
|
:label="item.companyName"
|
:value="item.serialno">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item
|
label="所属城市"
|
v-if="loanArr[index].projectCompanyCity.visible"
|
>
|
<el-input
|
v-model="loanForm[index].projectCompanyCityDesc"
|
disabled
|
></el-input>
|
</el-form-item>
|
|
<el-form-item
|
label="地址"
|
v-if="loanArr[index].projectCompanyAddress.visible"
|
>
|
<el-input
|
v-model="loanForm[index].projectCompanyAddressDesc"
|
disabled
|
></el-input>
|
</el-form-item>
|
</div>
|
</div>
|
</el-form>
|
<p class="title" >
|
<span></span>
|
项目公司/物流园联系人信息
|
</p>
|
<el-table stripe :data="loanForm[0].projectCompanyContractInfoList"
|
style="margin-top: 30px; width: 500px"
|
highlight-current-row
|
:cell-style="cell"
|
:header-cell-style="{ background: '#f5f5f5', color: '#222222' }">
|
<el-table-column width="200" prop="contactName" label="联系人姓名"> </el-table-column>
|
<el-table-column width="300" prop="contactPhone" label="电话号码"> </el-table-column>
|
</el-table>
|
|
</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' || applyInfo.phaseNo == '0060') "
|
>下一步</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 {
|
saveEntProjectCompanyToBA,
|
submitApplyLoan,
|
qryLoanOrgList,
|
qryEnterpriseInfo,
|
getProvinceCodeList,
|
getCityCodeList,
|
getAreaCodeList,
|
} from "@/api/product";
|
|
import { qryEntProjectInfoList, qryEntProjectContractInfoList } from '@/api/area/enterprise'
|
import common from "@/utils/common";
|
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: [],
|
cityList: [],
|
areaList: [],
|
putoutbankcityList: [],
|
putoutbankList: [],
|
offlinePutoutBankList: [],
|
customerBaseList: [],
|
showBranch: false,
|
writeAble: false,
|
projectCompanyList: []
|
};
|
},
|
async created() {
|
this.$parent._data.loading = true;
|
const enterpriseResult = await this.getEnterpriseInfo();
|
console.log("核心企业返回参数", enterpriseResult);
|
// this.loanArr.push(enterpriseResult);
|
this.getBorrowerData(enterpriseResult)
|
this.$parent._data.loading = false;
|
this.onGetProCityArea();
|
},
|
components: {
|
Branch,
|
},
|
computed: {
|
},
|
methods: {
|
|
//单元格css
|
cell({ row, column, rowIndex, columnIndex }) {
|
const { applyInfo, index } = this;
|
const { refuseFlag } = applyInfo;
|
if (refuseFlag == 1) {
|
const { houseInfoBatch } = this.$store.state.product.fields;
|
const { propertyList } = houseInfoBatch[index];
|
for (let i = 0; i < propertyList.length; i++) {
|
const object = propertyList[i];
|
for (const key in object) {
|
if (row[key] != object[key] && column.property == key) {
|
return { color: "#222", "font-weight": "700" };
|
}
|
}
|
}
|
}
|
},
|
// 处理数据,将数据重新排列
|
async getBorrowerData(result) {
|
this.loanForm = [];
|
this.loanArr = [];
|
this.loanArr.push(result);
|
// 取数组第一个作为校验规则
|
this.loanArr.forEach((val, index) => {
|
// if (index == 0) {
|
// for (const key in val) {
|
// this.rules[key] = [];
|
// // 自定义规则校验
|
// // 必填校验
|
// if (key != 'projectCompanyContractInfoList' && val[key].required) {
|
// this.rules[key].push({
|
// required: true,
|
// message: `请输入${val[key].filedDescription}`,
|
// trigger: "change",
|
// });
|
// }
|
// }
|
// }
|
const obj = {};
|
for (const key in val) {
|
if(key =='projectCompanyContractInfoList') {
|
obj[key] = val[key]
|
}
|
else if(typeof val[key] == 'object' ) {
|
obj[key] = val[key].value;
|
}
|
}
|
this.loanForm.push(obj);
|
});
|
this.qryEntProjectInfoList()
|
},
|
async qryEntProjectInfoList() {
|
const { result } = await qryEntProjectInfoList({
|
entSerialno:this.loanForm[0].serialno
|
})
|
this.projectCompanyList = result
|
if(!this.loanForm[0].projectCompanyContractInfoList)
|
this.handleSelect(result[0].serialno)
|
},
|
async querySearchAsync(query, cb) {
|
if(query.length>1){
|
const { result } = await qryEntProjectInfoList({
|
currentPage:1,
|
pageSize:10,
|
enterprisename:query
|
})
|
result.records.forEach(val => {
|
val.label = `${val.bankname}`
|
val.value = `${val.bankno}`
|
});
|
cb(result.records);
|
}else{
|
cb([]);
|
}
|
},
|
async handleSelect(serialno) {
|
let data = this.projectCompanyList.find(res=> res.serialno == serialno )
|
this.loanForm[0].projectCompanySerialno = data.serialno;
|
this.loanForm[0].projectCompanyName = data.companyName;
|
this.loanForm[0].projectCompanyCity = data.projectCity;
|
this.loanForm[0].projectCompanyCityDesc = data.projectCityDesc;
|
this.loanForm[0].projectCompanyAddress = data.projectAddress;
|
this.loanForm[0].projectCompanyAddressDesc = data.projectAddressDesc;
|
let res = await qryEntProjectContractInfoList({
|
entProjectSerialno: data.serialno,
|
})
|
this.$set(this.loanForm[0], "projectCompanyContractInfoList",res.result )
|
},
|
// 点击clearable清空小图标按钮以后,继续重新在输入框中输入数据,querySearch会触发,但是cb函数不会触发
|
// 这样的话就会出现发请求了,也获取数据了,但是input框的输入建议下拉框不呈现在页面上的问题,所以解决方法就是
|
// 只要用户点击了
|
blurForBug(){
|
document.activeElement.blur()
|
},
|
//查询核心企业信息
|
getEnterpriseInfo() {
|
return new Promise((resolve) => {
|
qryEnterpriseInfo({
|
applySerialno: this.applyInfo.serialNo,
|
phaseNo: this.applyInfo.phaseNo,
|
}).then((res) => {
|
resolve(res.result);
|
});
|
});
|
},
|
|
onGetProCityArea() {
|
// 获取省枚举值
|
getProvinceCodeList({}).then((proRes) => {
|
this.provinceList = proRes.result;
|
getCityCodeList({codeNo:'AreaCode',itmeNo:this.loanArr[0].registerprovince.value}).then(cityRes => {
|
this.cityList = cityRes.result;
|
getAreaCodeList({codeNo:'AreaCode',itmeNo:this.loanArr[0].registercitys.value}).then(areaRes => {
|
this.areaList = areaRes.result;
|
})
|
})
|
});
|
},
|
|
// 子组件回传
|
sendBranch(data) {
|
this.loanForm[0].putoutbankbranchno = data.bankno;
|
this.loanForm[0].putoutbankbranchname = data.bankname;
|
},
|
|
// 保存接口
|
saveEntProjectCompanyToBA(arr) {
|
arr[0].applySerialno = this.applyInfo.serialNo
|
arr[0].entProjectSerialno = arr[0].projectCompanySerialno
|
return new Promise((resolve) => {
|
saveEntProjectCompanyToBA(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.saveEntProjectCompanyToBA(arr);
|
if (res.code == "00") {
|
const enterpriseResult = await this.getEnterpriseInfo();
|
console.log("核心企业返回参数", enterpriseResult);
|
// this.loanArr.push(enterpriseResult);
|
this.getBorrowerData(enterpriseResult)
|
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) {
|
this.$parent._data.loading = true;
|
const res = await this.saveEntProjectCompanyToBA(arr);
|
if (res.code == "00") {
|
const enterpriseResult = await this.getEnterpriseInfo();
|
console.log("核心企业返回参数", enterpriseResult);
|
// this.loanArr.push(enterpriseResult);
|
this.getBorrowerData(enterpriseResult)
|
this.$message.success("保存成功");
|
this.$parent._data.loading = false;
|
this.nextPage()
|
}
|
},
|
// 下一页
|
nextPage() {
|
// 调用父组件的查询左侧tab的方法
|
this.$parent.updateApplyTabTree("核心企业信息");
|
},
|
},
|
// beforeRouteLeave(to, from, next) {
|
// !this.loanForm.length ||
|
// common.compareFormData(this.initialArr, this.loanForm, next)
|
// ? next()
|
// : "";
|
// },
|
};
|
</script>
|