<!--/*
|
* @Author: Pengjiantian
|
* @Date: 2020-04-17 11:15:29
|
* @Last Modified by: Pengjiantian
|
* @Last Modified time: 2020-04-17 11:15:29
|
*/ -->
|
|
<template>
|
<el-container class="dataBack" v-loading="loading">
|
<el-main style="padding:0">
|
<el-form
|
:label-position="labelPosition"
|
:model="form"
|
ref="form"
|
:rules="rules"
|
v-show="!loading"
|
>
|
<el-row>
|
<p class="title">融资主体</p>
|
<!-- 融资主体名称1 -->
|
<el-col :md="12" :lg="8" v-if="config.name.visible">
|
<area-input :config="config.name" v-model="form.name"></area-input>
|
</el-col>
|
<!-- 融资主体法人代表1 -->
|
<el-col :md="12" :lg="8" v-if="config.legaldelegate.visible">
|
<area-input :config="config.legaldelegate" v-model="form.legaldelegate"></area-input>
|
</el-col>
|
<!-- 统一社会信用代码1 -->
|
<el-col :md="12" :lg="8" v-if="config.socialcreditcode.visible">
|
<area-input :config="config.socialcreditcode" v-model="form.socialcreditcode"></area-input>
|
</el-col>
|
<!-- 账户名称1 -->
|
<el-col :md="12" :lg="8" v-if="config.accountname.visible">
|
<area-input :config="config.accountname" v-model="form.accountname"></area-input>
|
</el-col>
|
<!-- 银行账号1 -->
|
<el-col :md="12" :lg="8" v-if="config.bankno.visible">
|
<area-input :config="config.bankno" v-model="form.bankno"></area-input>
|
</el-col>
|
<!-- 银行名称1 -->
|
<el-col :md="12" :lg="8" v-if="config.bankname.visible">
|
<el-form-item label="银行名称" prop="bankname" :rules="config.bankname.required?rules:[]">
|
<el-select
|
v-model="form.bankname"
|
filterable
|
clearable
|
placeholder="请选择"
|
:disabled="!config.bankname.writeAble"
|
@change="banknameChange"
|
>
|
<el-option
|
v-for="item in banknameOptions"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 开户行所在省1 -->
|
<el-col :md="12" :lg="8" v-if="config.bankprovince.visible">
|
<el-form-item
|
label="开户行所在省"
|
prop="bankprovince"
|
:rules="config.bankprovince.required?rules:[]"
|
>
|
<el-select
|
v-model="form.bankprovince"
|
filterable
|
clearable
|
placeholder="请选择"
|
:disabled="!config.bankprovince.writeAble"
|
>
|
<el-option
|
v-for="item in registerprovinceOptions"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 开户行所在市1 -->
|
<el-col :md="12" :lg="8" v-if="config.bankcity.visible">
|
<el-form-item label="开户行所在市" prop="bankcity" :rules="config.bankcity.required?rules:[]">
|
<el-select
|
v-model="form.bankcity"
|
filterable
|
placeholder="请选择"
|
clearable
|
:disabled="!config.bankcity.writeAble"
|
>
|
<el-option
|
v-for="item in registercitysOptions"
|
:key="item.itemno"
|
:label="item.itemname"
|
:value="item.itemno"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<!-- 开户行所在省1 -->
|
<!-- <el-col :md="12" :lg="8" v-if="config.bankprovince.visible"> -->
|
<el-col :md="12" :lg="8" v-if="false">
|
<area-select :config="config.bankprovince" v-model="form.bankprovince"></area-select>
|
</el-col>
|
<!-- 开户行所在市1 -->
|
<!-- <el-col :md="12" :lg="8" v-if="config.bankcity.visible"> -->
|
<el-col :md="12" :lg="8" v-if="false">
|
<area-select :config="config.bankcity" v-model="form.bankcity"></area-select>
|
</el-col>
|
<!-- 银行分支行名称1 -->
|
<el-col :md="12" :lg="8" v-if="config.bankbranch.visible">
|
<!-- <area-input :config="config.bankbranch" v-model="form.bankbranch"></area-input> -->
|
<el-form-item
|
label="银行分支行名称"
|
prop="bankcity"
|
:rules="config.bankbranch.required?[ {required:true,message:'请输入', trigger: 'focus'}]:[]"
|
>
|
<el-input
|
v-model="form.bankbranch"
|
:readonly="!config.bankname.writeAble"
|
@click.native="branchBank"
|
></el-input>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</el-main>
|
<Bank
|
v-if="isBank"
|
:bankVisible="isBank"
|
@closeBank="isBank = false"
|
@sendBankData="sendBankData"
|
:bankcode="form.bankname"
|
></Bank>
|
</el-container>
|
</template>
|
|
<script>
|
import AreaInput from '@/views/area/components/AreaInput'
|
import AreaText from '@/views/area/components/AreaText'
|
import AreaSelect from '@/views/area/components/AreaSelect'
|
import AreaDate from '@/views/area/components/AreaDate'
|
import Bank from './table/Bank'
|
import {
|
queryProjectFinancingInformation,
|
updateProjectFinancingInformation,
|
getProvinceCodeList,
|
getCityCodeList,
|
getAreaCodeList
|
} from '@/api/area'
|
import { getDictionaryList } from '@/api/area/partner'
|
import { mapState } from 'vuex'
|
|
export default {
|
components: { AreaInput, AreaText, AreaSelect, AreaDate, Bank },
|
props: ['nextChange'],
|
data: function() {
|
return {
|
loading: true,
|
labelPosition: 'right',
|
writeAble: false,
|
isBank: false,
|
rules: {
|
required: true,
|
message: '请选择',
|
trigger: 'change'
|
},
|
form: {
|
name: '', // 融资主体名称
|
legaldelegate: '', // 融资主体法人代表
|
socialcreditcode: '', // 统一社会信用代码
|
accountname: '', // 账户名称
|
bankno: '', // 银行账号
|
bankname: '', // 银行名称
|
bankprovince: '', // 开户行所在省
|
bankcity: '', // 开户行所在市
|
bankbranch: '' // 银行分支行名称
|
},
|
oldForm: {},
|
config: {},
|
// 省市区
|
registerprovinceOptions: [],
|
registercitysOptions: [],
|
// 银行名称
|
banknameOptions: []
|
}
|
},
|
watch: {
|
// 省市区联动
|
'form.bankprovince': function(value, oldValue) {
|
if (value) {
|
this.getCityCodeList(value)
|
}
|
if (value !== oldValue && oldValue) {
|
this.form.bankcity = ''
|
}
|
}
|
// 'form.bankcity': function(value, oldValue) {
|
// if (value) {
|
// this.getAreaCodeList(value)
|
// }
|
// if (value !== oldValue && oldValue) {
|
// this.form.bankbranch = ''
|
// }
|
// }
|
},
|
computed: {
|
...mapState({
|
detailsParams: state => state.risk.detailsParams
|
})
|
},
|
created() {
|
this.initForm()
|
this.initBankList()
|
this.getForm()
|
},
|
methods: {
|
getForm() {
|
let params = {
|
objectType: this.detailsParams.objectType,
|
dataType: this.detailsParams.dataType,
|
projectFlag: this.detailsParams.projectFlag,
|
projectType: this.detailsParams.projectType,
|
serialno: this.detailsParams.objectNo
|
}
|
queryProjectFinancingInformation(params).then(res => {
|
// console.log(res.result)
|
this.config = this._.merge({}, this.config, res.result)
|
Object.keys(this.form).forEach(key => {
|
this.$set(this.form, key, this.config[key].value)
|
})
|
Object.assign(this.oldForm, this.form)
|
this.loading = false
|
})
|
},
|
initForm() {
|
Object.keys(this.form).forEach(key => {
|
let params = {
|
visible: false,
|
required: false,
|
writeAble: false
|
}
|
this.config[key] = Object.assign({}, this.config[key], params)
|
})
|
this.getProvinceCodeList()
|
},
|
// 查询银行
|
async initBankList() {
|
let params = { codeNo: 'BankCode' }
|
let res = await getDictionaryList(params)
|
this.banknameOptions = res.result
|
},
|
getProvinceCodeList() {
|
// 查询省
|
getProvinceCodeList({}).then(res => {
|
this.registerprovinceOptions = res.result
|
})
|
},
|
getCityCodeList(value) {
|
let params = {
|
codeNo: 'AreaCode',
|
itmeNo: value
|
}
|
getCityCodeList(params).then(res => {
|
this.registercitysOptions = res.result
|
})
|
},
|
banknameChange() {
|
this.form.bankbranch = ''
|
},
|
branchBank() {
|
const { form, detailsParams } = this
|
const { phaseNo } = detailsParams
|
const { bankname } = form
|
if (bankname && phaseNo === '0060') {
|
this.isBank = true
|
} else {
|
if (phaseNo === '0060') {
|
this.$message.warning('请先选择银行名称')
|
}
|
}
|
},
|
sendBankData(data) {
|
const { bankname } = data
|
this.form.bankbranch = bankname
|
},
|
submitForm() {
|
this.$refs['form'].validate(valid => {
|
if (valid) {
|
let params = {
|
serialno: this.detailsParams.objectNo,
|
objecttype: this.detailsParams.objectType,
|
dataType: this.detailsParams.dataType,
|
isTempSave: false
|
}
|
params = Object.assign({}, params, this.form)
|
updateProjectFinancingInformation(params).then(res => {
|
if (res.code === '00') {
|
/* this.$message({
|
message: res.result.resultsDesc,
|
type: 'success'
|
}) */
|
this.$emit('nextPage', true)
|
}
|
})
|
} else {
|
this.$message.warning(
|
'当前页面存在必填项未录入或数据录入错误,请检查!'
|
)
|
return false
|
}
|
})
|
},
|
handleSaveDraft() {
|
let params = {
|
serialno: this.detailsParams.objectNo,
|
objecttype: this.detailsParams.objectType,
|
dataType: this.detailsParams.dataType,
|
isTempSave: true
|
}
|
Object.assign(params, this.form)
|
updateProjectFinancingInformation(params).then(res => {
|
if (res.code === '00') {
|
this.$message.success('保存成功')
|
this.oldForm = Object.assign(this.oldForm, this.form)
|
}
|
})
|
},
|
handleSave(saveOpinion) {
|
this.$refs['form'].validate(valid => {
|
if (valid) {
|
let params = {
|
serialno: this.detailsParams.objectNo,
|
objecttype: this.detailsParams.objectType,
|
dataType: this.detailsParams.dataType,
|
isTempSave: true
|
}
|
Object.assign(params, this.form)
|
updateProjectFinancingInformation(params).then(res => {
|
if (res.code === '00') {
|
if (!saveOpinion) {
|
this.$message.success('保存成功')
|
// this.nextChangeCopy = false
|
this.oldForm = Object.assign(this.oldForm, this.form)
|
} else {
|
this.$emit('commitSaveBefore', true)
|
// this.nextChangeCopy = false
|
this.oldForm = Object.assign(this.oldForm, this.form)
|
}
|
} else {
|
this.$emit('commitSaveBefore', false)
|
}
|
})
|
} else {
|
this.$message.warning(
|
'当前页面存在必填项未录入或数据录入错误,请检查!'
|
)
|
}
|
})
|
},
|
// 有无失信
|
hasTure(val) {
|
if (val === '1') {
|
this.config.courtinvolvedexplain.required = true
|
}
|
}
|
},
|
beforeRouteLeave(to, from, next) {
|
// console.log(this.form)
|
// console.log(this.oldForm)
|
// console.log(this.nextChange)
|
if (this.nextChange) {
|
for (const key in this.oldForm) {
|
if (this.oldForm.hasOwnProperty(key)) {
|
if (this.oldForm[key] && this.form[key]) {
|
// 不比较空值和undefined
|
if (this.oldForm[key] != this.form[key]) {
|
// console.log(this.form[key])
|
// console.log(this.oldForm[key])
|
this.$confirm(`当前页面有未保存的数据,是否放弃保存`, '提示', {
|
confirmButtonText: '是',
|
cancelButtonText: '否',
|
customClass: 'pro_messages_box',
|
confirmButtonClass: 'pro_messages_box_confirm',
|
cancelButtonClass: 'pro_messages_box_cancel',
|
center: true
|
})
|
.then(() => {
|
next()
|
})
|
.catch(() => {
|
this.$emit('notNext')
|
})
|
return
|
}
|
}
|
}
|
}
|
}
|
next()
|
}
|
}
|
</script>
|
|
<style lang="stylus" scoped>
|
#el-form-textarea {
|
>>> .el-form-item__label {
|
margin-bottom: 48px;
|
}
|
}
|
</style>
|