贷款业务联调

20240205
yujialong 5 months ago
parent 5172cd1234
commit 8f6f3d7dcf
  1. 29
      src/api/api.js
  2. 35
      src/api/http.js
  3. 36
      src/layouts/header/index.vue
  4. 4
      src/layouts/home/index.vue
  5. 70
      src/libs/util.js
  6. 4
      src/pages/manage/list/corporateLoans/application.vue
  7. 42
      src/pages/manage/list/corporateLoans/apply/creditApplication/index.vue
  8. 15
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/basic.vue
  9. 28
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/importReport.vue
  10. 43
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/preLoan.vue
  11. 29
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/rating.vue
  12. 90
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  13. 85
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  14. 98
      src/pages/manage/list/corporateLoans/detail.vue
  15. 6
      src/pages/manage/list/corporateLoans/loan.vue
  16. 15
      src/pages/manage/list/corporateLoans/management.vue
  17. 166
      src/pages/manage/list/corporateLoans/repayment.vue
  18. 1
      src/pages/manage/list/onlineBank/openAccount.vue
  19. 74
      src/pages/manage/list/personalLoans/detail.vue
  20. 12
      src/pages/manage/list/personalLoans/list.vue
  21. 1
      src/setting.js
  22. 1
      src/store/modules/system.js
  23. 2
      src/utils/utilFunction.js

