贷款业务联调

20240205
yujialong 5 months ago
parent 2de86fced4
commit 5172cd1234
  1. 2
      src/api/api.js
  2. 3
      src/api/http.js
  3. 13
      src/pages/manage/list/corporateLoans/apply/creditApplication/index.vue
  4. 2
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/rating.vue
  5. 28
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  6. 62
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  7. 119
      src/pages/manage/list/corporateLoans/detail.vue
  8. 7
      src/pages/manage/list/corporateLoans/list.js
  9. 4
      src/pages/manage/list/corporateLoans/loan.vue
  10. 104
      src/pages/manage/list/corporateLoans/management.vue
  11. 78
      src/pages/manage/list/corporateLoans/repayment.vue
  12. 232
      src/pages/manage/list/personalLoans/index.vue
  13. 7
      src/pages/manage/list/personalLoans/list.js
  14. 2
      src/pages/manage/list/personalLoans/list.vue

@ -10,7 +10,7 @@ if (dev) {
// 本地 // 本地
host = 'http://121.37.12.51/' // 中台测试服 host = 'http://121.37.12.51/' // 中台测试服
// host = 'https://www.occupationlab.com/' // 正式服 // host = 'https://www.occupationlab.com/' // 正式服
host = 'http://192.168.31.217:9000/' host = 'http://192.168.31.51:9000/'
} }
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({

@ -86,6 +86,9 @@ export const badDebtRecognition = data => {
export const postLoanInvestigationInput = data => { export const postLoanInvestigationInput = data => {
return post(`${host}/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data) return post(`${host}/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data)
} }
export const addExtensionPeriod = data => {
return post(`${host}/judgment/bankCompanyLoans/addExtensionPeriod`, data)
}
export const loanContractSave = (data) => { export const loanContractSave = (data) => {
return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data) return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data)

@ -326,13 +326,18 @@ export default {
}, },
async submit () { async submit () {
try { try {
const { data } = await creditApplicationInput({ const { form } = this
if (!form.matureRepayment && !form.otherRepayments) return this.$message.error('请选择还款来源!')
if (!form.paymentForMaterials && !form.payLaborCosts && !form.payExpenses && !form.otherUses) return this.$message.error('请选择贷款用途!')
await creditApplicationInput({
...this.$store.state.system.creditIds, ...this.$store.state.system.creditIds,
...this.$store.state.system.creditImportIds, ...this.$store.state.system.creditImportIds,
...this.form, ...form,
}) })
this.$message[data.status === 200 ? 'success' : 'error']('创建成功!') this.$message.success('保存成功!')
setTimeout(this.$router.push('/counter/list/manage/orporateLoans-application'), 1500) this.$parent.active = '3'
this.$parent.curStep = 0
} catch { (e) => { } } } catch { (e) => { } }
}, },
}, },

@ -205,7 +205,7 @@ export default {
...this.creditIds, ...this.creditIds,
...this.form, ...this.form,
}) })
this.$message[data.status === 200 ? 'success' : 'error']('创建成功!') this.$message.success('创建成功!')
this.$parent.active = '2' this.$parent.active = '2'
} catch { (e) => { } } } catch { (e) => { } }
}, },

@ -69,7 +69,7 @@
<el-input value="3.2%" disabled /> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="还款方式" required> <el-form-item label="还款方式" required>
<el-select v-model.trim="form.repaymentMethod" placeholder="请选择"> <el-select v-model.trim="form.repaymentMethodOne" placeholder="请选择">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option> <el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -102,24 +102,24 @@ export default {
creditTerm: 231, creditTerm: 231,
annualizedInterestRate: '', annualizedInterestRate: '',
loanApplicationAmount: '', loanApplicationAmount: '',
repaymentMethod: 235, repaymentMethodOne: 235,
distributionMethod: 238, distributionMethod: 238,
}, },
opt1: [ opt1: [
{ {
id: 231, id: 1,
name: '1年' name: '1年'
}, },
{ {
id: 232, id: 3,
name: '3年' name: '3年'
}, },
{ {
id: 233, id: 5,
name: '5年' name: '5年'
}, },
{ {
id: 234, id: 10,
name: '10年' name: '10年'
}, },
], ],
@ -132,10 +132,10 @@ export default {
id: 236, id: 236,
name: '等额本息' name: '等额本息'
}, },
{ // {
id: 237, // id: 237,
name: '先息后本' // name: ''
}, // },
], ],
opt3: [ opt3: [
{ {
@ -165,10 +165,10 @@ export default {
companyLoanId: this.$store.state.system.creditIds.companyLoanId, companyLoanId: this.$store.state.system.creditIds.companyLoanId,
}) })
// id // id
// this.setCreditIds({ this.setCreditIds({
// companyLoanId: data.companyLoanId, // tabid companyLoanId: data.companyLoanId, // tabid
// creditEvaluationId: data.creditEvaluationId, // id loanId: data.loanId, // id
// }) })
this.$emit('updateStep', 1) this.$emit('updateStep', 1)
} catch { (e) => { } } } catch { (e) => { } }
}, },

