个人贷款

20240205
yujialong 5 months ago
parent faccbdd5f7
commit 921cf1f228
  1. 16
      src/api/http.js
  2. 1
      src/components/dialog/index.vue
  3. 178
      src/pages/manage/list/corporateLoans/management.vue
  4. 343
      src/pages/manage/list/personalLoans/detail.vue
  5. 248
      src/pages/manage/list/personalLoans/list.vue

@ -51,17 +51,8 @@ export const creditEvaluationInput = data => {
return post('/judgment/bankCreditEvaluation/creditEvaluationInput', data)
}
export const loanContractDel = data => {
return post('/judgment/bankLoanContractInfo/batchDeletion', data)
}
export const loanContractFind = id => {
return post('/judgment/bankLoanContractInfo/findById?id=' + id)
}
export const loanContractList = (data) => {
return post('/judgment/bankLoanContractInfo/pagingQuery', data)
}
export const loanContractSave = (data) => {
return post('/judgment/bankLoanContractInfo/saveOrUpdate', data)
return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data)
}
export const personalBasicDel = data => {
@ -71,8 +62,11 @@ export const personalBasicFind = id => {
return post('/judgment/bankPersonalBasicInfo/findById?id=' + id)
}
export const personalBasicList = (data) => {
return post('/judgment/bankPersonalBasicInfo/pagingQuery', data)
return post('/judgment/bankPersonalBasicInfo/personageLoanList', data)
}
export const personalBasicSave = (data) => {
return post('/judgment/bankPersonalBasicInfo/saveOrUpdate', data)
}
export const grantALoan = (data) => {
return post(`/judgment/bankPersonalLoanContractInfo/grantALoan?contractId=${data.id}&disbursementDate=${data.disbursementDate}`)
}

@ -101,6 +101,7 @@ const obj = {
'agent/waterRate': '代收水费',
'agent/electricRate': '代收电费',
'agent/telRate': '代收电话费',
'personalLoans/detail': '新建个人贷款',
'spacial': '提交'
}

@ -4,94 +4,54 @@
<my-title :titleArr="['公司贷款', '贷后管理']" />
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword"
placeholder="请输入客户姓名"
clearable />
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-table max-height="350"
ref="filterTable"
:data="list"
:header-cell-style="headerCellStyle"
<el-table max-height="350" ref="filterTable" :data="list" :header-cell-style="headerCellStyle"
:row-class-name="tableRowClassName">
<el-table-column prop="currency"
label="客户姓名"
align="center">
<el-table-column prop="currency" label="客户姓名" align="center">
</el-table-column>
<el-table-column prop="currency"
label="贷款编号"
align="center">
<el-table-column prop="currency" label="贷款编号" align="center">
</el-table-column>
<el-table-column prop="currency"
label="贷款状态"
align="center">
<el-table-column prop="currency" label="贷款状态" align="center">
</el-table-column>
<el-table-column prop="currency"
label="五级分类"
align="center">
<el-table-column prop="currency" label="五级分类" align="center">
</el-table-column>
<el-table-column prop="currency"
label="处理结果"
align="center">
<el-table-column prop="currency" label="处理结果" align="center">
</el-table-column>
<el-table-column prop="currency"
label="处理日期"
align="center">
<el-table-column prop="currency" label="处理日期" align="center">
</el-table-column>
<el-table-column prop="currency"
label="还款状态"
align="center">
<el-table-column prop="currency" label="还款状态" align="center">
</el-table-column>
<el-table-column prop="currency"
label="欠款金额"
align="center">
<el-table-column prop="currency" label="欠款金额" align="center">
</el-table-column>
<el-table-column label="操作"
align="center"
width="360">
<el-table-column label="操作" align="center" width="360">
<template slot-scope="scope">
<el-button @click="collection(scope.row)"
size="small">催收</el-button>
<el-button @click="postLoan(scope.row)"
size="small">贷后调查</el-button>
<el-button @click="npl(scope.row)"
size="small">不良贷款</el-button>
<el-button @click="badDebt(scope.row)"
size="small">呆账认定</el-button>
<el-button @click="collection(scope.row)" size="small">催收</el-button>
<el-button @click="postLoan(scope.row)" size="small">贷后调查</el-button>
<el-button @click="npl(scope.row)" size="small">不良贷款</el-button>
<el-button @click="badDebt(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="page"
@current-change="handleCurrentChange"
:total="total"></el-pagination>
<el-pagination background layout="total, prev, pager, next" :current-page="page"
@current-change="handleCurrentChange" :total="total"></el-pagination>
</div>
<el-dialog :visible="visible"
append-to-body
style="z-index: 6000;"
:close-on-click-modal="true"
:show-close="false"
<el-dialog :visible="visible" append-to-body style="z-index: 6000;" :close-on-click-modal="true" :show-close="false"
custom-class="dia">
<div class="data-dia23">
<div slot="title"
class="dia-header">
<div slot="title" class="dia-header">
<div class="data-title">提示</div>
</div>
<div class="popBody">
<p v-if="curMsg >= 0"
class="text-lg"
style="color: #333">{{ msgs[curMsg] }}</p>
<p v-if="curMsg >= 0" class="text-lg" style="color: #333">{{ msgs[curMsg] }}</p>
<el-row v-else
style="width: 100%">
<el-form class="dia-form"
label-width="130px"
label-suffix=":">
<el-row v-else style="width: 100%">
<el-form class="dia-form" label-width="130px" label-suffix="">
<el-col :span="12">
<el-form-item label="客户名称">
<p class="text">炳胜集团</p>
@ -116,105 +76,71 @@
</div>
<div class="popBtns">
<el-button v-if="curMsg < 2"
class="close btn hover:bg-blue-100 "
@click="visible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="msgSubmit"> </el-button>
<el-button v-if="curMsg < 2" class="close btn hover:bg-blue-100 " @click="visible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="msgSubmit"> </el-button>
</div>
</div>
</el-dialog>
<el-dialog :visible="formVisible"
append-to-body
style="z-index: 6000;"
:close-on-click-modal="true"
:show-close="false"
custom-class="dia">
<el-dialog :visible="formVisible" append-to-body style="z-index: 6000;" :close-on-click-modal="true"
:show-close="false" custom-class="dia">
<div class="data-dia23">
<div slot="title"
class="dia-header">
<div slot="title" class="dia-header">
<div class="data-title">贷后调查</div>
</div>
<h6>调查日期2024-04-02</h6>
<el-row style="width: 100%">
<el-form class="dia-form"
label-width="130px"
label-suffix=":"
label-position="top">
<el-form class="dia-form" label-width="130px" label-suffix="" label-position="top">
<el-col :span="24">
<el-form-item label="客户基本状态变化">
<el-input type="textarea"
:rows="2"
v-model="textarea">
<el-input type="textarea" :rows="2" v-model="textarea">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="信贷业务和还本付息情况变化">
<el-select v-model="form.goldLogo"
placeholder="请选择">
<el-option v-for="item in selects"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="偿债能力">
<el-select v-model="form.goldLogo"
placeholder="请选择">
<el-option v-for="item in selects"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="担保状况不利变化">
<el-select v-model="form.goldLogo"
placeholder="请选择">
<el-option v-for="item in selects"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="经营状况">
<el-select v-model="form.goldLogo"
placeholder="请选择">
<el-option v-for="item in selects"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="信用状况">
<el-select v-model="form.goldLogo"
placeholder="请选择">
<el-option v-for="item in selects"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="五级分类">
<el-select v-model="form.goldLogo"
placeholder="请选择">
<el-option v-for="item in selects"
:label="item.options"
:value="item.itemId"
:key="item.itemId"> </el-option>
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="结论 建议">
<el-input type="textarea"
:rows="2"
v-model="textarea">
<el-input type="textarea" :rows="2" v-model="textarea">
</el-input>
</el-form-item>
</el-col>
@ -223,11 +149,8 @@
</div>
<div class="popBtns">
<el-button class="close btn hover:bg-blue-100 "
@click="formVisible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 "
type="primary"
@click="msgSubmit"> </el-button>
<el-button class="close btn hover:bg-blue-100 " @click="formVisible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="msgSubmit"> </el-button>
</div>
</el-dialog>
</div>
@ -331,6 +254,7 @@ export default {
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
@import '@/styles/dialog.scss';
.body {
width: 100%;
padding: 24px;

@ -3,23 +3,24 @@
<div class="wrap">
<MyTitle :titleArr="['个人贷款', '新增贷款申请']" />
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="120px" :rules="rules">
<template v-if="curStep === 1 || isDetail">
<el-form v-if="curStep === 1 || isDetail" ref="basicForm" :model="basicForm" label-width="120px"
:rules="basicRules" :disabled="isDetail">
<el-col :span="24">
<h6 class="l-title">基本信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="证件类型" prop="idType">
<el-select v-model.trim="form.idType" placeholder="请选择" disabled>
<el-select v-model.trim="basicForm.idType" placeholder="请选择" disabled>
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item>
<el-form-item label="客户姓名" prop="customerName">
<el-input disabled v-model="form.customerName" @input="(val) => checkName(val, form, 'customerName')" />
<el-form-item label="客户姓名" required>
<el-input disabled v-model="basicForm.customerName"
@input="(val) => checkName(val, form, 'customerName')" />
</el-form-item>
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker disabled v-model.trim="form.birthDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd">
<el-form-item label="出生日期" prop="birthDate" required>
<el-date-picker disabled v-model.trim="basicForm.birthDate" type="date" placeholder="选择日期"
format="yyyy-MM-dd" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
@ -29,11 +30,11 @@
<p>请刷身份证</p>
</div>
<div v-else>
<el-input v-model="form.idNumber" disabled ref="idNumber" />
<el-input v-model="basicForm.idNumber" disabled ref="idNumber" />
</div>
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model.trim="form.gender" disabled placeholder="请选择">
<el-select v-model.trim="basicForm.gender" disabled placeholder="请选择">
<el-option :key="1" label="男" :value="1">
</el-option>
<el-option :key="2" label="女" :value="2">
@ -42,8 +43,8 @@
</el-form-item>
<el-form-item label="联系电话" prop="phoneNumber">
<el-input v-model="form.phoneNumber" @input="(val) => phoneListen(val, form, 'phoneNumber')"
maxlength="11" />
<el-input v-model="basicForm.phoneNumber" @input="(val) => phoneListen(val, form, 'phoneNumber')"
maxlength="11" ref="phoneNumber" />
</el-form-item>
</el-col>
@ -53,18 +54,18 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="岗位">
<el-input v-model="form.position" />
<el-input v-model="basicForm.position" />
</el-form-item>
<el-form-item label="当前单位工作年限" label-width="150px">
<el-input v-model="form.currentWorkYears" />
<el-input v-model="basicForm.currentWorkYears" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="薪酬">
<el-input v-model="form.salary" />
<el-input v-model="basicForm.salary" />
</el-form-item>
<el-form-item label="工龄">
<el-input v-model="form.totalWorkYears" />
<el-input v-model="basicForm.totalWorkYears" />
</el-form-item>
</el-col>
@ -74,109 +75,133 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="产权人">
<el-input v-model="form.propertyOwner" />
<el-input v-model="basicForm.propertyOwner" />
</el-form-item>
<el-form-item label="共有情况">
<el-input v-model="form.coOwnership" />
<el-input v-model="basicForm.coOwnership" />
</el-form-item>
<el-form-item label="权利性质">
<el-input v-model="form.propertyRightNature" />
<el-input v-model="basicForm.propertyRightNature" />
</el-form-item>
<el-form-item label="使用期限">
<el-input v-model="form.usagePeriodStart" />
<el-input v-model="basicForm.usagePeriod" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="房产证号">
<el-input v-model="form.propertyCertificateNo" />
<el-input v-model="basicForm.propertyCertificateNo" />
</el-form-item>
<el-form-item label="坐落">
<el-input v-model="form.location" />
<el-input v-model="basicForm.location" />
</el-form-item>
<el-form-item label="面积">
<el-input v-model="form.area" />
<el-input v-model="basicForm.area" />
</el-form-item>
<el-form-item label="申请日期" prop="applicationDate">
<el-date-picker v-model="basicForm.applicationDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" ref="applicationDate">
</el-date-picker>
</el-form-item>
</el-col>
</template>
</el-form>
<template v-if="curStep !== 1 || isDetail">
<el-form v-if="curStep !== 1 || isDetail" ref="form" :model="form" label-width="120px" :rules="rules"
:disabled="isDetail">
<el-col :span="24">
<div class="line"></div>
<h6 class="l-title">贷款合同</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="贷款类型">
<el-input v-model="form.customerName" />
<el-input value="个人住房贷款" disabled />
</el-form-item>
<el-form-item label="合同金额">
<el-input v-model="form.customerName" />
<el-form-item label="合同金额" prop="contractAmount">
<el-input v-model="form.contractAmount" />
</el-form-item>
<el-form-item label="起息日期" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="起息日期" prop="interestStartDate">
<el-date-picker v-model="form.interestStartDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" @change="interestStartDateChange"></el-date-picker>
</el-form-item>
<el-form-item label="计息方式" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="计息方式">
<el-input value="按年浮动计息" disabled />
</el-form-item>
<el-form-item label="浮动比例" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="浮动比例" prop="interestRateFloat">
<el-input value="1%" disabled />
</el-form-item>
<el-form-item label="逾期利率" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="30%" disabled />
</el-form-item>
<el-form-item label="还款方式" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<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-select>
</el-form-item>
<el-form-item label="还款账号" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="还款账号" prop="repaymentAccount">
<el-input v-model="form.repaymentAccount" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="合同编号" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="合同编号" prop="contractNo">
<el-input v-model="form.contractNo" disabled />
</el-form-item>
<el-form-item label="贷款期限" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="贷款期限" prop="loanTerm">
<el-select v-model="form.loanTerm" placeholder="请选择">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到期日期" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="到期日期" prop="maturityDate">
<el-date-picker v-model="form.maturityDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" disabled></el-date-picker>
</el-form-item>
<el-form-item label="基准利率" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="基准利率" prop="baseInterestRate">
<el-input value="4.30%" disabled />
</el-form-item>
<el-form-item label="执行利率" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="执行利率" prop="executedInterestRate">
<el-input value="4.30%" disabled />
</el-form-item>
<el-form-item label="担保方式" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-input value="抵押" disabled />
</el-form-item>
<el-form-item label="利息总额" prop="customerName">
<el-input ref="customerName" v-model="form.customerName"></el-input>
<el-form-item label="利息总额" prop="interestTotal">
<el-input v-model="form.interestTotal" />
</el-form-item>
</el-col>
</template>
</el-form>
</el-row>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" depositNumber='0816' />
@submitIt="saveContract" depositNumber='0816' />
<div class="text-center">
<el-button @click="next" type="primary" class="submitBtn" v-throttle>{{ curStep === 1 ? '下一步' : '提交'
<template v-if="isDetail">
<el-button @click="showLoan" type="primary" class="submitBtn" v-throttle>放款</el-button>
<el-button @click="$router.back()" type="primary" class="submitBtn" v-throttle>关闭</el-button>
</template>
<el-button v-else @click="next" type="primary" class="submitBtn" v-throttle>{{ curStep === 1 ? '下一步' : '提交'
}}</el-button>
</div>
<el-dialog title="放款" :visible.sync="loanVisible" width="300px" z-index="6000" :append-to-body="true">
<el-date-picker v-model="disbursementDate" type="date" placeholder="请选择放款日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" style="width: 100%;"></el-date-picker>
<span slot="footer" class="dialog-footer">
<el-button @click="loanVisible = false">取消</el-button>
<el-button type="primary" @click="loanSubmit">确定</el-button>
</span>
</el-dialog>
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<script>
import { phoneListen, myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
import { addOperation, personalBasicSave } from '@/api/http'
import { addOperation, personalBasicSave, loanContractSave, personalBasicFind, grantALoan } from '@/api/http'
import Util from '@/libs/util'
const moduleName = 'usefulPhrases/openAccount'
const moduleName = 'personalLoans/detail'
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
import MyTitle from '@/components/myTitle'
export default {
name: '',
@ -186,18 +211,15 @@ export default {
MyTitle,
MyDialog
},
mixins: [TipsBefore],
created () {
this.getFormData()
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
isDetail: +this.$route.query.show,
moduleName,
isDetail: !!this.$route.query.show,
id: this.$route.query.id,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
basicForm: {
idType: 83,
idNumber: '',
customerName: '',
@ -214,10 +236,11 @@ export default {
location: '',
propertyRightNature: '',
area: '',
usagePeriodStart: '',
usagePeriod: '',
usagePeriodEnd: '',
applicationDate: new Date()
},
formName: {
basicFormName: {
idType: '证件类型',
idNumber: '证件号码',
customerName: '证件号码',
@ -234,14 +257,88 @@ export default {
location: '坐落',
propertyRightNature: '权利性质',
area: '面积',
usagePeriodStart: '使用期限',
usagePeriod: '使用期限',
applicationDate: '申请日期'
},
rules: {
basicRules: {
customerName: vercustomer,
birthday: [
phoneNumber: [
{
required: true,
message: '请选择出生日期',
message: '请输入联系电话',
trigger: 'blur'
},
],
applicationDate: [
{
required: true,
message: '请选择申请日期',
trigger: 'change'
}
],
},
loanTerms: [
{
id: 120,
name: '120个月'
},
{
id: 240,
name: '240个月'
},
{
id: 360,
name: '360个月'
},
],
form: {
contractNo: '',
contractAmount: '',
loanTerm: 120,
interestStartDate: '',
maturityDate: '',
propertyCertificateNo: '',
repaymentMethod: '',
interestTotal: '',
repaymentAccount: '',
},
formName: {
contractNo: '合同编号',
contractAmount: '合同金额',
loanTerm: '贷款期限',
interestStartDate: '起息日期',
maturityDate: '到期日期',
repaymentMethod: '还款方式',
interestTotal: '利息总额',
repaymentAccount: '还款账号',
},
rules: {
contractAmount: [
{
required: true,
message: '请输入合同金额',
trigger: 'blur'
}
],
loanTerm: [
{
required: true,
message: '请选择贷款期限',
trigger: 'change'
}
],
interestStartDate: [
{
required: true,
message: '请选择起息日期',
trigger: 'change'
}
],
repaymentAccount: [
{
required: true,
message: '请输入还款账号',
trigger: 'blur'
}
],
@ -249,6 +346,8 @@ export default {
submited: 0,
curRoute: '',
curStep: 1,
disbursementDate: '',
loanVisible: false,
}
},
beforeDestroy () {
@ -257,9 +356,29 @@ export default {
mounted () {
this.curRoute = this.$route.path
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
this.getDetail()
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate',
setCreditIds: 'system/setCreditIds',
}),
//
async getDetail () {
if (this.id) {
//
const { data } = await personalBasicFind(this.id)
this.basicForm = data.data
this.form = data.data.bankPersonalLoanContractInfo
} else if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
//
sessionStorage.removeItem('nomUsefulPhrasesOpenCard2')
this.idNumberJudge = true
this.form = {
this.basicForm = {
idType: 83,
idNumber: '220602199202281229',
customerName: '丛小风',
@ -276,40 +395,76 @@ export default {
location: '前海新区深圳湾一号1612',
propertyRightNature: '出让/商品房',
area: '建筑面积: 189平方米',
usagePeriodStart: '70年,2018.3.15 至 2088.3.14 止',
usagePeriod: '70年,2018.3.15 至 2088.3.14 止',
usagePeriodEnd: '',
}
}
},
methods: {
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
//
interestStartDateChange (val) {
if (val) {
const date = new Date(val)
date.setMonth(this.form.loanTerm)
this.form.maturityDate = Util.formatDate('yyyy-MM-dd', date)
}
},
//
async next () {
//
if (this.curStep < 2) {
const { basicForm } = this
if (!basicForm.idNumber) {
messageCard('请刷身份证')
return
}
this.$refs.basicForm.validate(myValidate(async () => {
try {
const res = personalBasicSave(form)
const { data } = await personalBasicSave(basicForm)
this.setCreditIds({
personalLoanId: data.personalLoanId,
applicationDate: data.applicationDate,
contractNo: data.contractNo,
})
this.curStep++
} catch { (e) => { } }
}, this.$refs))
} else {
//
this.$refs.form.validate(myValidate(() => {
this.visible = true
}, this.$refs))
}
},
getFormData () {
//
async saveContract () {
try {
const { form } = this
form.personalLoanId = this.creditIds.personalLoanId
form.contractNo = this.creditIds.contractNo
await loanContractSave(form)
this.$router.push('/counter/list/manage/personalLoans')
} catch { (e) => { } }
},
submitForm2 () {
showLoan () {
this.loanVisible = true
},
//
async loanSubmit () {
if (!this.disbursementDate) return this.$message.error('请选择放款日期!')
await grantALoan({
id: this.form.contractId,
disbursementDate: this.disbursementDate,
})
this.$message.success('放款成功!')
setTimeout(this.$router.back, 1500)
},
phoneListen,
checkName,
@ -320,8 +475,12 @@ export default {
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
getSelectList: 'system/getSelectList',
}),
// id
creditIds: function () {
return this.$store.state.system.creditIds
},
}
}
</script>

@ -1,101 +1,57 @@
<template>
<div>
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword"
placeholder="请输入客户姓名"
clearable />
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-button style="margin-bottom: 20px;"
type="primary"
@click="$router.push('/counter/list/manage/personalLoans-detail?show=0')">新建贷款申请</el-button>
<el-table ref="filterTable"
:data="list"
height="300"
:header-cell-style="headerCellStyle"
:row-class-name="tableRowClassName"
style="width: 95%">
<el-table-column prop="name"
label="客户姓名"
align="center"></el-table-column>
<el-table-column prop="serial"
label="合同编号"
align="center">
<el-button style="margin-bottom: 20px;" type="primary"
@click="$router.push('/counter/list/manage/personalLoans-detail?show=&id=')">新建贷款申请</el-button>
<el-table ref="filterTable" :data="list" height="300" :header-cell-style="headerCellStyle"
:row-class-name="tableRowClassName" style="width: 95%">
<el-table-column prop="customerName" label="客户姓名" align="center"></el-table-column>
<el-table-column prop="contractNo" label="合同编号" align="center">
</el-table-column>
<el-table-column prop="issueTeller"
label="贷款类型"
align="center">
<el-table-column prop="issueTeller" label="贷款类型" align="center">个人住房贷款</el-table-column>
<el-table-column prop="applicationDate" label="申请日期" align="center">
</el-table-column>
<el-table-column prop="receiveTeller"
label="申请日期"
align="center">
<el-table-column prop="approvalStatus" label="审批状态" align="center">
</el-table-column>
<el-table-column prop="currency"
label="审批状态"
align="center">
<el-table-column prop="contractAmount" label="贷款金额" align="center"></el-table-column>
<el-table-column prop="loanTerm" label="贷款期限" align="center">
</el-table-column>
<el-table-column label="贷款金额"
align="center"></el-table-column>
<el-table-column prop="currency"
label="贷款期限"
align="center">
<el-table-column prop="disbursementDate" label="放款日期" align="center">
</el-table-column>
<el-table-column prop="currency"
label="放款日期"
align="center">
<el-table-column prop="arrearsAmount" label="欠款金额" align="center">
</el-table-column>
<el-table-column prop="currency"
label="欠款金额"
align="center">
<el-table-column prop="repaymentMethod" label="还款方式" align="center">
</el-table-column>
<el-table-column prop="currency"
label="还款方式"
align="center">
<el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center">
</el-table-column>
<el-table-column prop="currency"
label="本月应还"
align="center">
<el-table-column prop="repaymentStatus" label="还款状态" key="2" align="center">
</el-table-column>
<el-table-column v-if="index !== '3'"
prop="currency"
key="1"
label="实际还款"
align="center">
<el-table-column v-if="index === '3'" prop="currency" key="3" label="展期期限" align="center">
</el-table-column>
<el-table-column prop="currency"
label="还款状态"
key="2"
align="center">
</el-table-column>
<el-table-column v-if="index === '3'"
prop="currency"
key="3"
label="展期期限"
align="center">
</el-table-column>
<el-table-column label="操作"
align="center"
width="150">
<el-table-column label="操作" align="center" width="150">
<template slot-scope="scope">
<el-button @click="toDetail(scope.row)"
size="small">查看</el-button>
<el-button @click="back(scope.row)"
size="small">展期</el-button>
<el-button @click="toDetail(scope.row)" size="small">查看</el-button>
<el-button @click="back(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="page"
@current-change="handleCurrentChange" :total="total"></el-pagination>
</div>
</div>
</template>
<script>
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import { getNowDate } from '@/utils/utilFunction'
import MyDialog from '@/components/dialogTwo'
import NeedBefore from '@/components/needBefore'
import { addOperation, getOperation } from '@/api/http';
import list from './list'
import { addOperation, personalBasicList } from '@/api/http';
const moduleName = 'controlCash/cashRecipients'
const moduleName = 'personalLoans/list'
import { mapMutations, mapGetters } from 'vuex'
export default {
name: 'index',
@ -108,152 +64,70 @@ export default {
return {
moduleName,
headerCellStyle: headerCellStyle,
list,
searchTimer: null,
list: [],
page: 1,
pageSize: 10,
total: 0,
keyword: '',
visible: false,
unNeed: false,
isNeedBefore: '',
needBefore: '',
text: '柜员现金轧账',/* 顶部文字 */
form: {
clickIt1: '', //
clickIt2: '',//
},
formName: {
clickIt1: '领用状态',
clickIt2: '退回状态',
},
tableData: [
{
// issueDate: new Date(),
organizationNumber: '1234100',
issueTeller: '002119',
receiveTeller: '002110',
currency: 'CNY人民币',
money: '490000.00'
},
],
visible: false,
submited: 0
}
},
filters: {
cashRule (cash) {
const arr = (cash + '').split('.')
if (arr.length === 1) {
return arr[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',') + '.' + '00'
} else {
return arr[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',') + '.' + arr[1];
}
},
dateRule (date) {
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
return y + '-' + m + '-' + d;
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
}
},
created () {
getOperation({
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,31,518,521"
}).then((data) => {
if (data.data.status === 500) {
return;
}
const { data: { judgmentRuleReqs } } = data;
if (judgmentRuleReqs.length > 0) {
const { answerId } = judgmentRuleReqs[0];
if (answerId == '525') {
this.form.clickIt1 = '已领用'
} else {
this.form.clickIt2 = '已退回'
}
}
})
mounted () {
this.initData()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
async getData () {
const { data } = await personalBasicList({
pageNum: this.page,
pageSize: this.pageSize,
customerName: this.keyword,
})
this.list = data.list.records
this.total = data.list.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val
this.getData()
},
toDetail (row) {
this.$router.push('/counter/list/manage/personalLoans-detail?show=1')
this.$router.push('/counter/list/manage/personalLoans-detail?show=1&id=' + row.personalLoanId)
},
back (row) {
if (this.form.clickIt1 === '已领用') {
this.$confirm('该项目只能选择将现金领用或退回现金,请问是否改为现金退回?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
center: true
}).then(() => {
this.form.clickIt2 = '已退回'
this.form.clickIt1 = ''
this.$message({
type: 'success',
message: '当前选择为退回现金!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消退回现金'
});
});
return
} else {
this.form.clickIt2 = '已退回'
}
},
submitClick () {
if (this.submited) return this.$message.error('已提交!')
this.visible = true
tableRowClassName,
},
submitForm2 () {
let projectId = sessionStorage.getItem('projectId')
let startTime = sessionStorage.getItem('startTime')
const formList = []
if (this.form.clickIt1 === '已领用') {
formList.push({ "answerId": '525', "emptyOne": "", "emptyTwo": "", "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,31,518,521,525", "type": "" })
// formList.push()
}
if (this.form.clickIt2 === '已退回') {
formList.push({ "answerId": '526', "emptyOne": "", "emptyTwo": "", "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ",287,5,31,518,521,526", "type": "" })
}
let params = {
parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,31,518,521',
lcJudgmentRuleReq: formList,
projectId: +projectId,
startTime: startTime,
}
addOperation(params).then((data) => {
// this.$message({
// message: '',
// type: 'success'
// });
this.setNeedsModule(moduleName)
this.submited = 1
// this.setDataFlow({ ...this.form })
}).catch((error) => {
})
},
tableRowClassName: tableRowClassName,
getNowDate
},
computed: {
...mapGetters({
needsModule: 'system/needsModule',
inMyWork: 'system/inMyWork',
})
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.wrap {
width: 100%;
.body {
margin-top: 20px !important;
}

Loading…
Cancel
Save