@ -1,7 +1,7 @@
import axios from 'axios'; import axios from 'axios';
import router from '../router'; import router from '../router';
import store from '@/store' import store from '@/store'
import util from '@/libs/util' import Util from '@/libs/util'
const url = location.host const url = location.host
const dev = process.env.NODE_ENV === 'development' // 开发环境 const dev = process.env.NODE_ENV === 'development' // 开发环境
@ -11,6 +11,9 @@ 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.51:9000/' host = 'http://192.168.31.51:9000/'
const ip = localStorage.getItem('localIp')
const ips = ['http://192.168.31.217:9000/', 'http://192.168.31.51:9000/', 'http://121.37.12.51/']
host = ips[+ip]
} }
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
@ -27,15 +30,29 @@ service.interceptors.request.use(config => {
// 添加respone拦截器 // 添加respone拦截器
service.interceptors.response.use( service.interceptors.response.use(
response => { response => {
let res = {}; const { status, data } = response
res.status = response.status if (data.code === 401) {
res.data = response.data; // 账号互踢
return res; if (!logouted) {
Util.errorMsg(data.msg.includes('顶') ? '您的账号已在其他设备登录,您已被迫下线!' : '登录过期,请重新登录!')
setTimeout(() => {
store.commit('user/logout')
logouted = 0
}, 6500)
logouted = 1
}
} else {
return {
status,
data
}
}
}, },
error => { error => {
if (error.response.status == 401) { if (error.response.status == 401) {
if (!logouted) { if (!logouted) {
util.errorMsg('登录过期,请重新登录') Util.errorMsg('登录过期,请重新登录')
setTimeout(() => { setTimeout(() => {
store.commit('user/logout') store.commit('user/logout')
}, 1500) }, 1500)

@ -48,46 +48,53 @@ export const reportDetail = (reportId) => {
}) })
} }
export const creditEvaluationInput = data => { export const creditEvaluationInput = data => {
return post(`${host}/judgment/bankCreditEvaluation/creditEvaluationInput`, data) return post(`/judgment/bankCreditEvaluation/creditEvaluationInput`, data)
} }
export const creditEvaluationDetails = data => { export const creditEvaluationDetails = data => {
return post(`${host}/judgment/bankCreditEvaluation/creditEvaluationDetails`, data) return post(`/judgment/bankCreditEvaluation/creditEvaluationDetails`, data)
} }
export const loanApplicationInput = data => { export const loanApplicationInput = data => {
return post(`${host}/judgment/bankLoanApplication/loanApplicationInput`, data) return post(`/judgment/bankLoanApplication/loanApplicationInput`, data)
} }
export const loanApplicationDetails = data => { export const loanApplicationDetails = data => {
return post(`${host}/judgment/bankLoanApplication/loanApplicationDetails`, data) return get(`/judgment/bankLoanApplication/loanApplicationDetails`, data)
} }
export const creditApplicationInput = data => { export const creditApplicationInput = data => {
return post(`${host}/judgment/bankCreditApplication/creditApplicationInput`, data) return post(`/judgment/bankCreditApplication/creditApplicationInput`, data)
} }
export const creditApplicationDetails = data => { export const creditApplicationDetails = data => {
return post(`${host}/judgment/bankCreditApplication/creditApplicationDetails`, data) return post(`/judgment/bankCreditApplication/creditApplicationDetails`, data)
} }
export const companyLoanList = data => { export const companyLoanList = data => {
return post(`${host}/judgment/bankCompanyLoans/companyLoanList`, data) return post(`/judgment/bankCompanyLoans/companyLoanList`, data)
} }
export const companyLoanDetails = id => { export const companyLoanDetails = id => {
return get(`${host}/judgment/bankCompanyLoans/companyLoanDetails?companyLoanId=${id}`) return get(`/judgment/bankCompanyLoans/companyLoanDetails?companyLoanId=${id}`)
} }
export const loanDisbursement = data => { export const loanDisbursement = data => {
return post(`${host}/judgment/bankCompanyLoans/loanDisbursement`, data) return post(`/judgment/bankCompanyLoans/loanDisbursement`, data)
} }
export const loanCollection = data => { export const loanCollection = data => {
return post(`${host}/judgment/bankCompanyLoans/loanCollection`, data) return post(`/judgment/bankCompanyLoans/loanCollection`, data)
} }
export const nonPerformingLoans = data => { export const nonPerformingLoans = data => {
return post(`${host}/judgment/bankCompanyLoans/nonPerformingLoans`, data) return post(`/judgment/bankCompanyLoans/nonPerformingLoans`, data)
} }
export const badDebtRecognition = data => { export const badDebtRecognition = data => {
return post(`${host}/judgment/bankCompanyLoans/badDebtRecognition`, data) return post(`/judgment/bankCompanyLoans/badDebtRecognition`, data)
} }
export const postLoanInvestigationInput = data => { export const postLoanInvestigationInput = data => {
return post(`${host}/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data) return post(`/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data)
} }
export const addExtensionPeriod = data => { export const addExtensionPeriod = data => {
return post(`${host}/judgment/bankCompanyLoans/addExtensionPeriod`, data) return post(`/judgment/bankCompanyLoans/addExtensionPeriod`, data)
}
export const batchProcessingCompany = data => {
return post(`/judgment/bankCompanyRepaymentPlan/batchProcessing`, data)
}
export const repaymentPlanCompany = data => {
return post(`/judgment/bankCompanyRepaymentPlan/repaymentPlan`, data)
} }
export const loanContractSave = (data) => { export const loanContractSave = (data) => {

@ -1,20 +1,19 @@
<template> <template>
<div class="header" <div class="header" ref="exitHeader">
ref="exitHeader"> <div class="inner" style="width: 100%">
<div class="inner" <div class="logo" @click="toIndex" style="float: left">
style="width: 100%"> <img src="../../assets/img/logo.png" alt="">
<div class="logo"
@click="toIndex"
style="float: left">
<img src="../../assets/img/logo.png"
alt="">
</div> </div>
<div style="float: right;margin:0 60px;font-size: 18px"> <div style="float: right;margin:0 60px;font-size: 18px">
<span style="cursor:pointer" <span style="cursor:pointer" @click="logout">
@click="logout">
退出<i class="icon el-icon-s-unfold"></i> 退出<i class="icon el-icon-s-unfold"></i>
</span> </span>
</div> </div>
<el-radio-group v-if="isDev" class="ip" v-model="ip" @change="ipChange">
<el-radio :label="0">刘榕ip</el-radio>
<el-radio :label="1">陈赓ip</el-radio>
<el-radio :label="2">测试服ip</el-radio>
</el-radio-group>
</div> </div>
</div> </div>
</template> </template>
@ -26,7 +25,9 @@ import Cookie from 'js-cookie'
export default { export default {
data () { data () {
return { return {
isDev: Setting.isDev,
token: util.local.get(Setting.tokenKey), token: util.local.get(Setting.tokenKey),
ip: localStorage.getItem('localIp') ? +localStorage.getItem('localIp') : 0,
}; };
}, },
mounted () { mounted () {
@ -61,6 +62,11 @@ export default {
sessionStorage.clear() sessionStorage.clear()
location.href = href location.href = href
}, },
ipChange (val) {
localStorage.setItem('localIp', val)
location.reload()
},
}, },
watch: { watch: {
'$route.path': { '$route.path': {
@ -89,13 +95,21 @@ export default {
// background-color: #fff; // background-color: #fff;
background-color: rgb(244, 245, 248); background-color: rgb(244, 245, 248);
z-index: 1001; z-index: 1001;
.logo { .logo {
width: 500px; width: 500px;
margin-left: 42px; margin-left: 42px;
cursor: pointer; cursor: pointer;
img { img {
width: 100%; width: 100%;
} }
} }
} }
.ip {
position: fixed;
top: 25px;
left: 500px;
}
</style> </style>

@ -55,6 +55,4 @@ export default {
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped></style>
</style>

@ -133,6 +133,76 @@ const util = {
errorMsg (message, duration = 3000) { errorMsg (message, duration = 3000) {
return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration }) return Message.error({ message, showClose: true, offset: (document.documentElement.clientHeight - 40) / 2, duration })
}, },
// 授信年限
creditTerms: [
{
id: 231,
name: '1年'
},
{
id: 232,
name: '3年'
},
{
id: 233,
name: '5年'
},
{
id: 234,
name: '10年'
},
],
// 还款方式
repaymentMethods: [
{
id: 235,
name: '等额本金'
},
{
id: 236,
name: '等额本息'
},
],
// 发放方式
distributionMethods: [
{
id: 238,
name: '一次性到账'
},
{
id: 239,
name: '随借随还'
},
],
// 担保方式
guaranteeMethods: [
{
id: 242,
name: '质押'
},
{
id: 243,
name: '抵押'
},
],
// 贷款期限
loanTerms: [
{
pointId: 244,
id: 120,
name: '120个月'
},
{
pointId: 245,
id: 240,
name: '240个月'
},
{
pointId: 246,
id: 360,
name: '360个月'
},
],
} }
export default util export default util

@ -15,10 +15,10 @@
<el-table-column prop="customerName" label="客户姓名" align="center" /> <el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="申请编号" align="center" /> <el-table-column prop="applicationNumber" label="申请编号" align="center" />
<el-table-column prop="createTime" label="申请日期" align="center" /> <el-table-column prop="createTime" label="申请日期" align="center" />
<el-table-column prop="loanApplicationAmount" label="申请金额" align="center" /> <el-table-column prop="loanApplicationAmount" label="申请金额(万)" align="center" />
<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 :disabled="scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

@ -38,7 +38,8 @@
<el-input v-model="form.contactPhoneNumber" disabled /> <el-input v-model="form.contactPhoneNumber" disabled />
</el-form-item> </el-form-item>
<el-form-item label="与袋鼠互联网科技有限公司合作年限" label-width="280px"> <el-form-item label="与袋鼠互联网科技有限公司合作年限" label-width="280px">
<el-input v-model="form.cooperationPeriod"> <el-input v-model="form.cooperationPeriod" @input="val => inputListen(val, form, 'cooperationPeriod')"
ref="cooperationPeriod">
<template slot="append"></template> <template slot="append"></template>
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -238,6 +239,7 @@
</div> </div>
</template> </template>
<script> <script>
import { inputListen } from '@/utils/utilFunction.js'
import { addOperation, creditApplicationInput } from '@/api/http' import { addOperation, creditApplicationInput } from '@/api/http'
import { mapState, mapMutations } from 'vuex' import { mapState, mapMutations } from 'vuex'
export default { export default {
@ -299,6 +301,7 @@ export default {
}, },
methods: { methods: {
...mapMutations('system', ['setCreditImportIndex', 'initCreditImportIds']), ...mapMutations('system', ['setCreditImportIndex', 'initCreditImportIds']),
inputListen,
// //
async getDetail () { async getDetail () {
this.initCreditImportIds({ this.initCreditImportIds({
@ -330,11 +333,48 @@ export default {
if (!form.matureRepayment && !form.otherRepayments) return this.$message.error('请选择还款来源!') if (!form.matureRepayment && !form.otherRepayments) return this.$message.error('请选择还款来源!')
if (!form.paymentForMaterials && !form.payLaborCosts && !form.payExpenses && !form.otherUses) return this.$message.error('请选择贷款用途!') if (!form.paymentForMaterials && !form.payLaborCosts && !form.payExpenses && !form.otherUses) return this.$message.error('请选择贷款用途!')
//
await creditApplicationInput({ await creditApplicationInput({
...this.$store.state.system.creditIds, ...this.$store.state.system.creditIds,
...this.$store.state.system.creditImportIds, ...this.$store.state.system.creditImportIds,
...form, ...form,
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = []
form.matureRepayment && rule.push({ answerId: 799, emptyOne: '', emptyTwo: '', operationIds: preId + ',798,799', type: '' })
form.otherRepayments && rule.push({ answerId: 800, emptyOne: 125, emptyTwo: form.otherRepayments, operationIds: preId + ',798,800', type: 3 })
form.paymentForMaterials && rule.push({ answerId: 834, emptyOne: '', emptyTwo: '', operationIds: preId + ',833,834', type: '' })
form.payLaborCosts && rule.push({ answerId: 835, emptyOne: '', emptyTwo: '', operationIds: preId + ',833,835', type: '' })
form.payExpenses && rule.push({ answerId: 836, emptyOne: '', emptyTwo: '', operationIds: preId + ',833,836', type: '' })
form.otherUses && rule.push({ answerId: 800, emptyOne: 125, emptyTwo: form.otherUses, operationIds: preId + ',833,837', type: 3 })
form.specialInstructions && rule.push({ answerId: 802, emptyOne: 125, emptyTwo: form.specialInstructions, operationIds: preId + ',802', type: 3 })
//
const files = this.creditImportIds
files.corporateIdCard && rule.push({ answerId: 804, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,804', type: '' })
files.mortgagePropertyCertificate && rule.push({ answerId: 805, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,805', type: '' })
files.proofOfMaritalStatus && rule.push({ answerId: 806, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,806', type: '' })
files.copyOfSpouseSIdCard && rule.push({ answerId: 807, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,807', type: '' })
files.originalBusinessLicense && rule.push({ answerId: 808, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,808', type: '' })
files.accountOpeningPermit && rule.push({ answerId: 809, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,809', type: '' })
files.leaseContract && rule.push({ answerId: 810, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,810', type: '' })
files.companyArticlesOfAssociation && rule.push({ answerId: 811, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,811', type: '' })
files.shareholderDocuments && rule.push({ answerId: 812, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,812', type: '' })
files.financialSeal && rule.push({ answerId: 813, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,813', type: '' })
files.oneYearTaxPaymentCertificate && rule.push({ answerId: 814, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,814', type: '' })
files.halfYearRevenue && rule.push({ answerId: 815, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,815', type: '' })
files.corporateFinancialStatements && rule.push({ answerId: 817, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,817', type: '' })
files.loanApplicationForm && rule.push({ answerId: 818, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,818', type: '' })
files.creditAuthorizationLetter && rule.push({ answerId: 819, emptyOne: '', emptyTwo: '', operationIds: preId + ',803,819', type: '' })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success('保存成功!') this.$message.success('保存成功!')
this.$parent.active = '3' this.$parent.active = '3'
this.$parent.curStep = 0 this.$parent.curStep = 0

@ -92,7 +92,7 @@
</div> </div>
</template> </template>
<script> <script>
import { inputListen, messageCard } from '@/utils/utilFunction.js'; import { inputListen } from '@/utils/utilFunction.js'
import { addOperation, creditEvaluationInput } from '@/api/http' import { addOperation, creditEvaluationInput } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
export default { export default {
@ -166,15 +166,20 @@ export default {
// //
async next () { async next () {
const { form } = this const { form } = this
if (!form.applicationAccount) { if (!form.applicationAccount) return this.$message.error('请填写账号!')
messageCard('请填写账号')
return
}
try { try {
const { data } = await creditEvaluationInput({ const { data } = await creditEvaluationInput({
...this.$store.getters['system/commonIds'], ...this.$store.getters['system/commonIds'],
...form, ...form,
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 769, emptyOne: 125, emptyTwo: form.applicationAccount, operationIds: preId + ',769', type: 3 },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
// id // id
this.setCreditIds({ this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid companyLoanId: data.companyLoanId, // tabid

@ -68,22 +68,28 @@ export default {
this.setCreditImportIndex(i) this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12) this.$parent.$parent.$parent.showData('导入报表', 12)
}, },
next () { async next () {
const form = this.creditImportIds const form = this.creditImportIds
if (!form.importBalanceSheet) { if (!form.importBalanceSheet) return this.$message.error('请导入资产负债表!')
return this.setTipsOperate('请导入资产负债表') if (!form.importIncomeStatement) return this.$message.error('请导入损益表!')
} if (!form.importCashFlowStatement) return this.$message.error('请导入现金流量表!')
if (!form.importIncomeStatement) {
return this.setTipsOperate('请导入损益表')
}
if (!form.importCashFlowStatement) {
return this.setTipsOperate('请导入现金流量表')
}
try { try {
creditEvaluationInput({ await creditEvaluationInput({
...this.creditIds, ...this.creditIds,
...form ...form
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [
{ answerId: 770, emptyOne: '', emptyTwo: '', operationIds: preId + ',770', type: '' },
{ answerId: 771, emptyOne: '', emptyTwo: '', operationIds: preId + ',771', type: '' },
{ answerId: 772, emptyOne: '', emptyTwo: '', operationIds: preId + ',772', type: '' },
],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$emit('updateStep', 2) this.$emit('updateStep', 2)
} catch { (e) => { } } } catch { (e) => { } }
}, },

@ -198,6 +198,12 @@ export default {
submited: 0 submited: 0
} }
}, },
computed: {
// id
creditIds: function () {
return this.$store.state.system.creditIds
},
},
mounted () { mounted () {
}, },
@ -205,28 +211,37 @@ export default {
async next () { async next () {
this.$refs.form.validate(myValidate(async () => { this.$refs.form.validate(myValidate(async () => {
try { try {
const { form } = this
await creditEvaluationInput({ await creditEvaluationInput({
...this.creditIds, ...this.creditIds,
...this.form, ...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 773, emptyOne: 125, emptyTwo: form.surveyDate, operationIds: preId + ',773', type: 3 },
{ answerId: 774, emptyOne: 126, emptyTwo: form.externalUnfavorableGuarantee, operationIds: preId + ',774', type: 1 },
{ answerId: 775, emptyOne: 126, emptyTwo: form.tradeFinancingRecords, operationIds: preId + ',775', type: 1 },
{ answerId: 776, emptyOne: 127, emptyTwo: form.businessStatus, operationIds: preId + ',776', type: 1 },
{ answerId: 777, emptyOne: 126, emptyTwo: form.businessInvestmentErrors, operationIds: preId + ',777', type: 1 },
{ answerId: 778, emptyOne: 126, emptyTwo: form.badDebtReserves, operationIds: preId + ',778', type: 1 },
{ answerId: 779, emptyOne: 127, emptyTwo: form.enterpriseCustomerAnalysis, operationIds: preId + ',779', type: 1 },
{ answerId: 780, emptyOne: 126, emptyTwo: form.majorLegalLitigation, operationIds: preId + ',780', type: 1 },
{ answerId: 781, emptyOne: 126, emptyTwo: form.compensationMajorAccidents, operationIds: preId + ',781', type: 1 },
{ answerId: 782, emptyOne: 126, emptyTwo: form.loanRiskSituation, operationIds: preId + ',782', type: 1 },
]
form.preLoanOtherRiskSituations && rule.push({ answerId: 783, emptyOne: 125, emptyTwo: form.preLoanOtherRiskSituations, operationIds: preId + ',783', type: 3 },)
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
}) })
this.$emit('updateStep', 3) this.$emit('updateStep', 3)
} catch { (e) => { } } } catch { (e) => { } }
}, this.$refs)) }, this.$refs))
}, },
}, },
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList',
}),
// id
creditIds: function () {
return this.$store.state.system.creditIds
},
}
} }
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>

@ -2,11 +2,11 @@
<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="120px" :rules="rules"> <el-form ref="form" :model="form" label-width="160px" :rules="rules">
<el-col :span="24"> <el-col :span="24">
<h6 class="l-title">等级评定</h6> <h6 class="l-title">等级评定</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="12">
<el-form-item label="盈利记录" required> <el-form-item label="盈利记录" required>
<el-select v-model="form.profitRecord" placeholder="请选择" style="width: 100%"> <el-select v-model="form.profitRecord" placeholder="请选择" style="width: 100%">
<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>
@ -201,9 +201,30 @@ export default {
methods: { methods: {
async submit () { async submit () {
try { try {
const { data } = await creditEvaluationInput({ const { form } = this
await creditEvaluationInput({
...this.creditIds, ...this.creditIds,
...this.form, ...form,
})
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 784, emptyOne: 128, emptyTwo: form.profitRecord, operationIds: preId + ',784', type: 1 },
{ answerId: 785, emptyOne: 127, emptyTwo: form.leadershipAdaptabilityAndDevelopment, operationIds: preId + ',785', type: 1 },
{ answerId: 786, emptyOne: 127, emptyTwo: form.leadershipStyleAndConduct, operationIds: preId + ',786', type: 1 },
{ answerId: 787, emptyOne: 126, emptyTwo: form.leadershipEducation, operationIds: preId + ',787', type: 1 },
{ answerId: 788, emptyOne: 127, emptyTwo: form.leadershipManagement, operationIds: preId + ',788', type: 1 },
{ answerId: 789, emptyOne: 129, emptyTwo: form.enterpriseDevelopmentCapability, operationIds: preId + ',789', type: 1 },
{ answerId: 790, emptyOne: 130, emptyTwo: form.enterpriseDevelopmentProspects, operationIds: preId + ',790', type: 1 },
{ answerId: 791, emptyOne: 127, emptyTwo: form.corporateReputation, operationIds: preId + ',791', type: 1 },
{ answerId: 792, emptyOne: 126, emptyTwo: form.haveAnyBadCreditRecords, operationIds: preId + ',792', type: 1 },
]
form.gradeEvaluationOtherRiskSituations && rule.push({ answerId: 793, emptyOne: 125, emptyTwo: form.gradeEvaluationOtherRiskSituations, operationIds: preId + ',793', type: 3 },)
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
}) })
this.$message.success('创建成功!') this.$message.success('创建成功!')
this.$parent.active = '2' this.$parent.active = '2'

@ -42,7 +42,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="form.creditAmount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -51,16 +51,19 @@
</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="授信年限" required>
<el-select v-model="form.creditTerm" placeholder="请选择"> <el-select v-model="form.creditTermOne" 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 Util.creditTerms" :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="贷款申请金额" required>
<el-input value="不大于授信金额" disabled /> <el-input v-model="form.loanApplicationAmount" placeholder="不大于授信金额"
@input="val => inputListen(val, form, 'loanApplicationAmount')" ref="loanApplicationAmount" />
</el-form-item> </el-form-item>
<el-form-item label="发放方式" required> <el-form-item label="发放方式" required>
<el-select v-model.trim="form.distributionMethod" placeholder="请选择"> <el-select v-model.trim="form.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 Util.distributionMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -70,9 +73,15 @@
</el-form-item> </el-form-item>
<el-form-item label="还款方式" required> <el-form-item label="还款方式" required>
<el-select v-model.trim="form.repaymentMethodOne" 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 Util.repaymentMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="申请日期" prop="loanApplicationDate" required>
<el-date-picker v-model="form.loanApplicationDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" ref="loanApplicationDate">
</el-date-picker>
</el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
@ -83,11 +92,14 @@
</div> </div>
</template> </template>
<script> <script>
import { inputListen } from '@/utils/utilFunction.js'
import { addOperation, loanApplicationInput } from '@/api/http' import { addOperation, loanApplicationInput } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
import Util from '@/libs/util'
export default { export default {
data () { data () {
return { return {
Util,
form: { form: {
applicationNumber: '913403005685450862', applicationNumber: '913403005685450862',
customerName: '袋鼠互联网科技有限公司', customerName: '袋鼠互联网科技有限公司',
@ -98,72 +110,48 @@ export default {
corporateIdNumber: '220602199202281229', corporateIdNumber: '220602199202281229',
creditRating: 'AAAA', creditRating: 'AAAA',
creditAmount: 'RMB12,000,000.00', creditAmount: '12,000,000.00',
creditTerm: 231, creditTermOne: 231,
annualizedInterestRate: '', annualizedInterestRate: '',
loanApplicationAmount: '', loanApplicationAmount: '',
repaymentMethodOne: 235, repaymentMethodOne: 235,
distributionMethod: 238, distributionMethod: 238,
loanApplicationDate: Util.formatDate('yyyy-MM-dd', new Date()),
}, },
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: '随借随还'
},
],
} }
}, },
mounted () { mounted () {
console.log(11, this.$store.state.system)
}, },
methods: { methods: {
...mapMutations({ ...mapMutations({
setCreditIds: 'system/setCreditIds', setCreditIds: 'system/setCreditIds',
}), }),
inputListen,
async next () { async next () {
const { form } = this const { form } = this
if (!form.loanApplicationAmount) return this.$message.error('请填写贷款申请金额!')
if (+form.loanApplicationAmount > 12000000) return this.$message.error('贷款申请金额应不大于授信金额!') //
try { try {
const { data } = await loanApplicationInput({ const { data } = await loanApplicationInput({
...this.$store.getters['system/commonIds'], ...this.$store.getters['system/commonIds'],
...form, ...form,
companyLoanId: this.$store.state.system.creditIds.companyLoanId, companyLoanId: this.$store.state.system.creditIds.companyLoanId,
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [
{ answerId: 820, emptyOne: 134, emptyTwo: form.creditTermOne, operationIds: preId + ',820', type: 1 },
{ answerId: 821, emptyOne: 125, emptyTwo: form.loanApplicationAmount, operationIds: preId + ',821', type: 3 },
{ answerId: 822, emptyOne: 135, emptyTwo: form.repaymentMethodOne, operationIds: preId + ',822', type: 1 },
{ answerId: 823, emptyOne: 136, emptyTwo: form.distributionMethod, operationIds: preId + ',823', type: 1 },
{ answerId: 845, emptyOne: 140, emptyTwo: form.loanApplicationDate, operationIds: preId + ',845', type: 3 },
],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
// id // id
this.setCreditIds({ this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid companyLoanId: data.companyLoanId, // tabid

@ -27,7 +27,8 @@
</el-form-item> </el-form-item>
<el-form-item label="担保方式" required> <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 opt1" :key="i" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item, i) in Util.guaranteeMethods" :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="利息总额">
@ -41,9 +42,14 @@
<el-form-item label="合同编号" prop="contractNo"> <el-form-item label="合同编号" prop="contractNo">
<el-input v-model="form.contractNo" disabled /> <el-input v-model="form.contractNo" disabled />
</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.creditTermTwo" placeholder="请选择">
<el-option label="3年" :value="3"></el-option> <el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="贷款期限" prop="loanTerm">
<el-select v-model="form.loanTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in Util.loanTerms" :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="到期日期">
@ -58,7 +64,8 @@
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="repaymentMethodTwo"> <el-form-item label="还款方式" prop="repaymentMethodTwo">
<el-select v-model.trim="form.repaymentMethodTwo" placeholder="请选择"> <el-select v-model.trim="form.repaymentMethodTwo" 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 Util.repaymentMethods" :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="贷款金额">
@ -74,14 +81,17 @@
</div> </div>
</template> </template>
<script> <script>
import { addOperation, loanApplicationInput } from '@/api/http' import { addOperation, loanApplicationInput, loanApplicationDetails } from '@/api/http'
import Util from '@/libs/util' import Util from '@/libs/util'
export default { export default {
data () { data () {
return { return {
Util,
creditIds: this.$store.state.system.creditIds,
form: { form: {
valueDate: '', valueDate: '',
creditTerm: 3, creditTermTwo: 231,
loanTerm: 120,
guaranteeMethod: 242, guaranteeMethod: 242,
expirationDate: '', expirationDate: '',
totalInterestAmount: '', totalInterestAmount: '',
@ -91,38 +101,31 @@ export default {
interestTotal: '', interestTotal: '',
repaymentAccount: '', repaymentAccount: '',
}, },
opt1: [
{
id: 242,
name: '质押'
},
{
id: 243,
name: '抵押'
},
],
opt2: [
{
id: 235,
name: '等额本金'
},
{
id: 236,
name: '等额本息'
},
],
} }
}, },
mounted () { mounted () {
this.getDetail()
}, },
methods: { methods: {
//
async getDetail () {
if (this.creditIds.companyLoanId) {
//
const res = await loanApplicationDetails({
companyLoanId: this.creditIds.companyLoanId
})
const data = res.data.bankLoanApplication
this.form.loanAmount = data.loanApplicationAmount
this.form.repaymentMethodTwo = +data.repaymentMethodOne
this.form.creditTermTwo = +data.creditTermOne
}
},
// //
maturityDateCalc () { maturityDateCalc () {
const { valueDate, creditTerm } = this.form const { valueDate, loanTerm } = this.form
if (valueDate && creditTerm) { if (valueDate && loanTerm) {
const date = new Date(valueDate) const date = new Date(valueDate)
date.setFullYear(date.getFullYear() + creditTerm) date.setMonth(date.getMonth() + loanTerm)
this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date) this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
} }
}, },
@ -135,6 +138,26 @@ export default {
...this.$store.state.system.creditIds, ...this.$store.state.system.creditIds,
...form, ...form,
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [
{ answerId: 824, emptyOne: 137, emptyTwo: 240, operationIds: preId + ',824', type: 1 },
{ answerId: 825, emptyOne: 138, emptyTwo: 241, operationIds: preId + ',825', type: 1 },
{ answerId: 826, emptyOne: 125, emptyTwo: form.valueDate, operationIds: preId + ',826', type: 3 },
{ answerId: 846, emptyOne: 141, emptyTwo: Util.loanTerms.find(e => e.id === form.loanTerm).pointId, operationIds: preId + ',846', type: 1 },
{ answerId: 827, emptyOne: 125, emptyTwo: form.expirationDate, operationIds: preId + ',827', type: 3 },
{ answerId: 828, emptyOne: 139, emptyTwo: form.guaranteeMethod, operationIds: preId + ',828', type: 1 },
{ answerId: 822, emptyOne: 135, emptyTwo: form.repaymentMethodTwo, operationIds: preId + ',822', type: 1 },
{ answerId: 832, emptyOne: 125, emptyTwo: form.repaymentAccount, operationIds: preId + ',832', type: 1 },
]
form.loanAmount && rule.push({ answerId: 831, emptyOne: 125, emptyTwo: form.loanAmount, operationIds: preId + ',831', type: 1 })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success('保存成功!') this.$message.success('保存成功!')
this.$router.back() this.$router.back()
} catch { (e) => { } } } catch { (e) => { } }

@ -3,7 +3,7 @@
<div class="wrap"> <div class="wrap">
<MyTitle :titleArr="['公司贷款', '贷款详情']" /> <MyTitle :titleArr="['公司贷款', '贷款详情']" />
<el-row :gutter="20" style="margin: 0"> <el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" disabled :rules="rules"> <el-form ref="form" :model="form" label-width="120px" disabled>
<el-col :span="24"> <el-col :span="24">
<h6 class="l-title">信用评估</h6> <h6 class="l-title">信用评估</h6>
</el-col> </el-col>
@ -54,13 +54,15 @@
</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-select v-model="bankLoanApplication.creditTerm" placeholder="请选择"> <el-select v-model="bankLoanApplication.creditTermOne" 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 Util.creditTerms" :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-select v-model.trim="bankLoanApplication.repaymentMethodOne" 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 Util.repaymentMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -70,7 +72,8 @@
</el-form-item> </el-form-item>
<el-form-item label="发放方式"> <el-form-item label="发放方式">
<el-select v-model.trim="bankLoanApplication.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 Util.distributionMethods" :key="i" :label="item.name" :value="item.id">
</el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -100,7 +103,8 @@
</el-form-item> </el-form-item>
<el-form-item label="担保方式"> <el-form-item label="担保方式">
<el-select v-model="bankLoanApplication.guaranteeMethod" placeholder="请选择"> <el-select v-model="bankLoanApplication.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in opt4" :key="i" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item, i) in Util.guaranteeMethods" :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="利息总额">
@ -109,6 +113,11 @@
<el-form-item label="还款账号"> <el-form-item label="还款账号">
<el-input v-model="bankLoanApplication.repaymentAccount" /> <el-input v-model="bankLoanApplication.repaymentAccount" />
</el-form-item> </el-form-item>
<el-form-item label="申请日期" prop="loanApplicationDate">
<el-date-picker v-model="bankLoanApplication.loanApplicationDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" ref="loanApplicationDate">
</el-date-picker>
</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">
@ -119,6 +128,11 @@
<el-option label="3年" :value="3"></el-option> <el-option label="3年" :value="3"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="贷款期限" prop="loanTerm">
<el-select v-model="bankLoanApplication.loanTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in Util.loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到期日期"> <el-form-item label="到期日期">
<el-date-picker v-model="bankLoanApplication.expirationDate" type="date" placeholder="选择日期" <el-date-picker v-model="bankLoanApplication.expirationDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" disabled></el-date-picker> format="yyyy-MM-dd" value-format="yyyy-MM-dd" disabled></el-date-picker>
@ -131,7 +145,8 @@
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="repaymentMethodOne"> <el-form-item label="还款方式" prop="repaymentMethodOne">
<el-select v-model="bankLoanApplication.repaymentMethodOne" placeholder="请选择" disabled> <el-select v-model="bankLoanApplication.repaymentMethodOne" placeholder="请选择" disabled>
<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 Util.repaymentMethods" :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="贷款金额">
@ -158,14 +173,16 @@
</div> </div>
</template> </template>
<script> <script>
import { loanDisbursement, companyLoanDetails } from '@/api/http' import { loanDisbursement, companyLoanDetails, addOperation } 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,
}, },
data () { data () {
return { return {
Util,
id: this.$route.query.id, id: this.$route.query.id,
form: { form: {
applicationAccount: '', applicationAccount: '',
@ -190,58 +207,6 @@ 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: {}, bankCompanyLoans: {},
@ -265,6 +230,9 @@ export default {
if (app.repaymentMethodOne) app.repaymentMethodOne = +app.repaymentMethodOne if (app.repaymentMethodOne) app.repaymentMethodOne = +app.repaymentMethodOne
if (app.creditTerm) app.creditTerm = +app.creditTerm if (app.creditTerm) app.creditTerm = +app.creditTerm
if (app.guaranteeMethod) app.guaranteeMethod = +app.guaranteeMethod if (app.guaranteeMethod) app.guaranteeMethod = +app.guaranteeMethod
if (app.loanTerm) app.loanTerm = +app.loanTerm
if (app.creditTermOne) app.creditTermOne = +app.creditTermOne
this.bankLoanApplication = app this.bankLoanApplication = app
} }
}, },
@ -279,7 +247,17 @@ export default {
companyLoanId: this.id, companyLoanId: this.id,
loanDate: this.loanDate, loanDate: this.loanDate,
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 838, emptyOne: '', emptyTwo: '', operationIds: preId + ',838', type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message[data.status === 200 ? 'success' : 'error'](data.message) this.$message[data.status === 200 ? 'success' : 'error'](data.message)
this.loanVisible = false
this.getDetail()
}, },
}, },
} }

@ -11,14 +11,14 @@
<el-table-column prop="customerName" label="客户姓名" align="center" /> <el-table-column prop="customerName" label="客户姓名" align="center" />
<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" />
<el-table-column prop="loanAmount" label="放款状态" align="center"> <el-table-column prop="loanAmount" label="放款状态" align="center">
<template slot-scope="scope">{{ scope.row.loanDate ? '已放款' : '待放款' }}</template> <template slot-scope="scope">{{ scope.row.loanDate ? '已放款' : '待放款' }}</template>
</el-table-column> </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 :disabled="scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

@ -148,7 +148,7 @@
<script> <script>
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, addOperation } from '@/api/http';
import MyTitle from '@/components/myTitle' import MyTitle from '@/components/myTitle'
import Util from '@/libs/util' import Util from '@/libs/util'
export default { export default {
@ -298,6 +298,7 @@ export default {
const { form } = this const { form } = this
if (!form.stateChange) return this.$message.error('请填写客户基本状态变化!') if (!form.stateChange) return this.$message.error('请填写客户基本状态变化!')
await postLoanInvestigationInput(form) await postLoanInvestigationInput(form)
this.submitPoint(841)
this.postLoanVisible = false this.postLoanVisible = false
}, },
@ -325,6 +326,7 @@ export default {
}) })
this.getData() this.getData()
this.curMsg = 2 this.curMsg = 2
this.submitPoint(840)
} else if (this.curMsg < 0) { } else if (this.curMsg < 0) {
this.curMsg = 1 this.curMsg = 1
} else if (this.curMsg === 1) { } else if (this.curMsg === 1) {
@ -334,17 +336,28 @@ export default {
await nonPerformingLoans({ await nonPerformingLoans({
companyLoanId: this.curRow.companyLoanId companyLoanId: this.curRow.companyLoanId
}) })
this.submitPoint(842)
} else { } else {
// //
await badDebtRecognition({ await badDebtRecognition({
companyLoanId: this.curRow.companyLoanId companyLoanId: this.curRow.companyLoanId
}) })
this.submitPoint(843)
} }
this.getData() this.getData()
} else { } else {
this.visible = false this.visible = false
} }
}, },
async submitPoint (id) {
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: id, emptyOne: '', emptyTwo: '', operationIds: `${preId},${id}`, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
},
}, },
}; };
</script> </script>

@ -10,12 +10,15 @@
<el-table :data="list" stripe :header-cell-style="headerCellStyle"> <el-table :data="list" stripe :header-cell-style="headerCellStyle">
<el-table-column prop="customerName" label="客户姓名" align="center" /> <el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="贷款编号" align="center" /> <el-table-column prop="applicationNumber" label="贷款编号" align="center" />
<el-table-column prop="applicationNumber" label="累计还款金额" align="center" /> <el-table-column prop="totalRepaymentAmount" label="累计还款金额(万)" align="center" />
<el-table-column prop="applicationNumber" label="欠款金额" align="center" /> <el-table-column prop="applicationNumber" label="欠款金额(万)" align="center" />
<el-table-column label="操作" align="center" width="150"> <el-table-column label="操作" align="center" width="240">
<template slot-scope="scope">
<el-button :disabled="scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button>
<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 size="small" @click="showExtension(scope.row)">展期</el-button> <el-button size="small" @click="showExtension(scope.row)">展期</el-button>
<el-button @click="repayment(scope.row)" size="small">还款计划</el-button>
</template>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -35,12 +38,62 @@
<el-button type="primary" @click="extensionSubmit">确定</el-button> <el-button type="primary" @click="extensionSubmit">确定</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="还款计划" :visible.sync="repaymentVisible" width="1000px" z-index="6000" :append-to-body="true">
<div class="flex j-between a-center m-b-20">
<el-form class="filter-form" label-width="90px" inline>
<el-form-item label="还款周期">
<el-date-picker placeholder="请选择还款周期" v-model="date" align="right" unlink-panels type="daterange"
size="small" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
clearable></el-date-picker>
</el-form-item>
<el-form-item label="还款周期">
<el-select v-model="form.status" placeholder="请选择" size="small" clearable @change="initRepayment">
<el-option value="待还款"></el-option>
<el-option value="未还款"></el-option>
<el-option value="已还款"></el-option>
</el-select>
</el-form-item>
</el-form>
<div>
<el-button @click="batchRepayment('已还款')" size="small" type="primary">批量还款</el-button>
<el-button @click="batchRepayment('逾期')" size="small" type="primary">批量逾期</el-button>
</div>
</div>
<el-table ref="repayments" :data="repayments" stripe header-align="center"
@selection-change="handleSelectionChangeRepayment" row-key="id">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"
:selectable="checkAble"></el-table-column>
<el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
<el-table-column prop="contractAmount" label="还款周期" align="center">
<template slot-scope="scope">
{{ scope.row.periodStart + '~' + scope.row.periodEnd }}
</template>
</el-table-column>
<el-table-column prop="amountDue" label="应还款" align="center"></el-table-column>
<el-table-column prop="status" label="还款状态" align="center">
<template slot-scope="scope">
<p :class="{ 'text-red': scope.row.status === '逾期' }">{{ scope.row.status }}</p>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150">
<template v-if="scope.row.status === '待还款'" slot-scope="scope">
<el-button @click="handleRepayment(scope.row, '已还款')" size="small">还款</el-button>
<el-button @click="handleRepayment(scope.row, '逾期')" size="small">逾期</el-button>
</template>
</el-table-column>
</el-table>
<div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="pageRepayment"
@current-change="handleCurrentChangePayment" :total="totalRepayment"></el-pagination>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { headerCellStyle } from '@/assets/js/myConfig' import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList, addExtensionPeriod } from '@/api/http'; import { companyLoanList, addExtensionPeriod, repaymentPlanCompany, batchProcessingCompany, addOperation } from '@/api/http';
import MyTitle from '@/components/myTitle' import MyTitle from '@/components/myTitle'
export default { export default {
name: 'index', name: 'index',
@ -102,6 +155,20 @@ export default {
name: '10个月' name: '10个月'
}, },
], ],
repaymentVisible: false,
repayments: [],
pageRepayment: 1,
pageSizeRepayment: 10,
totalRepayment: 0,
multipleSelection: [],
date: [],
form: {
periodEnd: '',
periodStart: '',
status: '',
},
curRow: {},
} }
}, },
watch: { watch: {
@ -111,6 +178,16 @@ export default {
this.initData() this.initData()
}, 500) }, 500)
}, },
date: function (val) {
if (val) {
this.form.periodStart = val[0]
this.form.periodEnd = val[1]
} else {
this.form.periodStart = ''
this.form.periodEnd = ''
}
this.initRepayment();
},
}, },
mounted () { mounted () {
this.initData() this.initData()
@ -152,9 +229,88 @@ export default {
}) })
this.$message.success('展期成功!') this.$message.success('展期成功!')
if (data.status === 200) this.extensionVisible = false if (data.status === 200) this.extensionVisible = false
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 839, emptyOne: '', emptyTwo: '', operationIds: preId + ',839', type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.getData() this.getData()
}, },
//
async repayment (row) {
this.curRow = row
this.repaymentVisible = true
this.getRepayment()
},
//
async getRepayment (row) {
const { data } = await repaymentPlanCompany({
pageNum: this.pageRepayment,
pageSize: this.pageSizeRepayment,
...this.form,
companyLoanId: this.curRow.companyLoanId,
})
this.repayments = data.list.records
this.totalRepayment = data.list.total
},
initRepayment () {
this.pageRepayment = 1
this.getRepayment()
},
handleCurrentChangePayment (val) {
this.pageRepayment = val
this.getRepayment()
},
handleSelectionChangeRepayment (val) {
this.multipleSelection = val
},
//
checkAble (row) {
return row.status === '待还款'
},
// /
handleRepayment (row, status) {
const text = status === '已还款' ? '还款' : '逾期'
this.$confirm(`确定要${text}吗?`, "提示", {
type: "warning"
}).then(async () => {
await batchProcessingCompany([{
id: row.id,
status
}])
this.$message.success(`${text}成功`)
this.getRepayment()
}).catch(() => { })
},
// /
batchRepayment (status) {
const list = this.multipleSelection
if (list.length) {
const text = status === '已还款' ? '还款' : '逾期'
this.$confirm(`确定要${text}吗?`, "提示", {
type: "warning"
}).then(async () => {
const ids = list.map(e => {
return {
id: e.id,
status
}
})
await batchProcessingCompany(ids)
this.$message.success(`${text}成功`)
this.$refs.repayments.clearSelection()
this.multipleSelection = []
this.getRepayment()
}).catch(() => { })
} else {
this.$message.error(`请选择数据!`)
}
},
} }
}; };
</script> </script>

@ -285,7 +285,6 @@ export default {
}, this.$refs)); }, this.$refs));
}, },
submitForm2 () { submitForm2 () {
let nomClientIdentity = sessionStorage.getItem('nomClientIdentity')
let projectId = sessionStorage.getItem('projectId') let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime') let startTime = sessionStorage.getItem('startTime')

@ -133,8 +133,8 @@
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="repaymentMethod"> <el-form-item label="还款方式" prop="repaymentMethod">
<el-select v-model="form.repaymentMethod" placeholder="请选择"> <el-select v-model="form.repaymentMethod" placeholder="请选择">
<el-option label="等额本金" :value="1"></el-option> <el-option label="等额本金" :value="235"></el-option>
<el-option label="等额本息" :value="2"></el-option> <el-option label="等额本息" :value="236"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="还款账号" prop="repaymentAccount"> <el-form-item label="还款账号" prop="repaymentAccount">
@ -253,7 +253,7 @@ export default {
area: '', area: '',
usagePeriod: '', usagePeriod: '',
usagePeriodEnd: '', usagePeriodEnd: '',
applicationDate: new Date() applicationDate: Util.formatDate('yyyy-MM-dd', new Date())
}, },
basicFormName: { basicFormName: {
idType: '证件类型', idType: '证件类型',
@ -295,14 +295,17 @@ export default {
loanTerms: [ loanTerms: [
{ {
pointId: 244,
id: 120, id: 120,
name: '120个月' name: '120个月'
}, },
{ {
pointId: 245,
id: 240, id: 240,
name: '240个月' name: '240个月'
}, },
{ {
pointId: 246,
id: 360, id: 360,
name: '360个月' name: '360个月'
}, },
@ -314,7 +317,7 @@ export default {
interestStartDate: '', interestStartDate: '',
maturityDate: '', maturityDate: '',
propertyCertificateNo: '', propertyCertificateNo: '',
repaymentMethod: '', repaymentMethod: 235,
interestTotal: '', interestTotal: '',
repaymentAccount: '', repaymentAccount: '',
}, },
@ -492,6 +495,32 @@ export default {
...this.$store.getters['system/commonIds'], ...this.$store.getters['system/commonIds'],
...basicForm, ...basicForm,
}) })
//
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
const rule = [
{ answerId: 847, emptyOne: 125, emptyTwo: basicForm.phoneNumber, operationIds: preId + ',847', type: 3 },
{ answerId: 859, emptyOne: 125, emptyTwo: basicForm.applicationDate, operationIds: preId + ',859', type: 3 },
]
basicForm.position && rule.push({ answerId: 848, emptyOne: 125, emptyTwo: basicForm.position, operationIds: preId + ',848', type: 3 })
basicForm.salary && rule.push({ answerId: 849, emptyOne: 125, emptyTwo: basicForm.salary, operationIds: preId + ',849', type: 3 })
basicForm.currentWorkYears && rule.push({ answerId: 850, emptyOne: 125, emptyTwo: basicForm.currentWorkYears, operationIds: preId + ',850', type: 3 })
basicForm.totalWorkYears && rule.push({ answerId: 851, emptyOne: 125, emptyTwo: basicForm.totalWorkYears, operationIds: preId + ',851', type: 3 })
basicForm.propertyOwner && rule.push({ answerId: 852, emptyOne: 125, emptyTwo: basicForm.propertyOwner, operationIds: preId + ',852', type: 3 })
basicForm.propertyCertificateNo && rule.push({ answerId: 853, emptyOne: 125, emptyTwo: basicForm.propertyCertificateNo, operationIds: preId + ',853', type: 3 })
basicForm.coOwnership && rule.push({ answerId: 854, emptyOne: 125, emptyTwo: basicForm.coOwnership, operationIds: preId + ',854', type: 3 })
basicForm.location && rule.push({ answerId: 855, emptyOne: 125, emptyTwo: basicForm.location, operationIds: preId + ',855', type: 3 })
basicForm.propertyRightNature && rule.push({ answerId: 856, emptyOne: 125, emptyTwo: basicForm.propertyRightNature, operationIds: preId + ',856', type: 3 })
basicForm.area && rule.push({ answerId: 857, emptyOne: 125, emptyTwo: basicForm.area, operationIds: preId + ',857', type: 3 })
basicForm.usagePeriod && rule.push({ answerId: 858, emptyOne: 125, emptyTwo: basicForm.usagePeriod, operationIds: preId + ',858', type: 3 })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.setCreditIds({ this.setCreditIds({
personalLoanId: data.personalLoanId, personalLoanId: data.personalLoanId,
applicationDate: data.applicationDate || this.form.applicationDate, applicationDate: data.applicationDate || this.form.applicationDate,
@ -519,6 +548,23 @@ export default {
...this.$store.getters['system/commonIds'], ...this.$store.getters['system/commonIds'],
...form, ...form,
}) })
//
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
const rule = [
{ answerId: 860, emptyOne: 125, emptyTwo: form.contractAmount, operationIds: preId + ',860', type: 3 },
{ answerId: 861, emptyOne: 141, emptyTwo: this.loanTerms.find(e => e.id === form.loanTerm).pointId, operationIds: preId + ',861', type: 1 },
{ answerId: 862, emptyOne: 125, emptyTwo: form.interestStartDate, operationIds: preId + ',862', type: 3 },
{ answerId: 863, emptyOne: 125, emptyTwo: form.repaymentMethod, operationIds: preId + ',863', type: 3 },
{ answerId: 864, emptyOne: 125, emptyTwo: form.repaymentAccount, operationIds: preId + ',864', type: 3 },
]
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
data.status === 200 ? this.$router.push('/counter/list/manage/personalLoans') : this.$message.error(data.message) data.status === 200 ? this.$router.push('/counter/list/manage/personalLoans') : this.$message.error(data.message)
} catch { (e) => { } } } catch { (e) => { } }
}, },
@ -534,6 +580,16 @@ export default {
disbursementDate: this.disbursementDate, disbursementDate: this.disbursementDate,
}) })
this.$message[data.status === 200 ? 'success' : 'error'](data.message) this.$message[data.status === 200 ? 'success' : 'error'](data.message)
//
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 865, emptyOne: '', emptyTwo: '', operationIds: preId + ',865', type: '' }],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500) setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
}, },
@ -549,6 +605,16 @@ export default {
extensionPeriod: this.extensionPeriod, extensionPeriod: this.extensionPeriod,
}) })
this.$message[data.status === 200 ? 'success' : 'error'](data.message) this.$message[data.status === 200 ? 'success' : 'error'](data.message)
//
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId: 866, emptyOne: '', emptyTwo: '', operationIds: preId + ',866', type: '' }],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500) setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
}, },

@ -29,16 +29,19 @@
</el-table-column> </el-table-column>
<el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center"> <el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center">
</el-table-column> </el-table-column>
<el-table-column v-if="index === '3'" prop="currency" key="3" label="展期期限" align="center"> <el-table-column v-if="index === '3'" prop="extensionPeriod" key="3" label="展期期限" align="center">
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="250"> <el-table-column label="操作" align="center" width="250">
<template v-if="scope.row.personalLoanId > 0" slot-scope="scope"> <template slot-scope="scope">
<!-- 没加合同的才能编辑 --> <!-- 没加合同的才能编辑 -->
<el-button @click="toDetail(scope.row, 1)" size="small">{{ scope.row.contractNo !== '——' ? '查看' : '编辑' <el-button @click="toDetail(scope.row, 1)" size="small" :disabled="scope.row.personalLoanId < 0">{{
scope.row.contractNo !== '——' ? '查看' : '编辑'
}}</el-button> }}</el-button>
<template v-if="scope.row.personalLoanId > 0">
<el-button v-if="!scope.row.renewalOrNot" @click="toDetail(scope.row, 2)" size="small">展期</el-button> <el-button v-if="!scope.row.renewalOrNot" @click="toDetail(scope.row, 2)" size="small">展期</el-button>
<el-button @click="repayment(scope.row)" size="small">还款计划</el-button> <el-button @click="repayment(scope.row)" size="small">还款计划</el-button>
</template> </template>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
@ -193,9 +196,6 @@ export default {
}, },
toDetail (row, show) { toDetail (row, show) {
this.$router.push(`/counter/list/manage/personalLoans-detail?show=${show === 2 ? 2 : row.contractNo !== '——' ? 1 : ''}&id=${row.personalLoanId}`) this.$router.push(`/counter/list/manage/personalLoans-detail?show=${show === 2 ? 2 : row.contractNo !== '——' ? 1 : ''}&id=${row.personalLoanId}`)
},
back (row) {
}, },
// //
async repayment (row) { async repayment (row) {

@ -35,6 +35,7 @@ const Setting = {
* sessionStorage里username的key * sessionStorage里username的key
*/ */
usernameKey: 'bank_username', usernameKey: 'bank_username',
isDev: process.env.NODE_ENV === 'development',
/** /**
* 系统id * 系统id
*/ */

@ -2811,6 +2811,7 @@ export default {
creditIds: {}, creditIds: {},
creditImportIndex: 0, creditImportIndex: 0,
creditImportIds: {}, creditImportIds: {},
}, },
mutations: { mutations: {
// 设置tipDialog组件提示的信息。这个组件是根据UI设计的。 // 设置tipDialog组件提示的信息。这个组件是根据UI设计的。

@ -112,9 +112,11 @@ const ismoney = function (val, row, prop) {
if (val.length === 15) { if (val.length === 15) {
return return
} }
// debugger
// const reg = /([1-9]\d{0,9}|0)(\.\d{1,2})?$/ // 不用保留 // const reg = /([1-9]\d{0,9}|0)(\.\d{1,2})?$/ // 不用保留
const reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; // 保留小数点后两位 const reg2 = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; // 保留小数点后两位
if (reg2.test(Number(val)) || val === '') { if (reg2.test(Number(val)) || val === '') {
console.log(44)
row[prop] = val row[prop] = val
} }
} }

Loading…
Cancel
Save