@ -2,7 +2,7 @@
<template> <template>
<div> <div>
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="140px" :rules="rules"> <el-form ref="form" :model="form" label-width="140px">
<el-col :span="24"> <el-col :span="24">
<h6 class="l-title">客户信息</h6> <h6 class="l-title">客户信息</h6>
</el-col> </el-col>
@ -15,25 +15,25 @@
<el-form-item label="授信金额"> <el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled /> <el-input v-model="form.creditAmount" disabled />
</el-form-item> </el-form-item>
<el-form-item label="起息日期" prop="valueDate"> <el-form-item label="起息日期" prop="valueDate" required>
<el-date-picker v-model="form.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd" <el-date-picker v-model="form.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" @change="maturityDateCalc"></el-date-picker> value-format="yyyy-MM-dd" @change="maturityDateCalc"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="计息方式"> <el-form-item label="计息方式">
<el-input value="按LPR浮动计息" disabled /> <el-input value="按LPR浮动计息" disabled />
</el-form-item> </el-form-item>
<el-form-item label="执行利率" prop="executedInterestRate"> <el-form-item label="执行利率">
<el-input value="3.2%" disabled /> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="担保方式"> <el-form-item label="担保方式" required>
<el-select v-model="form.guaranteeMethod" placeholder="请选择"> <el-select v-model="form.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="利息总额"> <el-form-item label="利息总额">
<el-input v-model="form.totalInterestAmount" /> <el-input v-model="form.totalInterestAmount" disabled />
</el-form-item> </el-form-item>
<el-form-item label="还款账号"> <el-form-item label="还款账号" required>
<el-input v-model="form.repaymentAccount" /> <el-input v-model="form.repaymentAccount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -43,7 +43,7 @@
</el-form-item> </el-form-item>
<el-form-item label="授信期限"> <el-form-item label="授信期限">
<el-select v-model="form.creditTerm" placeholder="请选择" @change="maturityDateCalc"> <el-select v-model="form.creditTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option> <el-option label="3年" :value="3"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="到期日期"> <el-form-item label="到期日期">
@ -56,10 +56,9 @@
<el-form-item label="逾期利率" prop="overdueInterestRate"> <el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="10%" disabled /> <el-input value="10%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="repaymentMethod"> <el-form-item label="还款方式" prop="repaymentMethodTwo">
<el-select v-model="form.repaymentMethod" placeholder="请选择" disabled> <el-select v-model.trim="form.repaymentMethodTwo" placeholder="请选择">
<el-option label="等额本金" :value="1"></el-option> <el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
<el-option label="等额本息" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="贷款金额"> <el-form-item label="贷款金额">
@ -70,7 +69,6 @@
</el-row> </el-row>
<div class="text-center m-t-20"> <div class="text-center m-t-20">
<el-button @click="$emit('updateStep', 0)" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="submit" type="primary" class="submitBtn" v-throttle>提交</el-button> <el-button @click="submit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div> </div>
</div> </div>
@ -83,15 +81,36 @@ export default {
return { return {
form: { form: {
valueDate: '', valueDate: '',
creditTerm: '', creditTerm: 3,
guaranteeMethod: 242,
expirationDate: '', expirationDate: '',
totalInterestAmount: '', totalInterestAmount: '',
loanAmount: '', loanAmount: '',
propertyCertificateNo: '', propertyCertificateNo: '',
repaymentMethod: '', repaymentMethodTwo: '',
interestTotal: '', interestTotal: '',
repaymentAccount: '', repaymentAccount: '',
}, },
opt1: [
{
id: 242,
name: '质押'
},
{
id: 243,
name: '抵押'
},
],
opt2: [
{
id: 235,
name: '等额本金'
},
{
id: 236,
name: '等额本息'
},
],
} }
}, },
mounted () { mounted () {
@ -103,18 +122,21 @@ export default {
const { valueDate, creditTerm } = this.form const { valueDate, creditTerm } = this.form
if (valueDate && creditTerm) { if (valueDate && creditTerm) {
const date = new Date(valueDate) const date = new Date(valueDate)
date.setMonth(creditTerm) date.setFullYear(date.getFullYear() + creditTerm)
this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date) this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
} }
}, },
async submit () { async submit () {
try { try {
const { data } = await loanApplicationInput({ const { form } = this
if (!form.valueDate) return this.$message.error('请选择起息日期!')
if (!form.repaymentAccount) return this.$message.error('请输入还款账号!')
await loanApplicationInput({
...this.$store.state.system.creditIds, ...this.$store.state.system.creditIds,
...this.form, ...form,
}) })
this.$message[data.status === 200 ? 'success' : 'error']('创建成功!') this.$message.success('保存成功!')
setTimeout(this.$router.push('/counter/list/manage/orporateLoans-application'), 1500) this.$router.back()
} catch { (e) => { } } } catch { (e) => { } }
}, },
}, },

