贷款业务联调

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

@ -48,46 +48,53 @@ export const reportDetail = (reportId) => {
})
}
export const creditEvaluationInput = data => {
return post(`${host}/judgment/bankCreditEvaluation/creditEvaluationInput`, data)
return post(`/judgment/bankCreditEvaluation/creditEvaluationInput`, data)
}
export const creditEvaluationDetails = data => {
return post(`${host}/judgment/bankCreditEvaluation/creditEvaluationDetails`, data)
return post(`/judgment/bankCreditEvaluation/creditEvaluationDetails`, data)
}
export const loanApplicationInput = data => {
return post(`${host}/judgment/bankLoanApplication/loanApplicationInput`, data)
return post(`/judgment/bankLoanApplication/loanApplicationInput`, data)
}
export const loanApplicationDetails = data => {
return post(`${host}/judgment/bankLoanApplication/loanApplicationDetails`, data)
return get(`/judgment/bankLoanApplication/loanApplicationDetails`, data)
}
export const creditApplicationInput = data => {
return post(`${host}/judgment/bankCreditApplication/creditApplicationInput`, data)
return post(`/judgment/bankCreditApplication/creditApplicationInput`, data)
}
export const creditApplicationDetails = data => {
return post(`${host}/judgment/bankCreditApplication/creditApplicationDetails`, data)
return post(`/judgment/bankCreditApplication/creditApplicationDetails`, data)
}
export const companyLoanList = data => {
return post(`${host}/judgment/bankCompanyLoans/companyLoanList`, data)
return post(`/judgment/bankCompanyLoans/companyLoanList`, data)
}
export const companyLoanDetails = id => {
return get(`${host}/judgment/bankCompanyLoans/companyLoanDetails?companyLoanId=${id}`)
return get(`/judgment/bankCompanyLoans/companyLoanDetails?companyLoanId=${id}`)
}
export const loanDisbursement = data => {
return post(`${host}/judgment/bankCompanyLoans/loanDisbursement`, data)
return post(`/judgment/bankCompanyLoans/loanDisbursement`, data)
}
export const loanCollection = data => {
return post(`${host}/judgment/bankCompanyLoans/loanCollection`, data)
return post(`/judgment/bankCompanyLoans/loanCollection`, data)
}
export const nonPerformingLoans = data => {
return post(`${host}/judgment/bankCompanyLoans/nonPerformingLoans`, data)
return post(`/judgment/bankCompanyLoans/nonPerformingLoans`, data)
}
export const badDebtRecognition = data => {
return post(`${host}/judgment/bankCompanyLoans/badDebtRecognition`, data)
return post(`/judgment/bankCompanyLoans/badDebtRecognition`, data)
}
export const postLoanInvestigationInput = data => {
return post(`${host}/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data)
return post(`/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, 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) => {

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

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

@ -133,6 +133,76 @@ const util = {
errorMsg (message, duration = 3000) {
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

@ -15,10 +15,10 @@
<el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" 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">
<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>
</el-table-column>
</el-table>

@ -38,7 +38,8 @@
<el-input v-model="form.contactPhoneNumber" disabled />
</el-form-item>
<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>
</el-input>
</el-form-item>
@ -238,6 +239,7 @@
</div>
</template>
<script>
import { inputListen } from '@/utils/utilFunction.js'
import { addOperation, creditApplicationInput } from '@/api/http'
import { mapState, mapMutations } from 'vuex'
export default {
@ -299,6 +301,7 @@ export default {
},
methods: {
...mapMutations('system', ['setCreditImportIndex', 'initCreditImportIds']),
inputListen,
//
async getDetail () {
this.initCreditImportIds({
@ -330,11 +333,48 @@ export default {
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.creditImportIds,
...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.$parent.active = '3'
this.$parent.curStep = 0

@ -92,7 +92,7 @@
</div>
</template>
<script>
import { inputListen, messageCard } from '@/utils/utilFunction.js';
import { inputListen } from '@/utils/utilFunction.js'
import { addOperation, creditEvaluationInput } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex'
export default {
@ -166,15 +166,20 @@ export default {
//
async next () {
const { form } = this
if (!form.applicationAccount) {
messageCard('请填写账号')
return
}
if (!form.applicationAccount) return this.$message.error('请填写账号!')
try {
const { data } = await creditEvaluationInput({
...this.$store.getters['system/commonIds'],
...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
this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid

@ -68,22 +68,28 @@ export default {
this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12)
},
next () {
async next () {
const form = this.creditImportIds
if (!form.importBalanceSheet) {
return this.setTipsOperate('请导入资产负债表')
}
if (!form.importIncomeStatement) {
return this.setTipsOperate('请导入损益表')
}
if (!form.importCashFlowStatement) {
return this.setTipsOperate('请导入现金流量表')
}
if (!form.importBalanceSheet) return this.$message.error('请导入资产负债表!')
if (!form.importIncomeStatement) return this.$message.error('请导入损益表!')
if (!form.importCashFlowStatement) return this.$message.error('请导入现金流量表!')
try {
creditEvaluationInput({
await creditEvaluationInput({
...this.creditIds,
...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)
} catch { (e) => { } }
},

@ -198,6 +198,12 @@ export default {
submited: 0
}
},
computed: {
// id
creditIds: function () {
return this.$store.state.system.creditIds
},
},
mounted () {
},
@ -205,28 +211,37 @@ export default {
async next () {
this.$refs.form.validate(myValidate(async () => {
try {
const { form } = this
await creditEvaluationInput({
...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)
} catch { (e) => { } }
}, 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>
<style lang='scss' scoped>

@ -2,11 +2,11 @@
<template>
<div>
<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">
<h6 class="l-title">等级评定</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-col :span="12">
<el-form-item label="盈利记录" required>
<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>
@ -201,9 +201,30 @@ export default {
methods: {
async submit () {
try {
const { data } = await creditEvaluationInput({
const { form } = this
await creditEvaluationInput({
...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.$parent.active = '2'

@ -42,7 +42,7 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled />
<el-input v-model="form.creditAmount" />
</el-form-item>
</el-col>
@ -51,16 +51,19 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信年限" required>
<el-select v-model="form.creditTerm" placeholder="请选择">
<el-option v-for="(item, i) in opt1" :key="i" :label="item.name" :value="item.id"> </el-option>
<el-select v-model="form.creditTermOne" placeholder="请选择">
<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="贷款申请金额" 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 label="发放方式" required>
<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-form-item>
</el-col>
@ -70,9 +73,15 @@
</el-form-item>
<el-form-item label="还款方式" required>
<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-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-form>
</el-row>
@ -83,11 +92,14 @@
</div>
</template>
<script>
import { inputListen } from '@/utils/utilFunction.js'
import { addOperation, loanApplicationInput } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex'
import Util from '@/libs/util'
export default {
data () {
return {
Util,
form: {
applicationNumber: '913403005685450862',
customerName: '袋鼠互联网科技有限公司',
@ -98,72 +110,48 @@ export default {
corporateIdNumber: '220602199202281229',
creditRating: 'AAAA',
creditAmount: 'RMB12,000,000.00',
creditTerm: 231,
creditAmount: '12,000,000.00',
creditTermOne: 231,
annualizedInterestRate: '',
loanApplicationAmount: '',
repaymentMethodOne: 235,
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 () {
console.log(11, this.$store.state.system)
},
methods: {
...mapMutations({
setCreditIds: 'system/setCreditIds',
}),
inputListen,
async next () {
const { form } = this
if (!form.loanApplicationAmount) return this.$message.error('请填写贷款申请金额!')
if (+form.loanApplicationAmount > 12000000) return this.$message.error('贷款申请金额应不大于授信金额!') //
try {
const { data } = await loanApplicationInput({
...this.$store.getters['system/commonIds'],
...form,
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
this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid

@ -27,7 +27,8 @@
</el-form-item>
<el-form-item label="担保方式" required>
<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-form-item>
<el-form-item label="利息总额">
@ -41,9 +42,14 @@
<el-form-item label="合同编号" prop="contractNo">
<el-input v-model="form.contractNo" disabled />
</el-form-item>
<el-form-item label="授信期限">
<el-select v-model="form.creditTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option label="3年" :value="3"></el-option>
<el-form-item label="授信年限">
<el-select v-model="form.creditTermTwo" placeholder="请选择">
<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-form-item>
<el-form-item label="到期日期">
@ -58,7 +64,8 @@
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethodTwo">
<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-form-item>
<el-form-item label="贷款金额">
@ -74,14 +81,17 @@
</div>
</template>
<script>
import { addOperation, loanApplicationInput } from '@/api/http'
import { addOperation, loanApplicationInput, loanApplicationDetails } from '@/api/http'
import Util from '@/libs/util'
export default {
data () {
return {
Util,
creditIds: this.$store.state.system.creditIds,
form: {
valueDate: '',
creditTerm: 3,
creditTermTwo: 231,
loanTerm: 120,
guaranteeMethod: 242,
expirationDate: '',
totalInterestAmount: '',
@ -91,38 +101,31 @@ export default {
interestTotal: '',
repaymentAccount: '',
},
opt1: [
{
id: 242,
name: '质押'
},
{
id: 243,
name: '抵押'
},
],
opt2: [
{
id: 235,
name: '等额本金'
},
{
id: 236,
name: '等额本息'
},
],
}
},
mounted () {
this.getDetail()
},
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 () {
const { valueDate, creditTerm } = this.form
if (valueDate && creditTerm) {
const { valueDate, loanTerm } = this.form
if (valueDate && loanTerm) {
const date = new Date(valueDate)
date.setFullYear(date.getFullYear() + creditTerm)
date.setMonth(date.getMonth() + loanTerm)
this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
}
},
@ -135,6 +138,26 @@ export default {
...this.$store.state.system.creditIds,
...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.$router.back()
} catch { (e) => { } }

@ -3,7 +3,7 @@
<div class="wrap">
<MyTitle :titleArr="['公司贷款', '贷款详情']" />
<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">
<h6 class="l-title">信用评估</h6>
</el-col>
@ -54,13 +54,15 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信年限">
<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-select v-model="bankLoanApplication.creditTermOne" placeholder="请选择">
<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="还款方式">
<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-form-item>
</el-col>
@ -70,7 +72,8 @@
</el-form-item>
<el-form-item label="发放方式">
<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-form-item>
</el-col>
@ -100,7 +103,8 @@
</el-form-item>
<el-form-item label="担保方式">
<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-form-item>
<el-form-item label="利息总额">
@ -109,6 +113,11 @@
<el-form-item label="还款账号">
<el-input v-model="bankLoanApplication.repaymentAccount" />
</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 :span="10" :offset="1">
<el-form-item label="合同编号" prop="contractNo">
@ -119,6 +128,11 @@
<el-option label="3年" :value="3"></el-option>
</el-select>
</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-date-picker v-model="bankLoanApplication.expirationDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" disabled></el-date-picker>
@ -131,7 +145,8 @@
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethodOne">
<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-form-item>
<el-form-item label="贷款金额">
@ -158,14 +173,16 @@
</div>
</template>
<script>
import { loanDisbursement, companyLoanDetails } from '@/api/http'
import { loanDisbursement, companyLoanDetails, addOperation } from '@/api/http'
import MyTitle from '@/components/myTitle'
import Util from '@/libs/util'
export default {
components: {
MyTitle,
},
data () {
return {
Util,
id: this.$route.query.id,
form: {
applicationAccount: '',
@ -190,58 +207,6 @@ export default {
financialReportSubmissionMethod: '',
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: '',
loanVisible: false,
bankCompanyLoans: {},
@ -265,6 +230,9 @@ export default {
if (app.repaymentMethodOne) app.repaymentMethodOne = +app.repaymentMethodOne
if (app.creditTerm) app.creditTerm = +app.creditTerm
if (app.guaranteeMethod) app.guaranteeMethod = +app.guaranteeMethod
if (app.loanTerm) app.loanTerm = +app.loanTerm
if (app.creditTermOne) app.creditTermOne = +app.creditTermOne
this.bankLoanApplication = app
}
},
@ -279,7 +247,17 @@ export default {
companyLoanId: this.id,
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.loanVisible = false
this.getDetail()
},
},
}

@ -11,14 +11,14 @@
<el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" 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">
<template slot-scope="scope">{{ scope.row.loanDate ? '已放款' : '待放款' }}</template>
</el-table-column>
<el-table-column label="操作" align="center" width="150">
<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>
</el-table-column>
</el-table>

@ -148,7 +148,7 @@
<script>
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 Util from '@/libs/util'
export default {
@ -298,6 +298,7 @@ export default {
const { form } = this
if (!form.stateChange) return this.$message.error('请填写客户基本状态变化!')
await postLoanInvestigationInput(form)
this.submitPoint(841)
this.postLoanVisible = false
},
@ -325,6 +326,7 @@ export default {
})
this.getData()
this.curMsg = 2
this.submitPoint(840)
} else if (this.curMsg < 0) {
this.curMsg = 1
} else if (this.curMsg === 1) {
@ -334,17 +336,28 @@ export default {
await nonPerformingLoans({
companyLoanId: this.curRow.companyLoanId
})
this.submitPoint(842)
} else {
//
await badDebtRecognition({
companyLoanId: this.curRow.companyLoanId
})
this.submitPoint(843)
}
this.getData()
} else {
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>

@ -10,12 +10,15 @@
<el-table :data="list" stripe :header-cell-style="headerCellStyle">
<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 label="操作" align="center" width="150">
<el-table-column prop="totalRepaymentAmount" label="累计还款金额(万)" align="center" />
<el-table-column prop="applicationNumber" label="欠款金额(万)" align="center" />
<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">
<el-button @click="toDetail(scope.row)" size="small">详情</el-button>
<el-button size="small" @click="showExtension(scope.row)">展期</el-button>
<el-button @click="repayment(scope.row)" size="small">还款计划</el-button>
</template>
</template>
</el-table-column>
</el-table>
@ -35,12 +38,62 @@
<el-button type="primary" @click="extensionSubmit">确定</el-button>
</span>
</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>
</template>
<script>
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'
export default {
name: 'index',
@ -102,6 +155,20 @@ export default {
name: '10个月'
},
],
repaymentVisible: false,
repayments: [],
pageRepayment: 1,
pageSizeRepayment: 10,
totalRepayment: 0,
multipleSelection: [],
date: [],
form: {
periodEnd: '',
periodStart: '',
status: '',
},
curRow: {},
}
},
watch: {
@ -111,6 +178,16 @@ export default {
this.initData()
}, 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 () {
this.initData()
@ -152,9 +229,88 @@ export default {
})
this.$message.success('展期成功!')
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()
},
//
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>

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

@ -133,8 +133,8 @@
</el-form-item>
<el-form-item label="还款方式" prop="repaymentMethod">
<el-select v-model="form.repaymentMethod" placeholder="请选择">
<el-option label="等额本金" :value="1"></el-option>
<el-option label="等额本息" :value="2"></el-option>
<el-option label="等额本金" :value="235"></el-option>
<el-option label="等额本息" :value="236"></el-option>
</el-select>
</el-form-item>
<el-form-item label="还款账号" prop="repaymentAccount">
@ -253,7 +253,7 @@ export default {
area: '',
usagePeriod: '',
usagePeriodEnd: '',
applicationDate: new Date()
applicationDate: Util.formatDate('yyyy-MM-dd', new Date())
},
basicFormName: {
idType: '证件类型',
@ -295,14 +295,17 @@ export default {
loanTerms: [
{
pointId: 244,
id: 120,
name: '120个月'
},
{
pointId: 245,
id: 240,
name: '240个月'
},
{
pointId: 246,
id: 360,
name: '360个月'
},
@ -314,7 +317,7 @@ export default {
interestStartDate: '',
maturityDate: '',
propertyCertificateNo: '',
repaymentMethod: '',
repaymentMethod: 235,
interestTotal: '',
repaymentAccount: '',
},
@ -492,6 +495,32 @@ export default {
...this.$store.getters['system/commonIds'],
...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({
personalLoanId: data.personalLoanId,
applicationDate: data.applicationDate || this.form.applicationDate,
@ -519,6 +548,23 @@ export default {
...this.$store.getters['system/commonIds'],
...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)
} catch { (e) => { } }
},
@ -534,6 +580,16 @@ export default {
disbursementDate: this.disbursementDate,
})
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)
},
@ -549,6 +605,16 @@ export default {
extensionPeriod: this.extensionPeriod,
})
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)
},

@ -29,16 +29,19 @@
</el-table-column>
<el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center">
</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 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>
<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 @click="repayment(scope.row)" size="small">还款计划</el-button>
</template>
</template>
</el-table-column>
</el-table>
<div class="pagination">
@ -193,9 +196,6 @@ export default {
},
toDetail (row, show) {
this.$router.push(`/counter/list/manage/personalLoans-detail?show=${show === 2 ? 2 : row.contractNo !== '——' ? 1 : ''}&id=${row.personalLoanId}`)
},
back (row) {
},
//
async repayment (row) {

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

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

@ -112,9 +112,11 @@ const ismoney = function (val, row, prop) {
if (val.length === 15) {
return
}
// debugger
// 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])?$)/; // 保留小数点后两位
if (reg2.test(Number(val)) || val === '') {
console.log(44)
row[prop] = val
}
}

Loading…
Cancel
Save