@ -9,7 +9,7 @@
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="账号"> <el-form-item label="账号">
<el-input v-model="form.applicationNumber" disabled /> <el-input v-model="form.applicationAccount" disabled />
</el-form-item> </el-form-item>
<el-form-item label="证件类型"> <el-form-item label="证件类型">
<el-select v-model.trim="form.identificationType" placeholder="请选择" disabled> <el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
@ -34,7 +34,7 @@
<el-input v-model="form.corporateName" /> <el-input v-model="form.corporateName" />
</el-form-item> </el-form-item>
<el-form-item label="信用评级"> <el-form-item label="信用评级">
<el-input v-model="form.creditRating" /> <el-input v-model="bankLoanApplication.creditRating" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -44,7 +44,7 @@
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="授信金额"> <el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled /> <el-input v-model="bankLoanApplication.creditAmount" disabled />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -53,13 +53,13 @@
<h6 class="l-title">贷款申请</h6> <h6 class="l-title">贷款申请</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="授信年限" required> <el-form-item label="授信年限">
<el-select v-model="form.creditTerm" placeholder="请选择"> <el-select v-model="bankLoanApplication.creditTerm" placeholder="请选择">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option> <el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="还款方式" required> <el-form-item label="还款方式">
<el-select v-model.trim="form.repaymentMethod" placeholder="请选择"> <el-select v-model.trim="bankLoanApplication.repaymentMethodOne" placeholder="请选择">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option> <el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -68,8 +68,8 @@
<el-form-item label="年化利率"> <el-form-item label="年化利率">
<el-input value="3.2%" disabled /> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="发放方式" required> <el-form-item label="发放方式">
<el-select v-model.trim="form.distributionMethod" placeholder="请选择"> <el-select v-model.trim="bankLoanApplication.distributionMethod" placeholder="请选择">
<el-option v-for="(item, i) in opt3" :key="i" :label="item.name" :value="item.id"> </el-option> <el-option v-for="(item, i) in opt3" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -86,10 +86,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="授信金额"> <el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled /> <el-input v-model="bankLoanApplication.creditAmount" disabled />
</el-form-item> </el-form-item>
<el-form-item label="起息日期" prop="valueDate"> <el-form-item label="起息日期" prop="valueDate">
<el-date-picker v-model="form.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd" <el-date-picker v-model="bankLoanApplication.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker> value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="计息方式"> <el-form-item label="计息方式">
@ -99,29 +99,29 @@
<el-input value="3.2%" disabled /> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="担保方式"> <el-form-item label="担保方式">
<el-select v-model="form.guaranteeMethod" placeholder="请选择"> <el-select v-model="bankLoanApplication.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item, i) in opt4" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="利息总额"> <el-form-item label="利息总额">
<el-input v-model="form.totalInterestAmount" /> <el-input v-model="bankLoanApplication.totalInterestAmount" />
</el-form-item> </el-form-item>
<el-form-item label="还款账号"> <el-form-item label="还款账号">
<el-input v-model="form.repaymentAccount" /> <el-input v-model="bankLoanApplication.repaymentAccount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="合同编号" prop="contractNo"> <el-form-item label="合同编号" prop="contractNo">
<el-input v-model="form.contractNo" disabled /> <el-input v-model="bankLoanApplication.contractNo" disabled />
</el-form-item> </el-form-item>
<el-form-item label="授信期限"> <el-form-item label="授信期限">
<el-select v-model="form.creditTerm" placeholder="请选择"> <el-select v-model="bankLoanApplication.creditTerm" placeholder="请选择">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option> <el-option label="3年" :value="3"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="到期日期"> <el-form-item label="到期日期">
<el-date-picker v-model="form.expirationDate" type="date" placeholder="选择日期" format="yyyy-MM-dd" <el-date-picker v-model="bankLoanApplication.expirationDate" type="date" placeholder="选择日期"
value-format="yyyy-MM-dd" disabled></el-date-picker> format="yyyy-MM-dd" value-format="yyyy-MM-dd" disabled></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="基准利率" prop="baseInterestRate"> <el-form-item label="基准利率" prop="baseInterestRate">
<el-input value="3.20%" disabled /> <el-input value="3.20%" disabled />
@ -129,21 +129,21 @@
<el-form-item label="逾期利率" prop="overdueInterestRate"> <el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="10%" disabled /> <el-input value="10%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="repaymentMethod"> <el-form-item label="还款方式" prop="repaymentMethodOne">
<el-select v-model="form.repaymentMethod" placeholder="请选择" disabled> <el-select v-model="bankLoanApplication.repaymentMethodOne" placeholder="请选择" disabled>
<el-option label="等额本金" :value="1"></el-option> <el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
<el-option label="等额本息" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="贷款金额"> <el-form-item label="贷款金额">
<el-input v-model="form.loanAmount" /> <el-input v-model="bankLoanApplication.loanAmount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="text-center"> <div class="text-center">
<el-button @click="showLoan" type="primary" class="submitBtn" v-throttle>放款</el-button> <el-button v-if="!bankCompanyLoans.loanDate" @click="showLoan" type="primary" class="submitBtn"
v-throttle>放款</el-button>
<el-button @click="$router.back()" type="primary" class="submitBtn" v-throttle>关闭</el-button> <el-button @click="$router.back()" type="primary" class="submitBtn" v-throttle>关闭</el-button>
</div> </div>
@ -190,8 +190,62 @@ export default {
financialReportSubmissionMethod: '', financialReportSubmissionMethod: '',
natureOfBorrower: '', natureOfBorrower: '',
}, },
opt1: [
{
id: 1,
name: '1年'
},
{
id: 3,
name: '3年'
},
{
id: 5,
name: '5年'
},
{
id: 10,
name: '10年'
},
],
opt2: [
{
id: 235,
name: '等额本金'
},
{
id: 236,
name: '等额本息'
},
// {
// id: 237,
// name: ''
// },
],
opt3: [
{
id: 238,
name: '一次性到账'
},
{
id: 239,
name: '随借随还'
},
],
opt4: [
{
id: 242,
name: '质押'
},
{
id: 243,
name: '抵押'
},
],
loanDate: '', loanDate: '',
loanVisible: false, loanVisible: false,
bankCompanyLoans: {},
bankLoanApplication: {},
} }
}, },
mounted () { mounted () {
@ -203,7 +257,15 @@ export default {
if (this.id) { if (this.id) {
// //
const { data } = await companyLoanDetails(this.id) const { data } = await companyLoanDetails(this.id)
this.form = data.bankCreditEvaluation this.form = data.bankCreditEvaluation || {}
this.bankCompanyLoans = data.bankCompanyLoans || {}
const app = data.bankLoanApplication || {}
if (app.distributionMethod) app.distributionMethod = +app.distributionMethod
if (app.repaymentMethodOne) app.repaymentMethodOne = +app.repaymentMethodOne
if (app.creditTerm) app.creditTerm = +app.creditTerm
if (app.guaranteeMethod) app.guaranteeMethod = +app.guaranteeMethod
this.bankLoanApplication = app
} }
}, },
// //
@ -214,11 +276,10 @@ export default {
async loanSubmit () { async loanSubmit () {
if (!this.loanDate) return this.$message.error('请选择放款日期!') if (!this.loanDate) return this.$message.error('请选择放款日期!')
const { data } = await loanDisbursement({ const { data } = await loanDisbursement({
companyLoanId: this.form.contractId, companyLoanId: this.id,
loanDate: this.loanDate, loanDate: this.loanDate,
}) })
this.$message[data.status === 200 ? 'success' : 'error'](data.message) this.$message[data.status === 200 ? 'success' : 'error'](data.message)
setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
}, },
}, },
} }

@ -1,7 +0,0 @@
export default [
{
id: 1,
name: '维新集团',
serial: 'F10628012',
}
]

@ -12,6 +12,10 @@
<el-table-column prop="applicationNumber" label="贷款编号" align="center" /> <el-table-column prop="applicationNumber" label="贷款编号" align="center" />
<el-table-column prop="loanDate" label="放款日期" align="center" /> <el-table-column prop="loanDate" label="放款日期" align="center" />
<el-table-column prop="loanAmount" label="贷款金额" align="center" /> <el-table-column prop="loanAmount" label="贷款金额" align="center" />
<el-table-column prop="loanAmount" label="放款金额" align="center" />
<el-table-column prop="loanAmount" label="放款状态" align="center">
<template slot-scope="scope">{{ scope.row.loanDate ? '已放款' : '待放款' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150"> <el-table-column label="操作" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="!scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button> <el-button v-if="!scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button>

@ -40,22 +40,25 @@
<el-row v-else style="width: 100%"> <el-row v-else style="width: 100%">
<el-form class="dia-form" label-width="130px" label-suffix=""> <el-form class="dia-form" label-width="130px" label-suffix="">
<el-col :span="12"> <el-col :span="12">
<el-form-item v-if="curType === 5" label="认定日期">
<p class="text">{{ today }}</p>
</el-form-item>
<el-form-item label="客户名称"> <el-form-item label="客户名称">
<p class="text">炳胜集团</p> <p class="text">{{ curRow.customerName }}</p>
</el-form-item> </el-form-item>
<el-form-item label="欠款金额"> <el-form-item label="欠款金额">
<p class="text">炳胜集团</p> <p class="text">{{ curRow.customerName }}</p>
</el-form-item> </el-form-item>
<el-form-item label="催收金额"> <el-form-item v-if="curType === 4" label="催收金额">
<p class="text">炳胜集团</p> <p class="text">{{ curRow.customerName }}</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="贷款编号"> <el-form-item label="贷款编号">
<p class="text">F10666123</p> <p class="text">{{ curRow.applicationNumber }}</p>
</el-form-item> </el-form-item>
<el-form-item label="催收通知书编号"> <el-form-item label="催收通知书编号">
<p class="text">F10666123</p> <p class="text">A012346156281</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -76,57 +79,58 @@
<div class="data-title">贷后调查</div> <div class="data-title">贷后调查</div>
</div> </div>
<h6>调查日期2024-04-02</h6> <h6>调查日期{{ today }}</h6>
<el-row style="width: 100%"> <el-row style="width: 100%">
<el-form label-width="130px" label-suffix="" label-position="top"> <el-form label-width="130px" label-suffix="" label-position="top">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="客户基本状态变化"> <el-form-item label="客户基本状态变化" required>
<el-input type="textarea" :rows="3" size="small" v-model="form.stateChange" /> <el-input type="textarea" :rows="3" size="small" maxlength="100" v-model="form.stateChange" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="信贷业务和还本付息情况变化"> <el-form-item label="信贷业务和还本付息情况变化" required>
<el-select class="w-full" v-model="form.changesInSituation" size="small" placeholder="请选择"> <el-select v-model="form.changesInSituation" size="small" placeholder="请选择">
<el-option v-for="item in opt1" :label="item.options" :value="item.itemId" :key="item.itemId"> <el-option v-for="(item, i) in opt1" :label="item.name" :value="item.id" :key="i">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="偿债能力"> <el-form-item label="偿债能力" required>
<el-select v-model="form.debtPayingAbility" size="small" placeholder="请选择"> <el-select v-model="form.debtPayingAbility" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId"> <el-option v-for="(item, i) in opt3" :label="item.name" :value="item.id" :key="i">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="担保状况不利变化"> <el-form-item label="担保状况不利变化" required>
<el-select v-model="form.adverseChanges" size="small" placeholder="请选择"> <el-select v-model="form.adverseChanges" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId"> <el-option v-for="(item, i) in opt1" :label="item.name" :value="item.id" :key="i">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :offset="1" :span="11"> <el-col :offset="1" :span="11">
<el-form-item label="经营状况"> <el-form-item label="经营状况" required>
<el-select v-model="form.businessStatus" size="small" placeholder="请选择"> <el-select v-model="form.businessStatus" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId"> <el-option v-for="(item, i) in opt2" :label="item.name" :value="item.id" :key="i">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="信用状况"> <el-form-item label="信用状况" required>
<el-select v-model="form.creditStatus" size="small" placeholder="请选择"> <el-select v-model="form.creditStatus" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId"> <el-option v-for="(item, i) in opt2" :label="item.name" :value="item.id" :key="i">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="五级分类"> <el-form-item label="五级分类" required>
<el-select v-model="form.fiveLevelClassification" size="small" placeholder="请选择"> <el-select v-model="form.fiveLevelClassification" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId"> <el-option v-for="(item, i) in opt4" :label="item.name" :value="item.id" :key="i">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="结论 建议"> <el-form-item label="结论 建议">
<el-input type="textarea" :rows="2" size="small" v-model="form.conclusionAndSuggestions"> <el-input type="textarea" :rows="3" size="small" maxlength="100"
v-model="form.conclusionAndSuggestions">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -146,6 +150,7 @@
import { headerCellStyle } from '@/assets/js/myConfig' import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList, loanCollection, nonPerformingLoans, badDebtRecognition, postLoanInvestigationInput } from '@/api/http'; import { companyLoanList, loanCollection, nonPerformingLoans, badDebtRecognition, postLoanInvestigationInput } from '@/api/http';
import MyTitle from '@/components/myTitle' import MyTitle from '@/components/myTitle'
import Util from '@/libs/util'
export default { export default {
components: { components: {
MyTitle, MyTitle,
@ -159,6 +164,7 @@ export default {
page: 1, page: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
today: Util.formatDate('yyyy-MM-dd', new Date()),
msgs: [ msgs: [
'向贷款人预留各渠道联系方式发送催收信息', '向贷款人预留各渠道联系方式发送催收信息',
'确认提交吗?', '确认提交吗?',
@ -174,14 +180,15 @@ export default {
postLoanVisible: false, postLoanVisible: false,
selects: [], selects: [],
originForm: {},
form: { form: {
stateChange: '', stateChange: '',
changesInSituation: '', changesInSituation: 203,
debtPayingAbility: '', debtPayingAbility: 1,
adverseChanges: '', adverseChanges: 203,
businessStatus: '', businessStatus: 205,
creditStatus: '', creditStatus: 205,
fiveLevelClassification: '', fiveLevelClassification: 1,
conclusionAndSuggestions: '', conclusionAndSuggestions: '',
}, },
opt1: [ opt1: [
@ -210,16 +217,34 @@ export default {
], ],
opt3: [ opt3: [
{ {
id: 205, id: 1,
name: '' name: '能按期偿还'
}, },
{ {
id: 206, id: 2,
name: '' name: '不能按期偿还'
}, },
],
opt4: [
{ {
id: 207, id: 1,
name: '差' name: '正常贷款'
},
{
id: 2,
name: '关注贷款'
},
{
id: 3,
name: '次级贷款'
},
{
id: 4,
name: '可疑贷款'
},
{
id: 5,
name: '损失贷款'
}, },
], ],
curRow: {}, curRow: {},
@ -234,6 +259,7 @@ export default {
}, },
}, },
mounted () { mounted () {
this.originForm = JSON.parse(JSON.stringify(this.form))
this.initData() this.initData()
}, },
methods: { methods: {
@ -263,12 +289,15 @@ export default {
}, },
// //
postLoan (row) { postLoan (row) {
this.form = JSON.parse(JSON.stringify(this.originForm))
this.curRow = row this.curRow = row
this.postLoanVisible = true this.postLoanVisible = true
}, },
// //
async postLoanSubmit () { async postLoanSubmit () {
await postLoanInvestigationInput(this.form) const { form } = this
if (!form.stateChange) return this.$message.error('请填写客户基本状态变化!')
await postLoanInvestigationInput(form)
this.postLoanVisible = false this.postLoanVisible = false
}, },
@ -316,9 +345,6 @@ export default {
this.visible = false this.visible = false
} }
}, },
extension (row) {
},
}, },
}; };
</script> </script>

@ -15,7 +15,7 @@
<el-table-column label="操作" align="center" width="150"> <el-table-column label="操作" align="center" width="150">
<template v-if="!scope.row.builtIn" slot-scope="scope"> <template v-if="!scope.row.builtIn" slot-scope="scope">
<el-button @click="toDetail(scope.row)" size="small">详情</el-button> <el-button @click="toDetail(scope.row)" size="small">详情</el-button>
<el-button size="small" @click="extension(scope.row)">展期</el-button> <el-button size="small" @click="showExtension(scope.row)">展期</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -24,12 +24,23 @@
<el-pagination background layout="total, prev, pager, next" :current-page="page" <el-pagination background layout="total, prev, pager, next" :current-page="page"
@current-change="handleCurrentChange" :total="total"></el-pagination> @current-change="handleCurrentChange" :total="total"></el-pagination>
</div> </div>
<el-dialog title="请选择展期期限" :visible.sync="extensionVisible" width="300px" z-index="6000" :append-to-body="true">
<el-select v-model="extensionPeriod" placeholder="请选择" size="small" style="width: 100%;">
<el-option v-for="(item, i) in extensions" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
<span slot="footer" class="dialog-footer">
<el-button @click="extensionVisible = false">取消</el-button>
<el-button type="primary" @click="extensionSubmit">确定</el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { headerCellStyle } from '@/assets/js/myConfig' import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList } from '@/api/http'; import { companyLoanList, addExtensionPeriod } from '@/api/http';
import MyTitle from '@/components/myTitle' import MyTitle from '@/components/myTitle'
export default { export default {
name: 'index', name: 'index',
@ -45,6 +56,52 @@ export default {
page: 1, page: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
curRow: {},
extensionVisible: false,
extensionPeriod: 1,
extensions: [
{
id: 1,
name: '1个月'
},
{
id: 2,
name: '2个月'
},
{
id: 3,
name: '3个月'
},
{
id: 4,
name: '4个月'
},
{
id: 5,
name: '5个月'
},
{
id: 6,
name: '6个月'
},
{
id: 7,
name: '7个月'
},
{
id: 8,
name: '8个月'
},
{
id: 9,
name: '9个月'
},
{
id: 10,
name: '10个月'
},
],
} }
}, },
watch: { watch: {
@ -81,6 +138,23 @@ export default {
toDetail (row) { toDetail (row) {
this.$router.push(`/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}`) this.$router.push(`/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}`)
}, },
//
showExtension (row) {
this.curRow = row
this.extensionVisible = true
},
//
async extensionSubmit () {
if (!this.extensionPeriod) return this.$message.error('请选择展期期限!')
const { data } = await addExtensionPeriod({
companyLoanId: this.curRow.companyLoanId,
extensionPeriod: this.extensionPeriod,
})
this.$message.success('展期成功!')
if (data.status === 200) this.extensionVisible = false
this.getData()
},
} }
}; };
</script> </script>

@ -2,10 +2,7 @@
<template> <template>
<div class="wrap"> <div class="wrap">
<div class="nav"> <div class="nav">
<el-menu :default-active="activeIndex" <el-menu :default-active="active" class="el-menu-demo" mode="horizontal" @select="handleSelect">
class="el-menu-demo"
mode="horizontal"
@select="handleSelect">
<el-menu-item index="1">全部</el-menu-item> <el-menu-item index="1">全部</el-menu-item>
<el-menu-item index="2">正常还款</el-menu-item> <el-menu-item index="2">正常还款</el-menu-item>
<el-menu-item index="3">展期</el-menu-item> <el-menu-item index="3">展期</el-menu-item>
@ -13,7 +10,7 @@
</div> </div>
<MyTitle :titleArr="['个人贷款', text]" /> <MyTitle :titleArr="['个人贷款', text]" />
<list :index.sync="activeIndex" /> <list :index.sync="active" :key="active" />
</div> </div>
</template> </template>
@ -29,7 +26,6 @@ export default {
data () { data () {
return { return {
text: '',/* 顶部文字 */ text: '',/* 顶部文字 */
cacheVal: '',
textObj: { textObj: {
'1': '全部', '1': '全部',
'2': '正常还款', '2': '正常还款',
@ -40,136 +36,134 @@ export default {
}, },
visible: false, visible: false,
options: [], options: [],
activeIndex: '', active: '1',
second: [//
],
} }
}, },
methods: { methods: {
handleSelect (val) { handleSelect (val) {
this.text = this.textObj[val] this.text = this.textObj[val]
this.activeIndex = val this.active = val
this.cacheVal = val
}, },
}, },
created () {
if (sessionStorage.getItem('personalLoansIndex')) {
this.handleSelect(sessionStorage.getItem('personalLoansIndex'))
} else {
this.handleSelect('1')
}
},
destroyed () {
sessionStorage.setItem('personalLoansIndex', this.cacheVal)
}
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrap { .wrap {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
padding: 24px 0 24px 24px; padding: 24px 0 24px 24px;
.nav {
/deep/ .el-menu.el-menu--horizontal { .nav {
border: 0; /deep/ .el-menu.el-menu--horizontal {
} border: 0;
/deep/ .el-menu--horizontal > .el-menu-item.is-active {
border: 2px solid #568df2;
border-radius: 10px;
color: #000;
}
/deep/ .el-menu--horizontal > .el-menu-item {
border: 2px solid transparent;
border-radius: 10px;
margin-right: 10px;
height: 30px;
line-height: 28px;
}
} }
.title {
height: 60px; /deep/ .el-menu--horizontal>.el-menu-item.is-active {
display: flex; border: 2px solid #568df2;
align-items: center; border-radius: 10px;
font-size: 20px; color: #000;
padding-left: 0px; }
margin-top: 10px;
/deep/ .el-menu--horizontal>.el-menu-item {
border: 2px solid transparent;
border-radius: 10px;
margin-right: 10px;
height: 30px;
line-height: 28px;
}
}
.title {
height: 60px;
display: flex;
align-items: center;
font-size: 20px;
padding-left: 0px;
margin-top: 10px;
}
.body {
margin-top: 50px;
overflow-y: auto;
overflow-x: hidden;
.idCard {
border-radius: 5px;
background: #cfddff;
text-align: center;
height: 40px;
line-height: 40px;
font-size: 18px;
color: #6191ff;
} }
.body {
margin-top: 50px; .add {
overflow-y: auto; position: relative;
overflow-x: hidden;
.idCard { &::after {
border-radius: 5px; content: '';
background: #cfddff; display: block;
text-align: center; position: absolute;
height: 40px; right: 3%;
line-height: 40px; top: -4%;
font-size: 18px; border: 1px dashed #cfddff;
color: #6191ff; width: 88%;
} height: 268px;
.add { }
position: relative;
&::after { .addBtn {
content: ''; position: absolute;
display: block; left: 0;
position: absolute; top: 50%;
right: 3%; transform: translate(50%, -50%);
top: -4%; font-size: 22px;
border: 1px dashed #cfddff; }
width: 88%;
height: 268px;
}
.addBtn {
position: absolute;
left: 0;
top: 50%;
transform: translate(50%, -50%);
font-size: 22px;
}
}
} }
.submitBtn { }
position: relative;
width: 300px; .submitBtn {
font-size: 18px; position: relative;
height: 45px; width: 300px;
margin-top: 50px; font-size: 18px;
border-radius: 10px; height: 45px;
bottom: 10px; margin-top: 50px;
left: 50%; border-radius: 10px;
transform: translate(-50%, -50%); bottom: 10px;
left: 50%;
transform: translate(-50%, -50%);
}
.popBody {
min-height: 200px;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
}
.popBtns {
display: flex;
justify-content: space-between;
align-items: center;
.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
} }
.popBody {
min-height: 200px; .close {
display: flex; background: #cfdeff;
align-items: center; color: #6191ff;
justify-content: center;
text-align: center;
} }
.popBtns {
display: flex; .sure {
justify-content: space-between; background: #6191ff;
align-items: center; color: #fff;
.btn {
width: 180px;
border-radius: 10px;
font-size: 18px;
}
.close {
background: #cfdeff;
color: #6191ff;
}
.sure {
background: #6191ff;
color: #fff;
}
} }
}
} }
</style> </style>

@ -1,7 +0,0 @@
export default [
{
id: 1,
name: '刘亚东',
serial: 'F10628012',
}
]

@ -177,6 +177,8 @@ export default {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
customerName: this.keyword, customerName: this.keyword,
renewalOrNot: this.$parent.active === '3' ? 1 : '',
normalRepayment: this.$parent.active === '2' ? 1 : '',
}) })
this.list = data.list.records this.list = data.list.records
this.total = data.list.total this.total = data.list.total

Loading…
Cancel
Save