贷款联调

20240205
yujialong 5 months ago
parent 317228af2d
commit 2de86fced4
  1. 36
      src/api/http.js
  2. 26
      src/pages/counter/list/index.vue
  3. 16
      src/pages/manage/index/index.vue
  4. 77
      src/pages/manage/list/corporateLoans/application.vue
  5. 580
      src/pages/manage/list/corporateLoans/apply/creditApplication/index.vue
  6. 37
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/basic.vue
  7. 64
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/importReport.vue
  8. 2
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/rating.vue
  9. 33
      src/pages/manage/list/corporateLoans/apply/index.vue
  10. 388
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  11. 397
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  12. 531
      src/pages/manage/list/corporateLoans/detail.vue
  13. 122
      src/pages/manage/list/corporateLoans/loan.vue
  14. 208
      src/pages/manage/list/corporateLoans/management.vue
  15. 137
      src/pages/manage/list/corporateLoans/repayment.vue
  16. 10
      src/pages/manage/list/personalLoans/detail.vue
  17. 146
      src/pages/manage/list/personalLoans/list.vue
  18. 44
      src/store/modules/system.js

@ -50,9 +50,42 @@ export const reportDetail = (reportId) => {
export const creditEvaluationInput = data => {
return post(`${host}/judgment/bankCreditEvaluation/creditEvaluationInput`, data)
}
export const creditEvaluationDetails = data => {
return post(`${host}/judgment/bankCreditEvaluation/creditEvaluationDetails`, data)
}
export const loanApplicationInput = data => {
return post(`${host}/judgment/bankLoanApplication/loanApplicationInput`, data)
}
export const loanApplicationDetails = data => {
return post(`${host}/judgment/bankLoanApplication/loanApplicationDetails`, data)
}
export const creditApplicationInput = data => {
return post(`${host}/judgment/bankCreditApplication/creditApplicationInput`, data)
}
export const creditApplicationDetails = data => {
return post(`${host}/judgment/bankCreditApplication/creditApplicationDetails`, data)
}
export const companyLoanList = data => {
return post(`${host}/judgment/bankCompanyLoans/companyLoanList`, data)
}
export const companyLoanDetails = id => {
return get(`${host}/judgment/bankCompanyLoans/companyLoanDetails?companyLoanId=${id}`)
}
export const loanDisbursement = data => {
return post(`${host}/judgment/bankCompanyLoans/loanDisbursement`, data)
}
export const loanCollection = data => {
return post(`${host}/judgment/bankCompanyLoans/loanCollection`, data)
}
export const nonPerformingLoans = data => {
return post(`${host}/judgment/bankCompanyLoans/nonPerformingLoans`, data)
}
export const badDebtRecognition = data => {
return post(`${host}/judgment/bankCompanyLoans/badDebtRecognition`, data)
}
export const postLoanInvestigationInput = data => {
return post(`${host}/judgment/bankPostLoanInvestigation/postLoanInvestigationInput`, data)
}
export const loanContractSave = (data) => {
return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data)
@ -76,6 +109,9 @@ export const grantALoan = (data) => {
export const repaymentPlan = (data) => {
return post(`/judgment/bankPersonalRepaymentPlan/repaymentPlan`, data)
}
export const batchProcessing = (data) => {
return post(`/judgment/bankPersonalRepaymentPlan/batchProcessing`, data)
}
export const operationExtension = (data) => {
return post(`/judgment/bankPersonalLoanContractInfo/operationExtension?contractId=${data.id}&extensionPeriod=${data.extensionPeriod}`)
}

@ -698,6 +698,7 @@ export default {
};
},
computed: {
...mapState('system', ['isCredit', 'creditImportIndex', 'creditImportIds']),
//
isCredit: function () {
return this.$store.state.system.isCredit;
@ -1048,14 +1049,18 @@ export default {
mounted () {
let that = this
this.$refs.manPhoto.onload = function () {
that.$refs.manDiv.style.width = this.width + 'px';
that.$refs.manDiv.style.height = (this.height - 70) + 'px';
if (this.$refs.manPhoto) {
this.$refs.manPhoto.onload = function () {
that.$refs.manDiv.style.width = this.width + 'px';
that.$refs.manDiv.style.height = (this.height - 70) + 'px';
}
}
this.$refs.cipherPhoto.onload = function () {
that.$refs.cipherDiv.style.width = this.width + 'px';
that.$refs.cipherDiv.style.height = this.height + 'px';
if (this.$refs.cipherPhoto) {
this.$refs.cipherPhoto.onload = function () {
that.$refs.cipherDiv.style.width = this.width + 'px';
that.$refs.cipherDiv.style.height = this.height + 'px';
}
}
//
@ -1192,6 +1197,7 @@ export default {
outThings2: 'system/outThings2',
outThingsGoods: 'system/outThingsGoods',
setTipsOperate: 'system/setTipsOperate',
initCreditImportIds: 'system/initCreditImportIds',
setCreditImportIds: 'system/setCreditImportIds',
}),
@ -2155,13 +2161,7 @@ export default {
}).catch((error) => {
})
} else if (this.nbm == 12) {
this.setCreditImportIds(770)
this.setTipsOperate('导入成功!')
} else if (this.nbm == 13) {
this.setCreditImportIds(771)
this.setTipsOperate('导入成功!')
} else if (this.nbm == 14) {
this.setCreditImportIds(772)
this.setCreditImportIds(this.receptionList[0].id)
this.setTipsOperate('导入成功!')
}
//

@ -286,20 +286,17 @@ $submenu_padding_left: 25px; // 相应的padding-left大小
.box {
display: flex;
min-width: 80vw;
// margin-top: 6vh;
overflow: auto;
// height: 70vh;
.nav {
width: 25vw;
min-height: 80vh;
overflow: hidden;
border-top-left-radius: 20px;
display: flex;
flex-direction: column;
// width: 25vw;
// min-height: 80vh;
// overflow: hidden;
// border-top-left-radius: 20px;
// display: flex;
// flex-direction: column;
.top {
min-height: 10vh;
font-size: 3vh;
line-height: 3vh;
display: flex;
@ -329,7 +326,6 @@ $submenu_padding_left: 25px; // 相应的padding-left大小
box-sizing: border-box;
.top {
min-height: 10vh;
font-size: 30px;
display: flex;
justify-content: flex-end;

@ -1,32 +1,24 @@
<template>
<!-- 贷款申请 -->
<div class="body">
<div class="wrap">
<my-title :titleArr="['公司贷款', '贷款申请']" />
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<div class="flex j-between m-b-20">
<div style="width: 300px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-button style="margin-bottom: 20px;" type="primary"
@click="$router.push('/counter/list/manage/corporateLoans-apply')">新建贷款申请</el-button>
<el-button type="primary" @click="$router.push('/counter/list/manage/corporateLoans-apply')">新建贷款申请</el-button>
</div>
<el-table max-height="350" ref="filterTable" :data="tableData" :header-cell-style="headerCellStyle"
:row-class-name="tableRowClassName">
<el-table-column prop="currency" label="客户姓名" align="center">
</el-table-column>
<el-table-column prop="currency" label="申请编号" align="center">
</el-table-column>
<el-table-column prop="currency" label="申请日期" align="center">
</el-table-column>
<el-table-column prop="currency" label="申请类型" align="center">
</el-table-column>
<el-table-column prop="currency" label="申请金额" align="center">
</el-table-column>
<el-table-column prop="currency" label="办理状态" align="center">
</el-table-column>
<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="createTime" 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 @click="back(scope.row)" size="small">详情</el-button>
<el-button v-if="!scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button>
</template>
</el-table-column>
</el-table>
@ -39,27 +31,22 @@
</template>
<script>
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import { myValidate, checkHanzi, inputListen } from '@/utils/utilFunction.js'
import { mapState, mapMutations, mapGetters } from 'vuex'
import { addOperation, companyLoanList } from '@/api/http';
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList } from '@/api/http';
import MyTitle from '@/components/myTitle'
export default {
name: 'index',
components: {
MyTitle,
},
data () {
return {
headerCellStyle: headerCellStyle,
moduleName: 'tallerCash',
text: '柜员现金轧账',/* 顶部文字 */
visible: false,
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
visible: false,
submited: 0
}
},
watch: {
@ -71,33 +58,31 @@ export default {
},
},
mounted () {
// this.initData()
this.initData()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
async getData () {
// debugger
const { data } = await companyLoanList({
businessId: this.$store.getters.system.businessId,
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
})
this.list = data.list.records
this.total = data.list.total
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val;
this.page = val
this.getData()
},
//
toDetail (row) {
this.$router.push(`/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}`)
},
tableRowClassName: tableRowClassName,
checkHanzi: checkHanzi,
inputListen
},
};
</script>
@ -105,8 +90,10 @@ export default {
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.body {
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
</style>

@ -2,54 +2,57 @@
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="140px" :rules="rules">
<el-form ref="form" :model="form" label-width="140px">
<el-col :span="24">
<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>
<el-input v-model="form.applicationAccount" disabled />
</el-form-item>
<el-form-item label="证件号码">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.identificationNumber" disabled />
</el-form-item>
<el-form-item label="抵押房产地址">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.propertyAddress" disabled />
</el-form-item>
<el-form-item label="婚姻状况">
<el-radio-group v-model="form.marriage">
<el-radio :label="1">未婚</el-radio>
<el-radio :label="2">已婚</el-radio>
<el-radio :label="3">离异</el-radio>
<el-radio-group v-model="form.maritalStatus" disabled>
<el-radio label="未婚"></el-radio>
<el-radio label="已婚"></el-radio>
<el-radio label="离异"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="在袋鼠互联网科技有限公司购买社保" label-width="280px">
<el-radio-group v-model="form.marriage">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
<el-radio-group v-model="form.socialSecurity" disabled>
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.customerName" disabled />
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.contactPhoneNumber" disabled />
</el-form-item>
<el-form-item label="与袋鼠互联网科技有限公司合作年限" label-width="280px">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.cooperationPeriod">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="在袋鼠互联网科技有限公司签订劳动合同" label-width="300px">
<el-radio-group v-model="form.marriage">
<el-radio :label="1"></el-radio>
<el-radio :label="2"></el-radio>
<el-radio-group v-model="form.laborContract" disabled>
<el-radio label="是"></el-radio>
<el-radio label="否"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="住址情况">
<el-radio-group v-model="form.marriage">
<el-radio :label="1">购置</el-radio>
<el-radio :label="2">按揭中</el-radio>
<el-radio-group v-model="form.addressSituation" disabled>
<el-radio label="购置"></el-radio>
<el-radio label="按揭中"></el-radio>
<el-radio label="租住"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -61,11 +64,11 @@
<el-form-item>
<div class="flex">
<span class="req">*</span>
<el-checkbox v-model="checked">自行筹款到期还款</el-checkbox>
<el-checkbox v-model="form.matureRepayment">自行筹款到期还款</el-checkbox>
<div class="inline-flex m-l-40">
<el-checkbox v-model="checked"></el-checkbox>
<span class="m-l-20 m-r-5" style="white-space: nowrap;">其他</span>
<el-input v-model="form.customerName" size="small"></el-input>
<el-checkbox v-model="form.otherRepaymentsCheck">其他</el-checkbox>
<el-input v-if="form.otherRepaymentsCheck" v-model="form.otherRepayments" size="small" maxlength="50"
placeholder="请输入"></el-input>
</div>
</div>
</el-form-item>
@ -79,15 +82,13 @@
<el-form-item>
<div class="flex">
<span class="req">*</span>
<el-checkbox-group v-model="purpose">
<el-checkbox label="支付材料款"></el-checkbox>
<el-checkbox label="支付人工费"></el-checkbox>
<el-checkbox label="支付研发费"></el-checkbox>
</el-checkbox-group>
<el-checkbox v-model="form.paymentForMaterials">支付材料款</el-checkbox>
<el-checkbox v-model="form.payLaborCosts">支付人工费</el-checkbox>
<el-checkbox v-model="form.payExpenses">支付研发费</el-checkbox>
<div class="inline-flex m-l-40">
<el-checkbox v-model="checked"></el-checkbox>
<span class="m-l-20 m-r-5" style="white-space: nowrap;">其他</span>
<el-input v-model="form.customerName" size="small"></el-input>
<el-checkbox v-model="form.otherUseCheck">其他</el-checkbox>
<el-input v-if="form.otherUseCheck" v-model="form.otherUses" size="small" maxlength="50"
placeholder="请输入"></el-input>
</div>
</div>
</el-form-item>
@ -98,337 +99,243 @@
<h6 class="l-title">申请人特别说明选填</h6>
</el-col>
<el-col :span="24">
<el-input v-model="form.customerName" type="textarea" placeholder="请输入申请述求"></el-input>
<el-input v-model="form.specialInstructions" type="textarea" maxlength="500" placeholder="请输入申请述求"></el-input>
</el-col>
<el-col :span="24" style="margin-top: 20px">
<h6 class="l-title">附件 请上传</h6>
</el-col>
<el-col :span="24">
<div class="text-center">
<el-upload class="m-b-20" action="https://jsonplaceholder.typicode.com/posts/">
<el-button size="small" type="primary">上传法人身份证</el-button>
</el-upload>
<el-upload class="m-b-20" action="https://jsonplaceholder.typicode.com/posts/">
<el-button size="small" type="primary">上传抵押物房产证</el-button>
</el-upload>
<div class="files">
<div class="item">
<el-button :type="creditImportIds.corporateIdCard ? '' : 'primary'" size="small" plain
@click="importSth('corporateIdCard')">上传</el-button>
<p class="text">
法人身份证
<span v-if="creditImportIds.corporateIdCard" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.mortgagePropertyCertificate ? '' : 'primary'" size="small" plain
@click="importSth('mortgagePropertyCertificate')">上传</el-button>
<p class="text">
抵押物房产证
<span v-if="creditImportIds.mortgagePropertyCertificate" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.proofOfMaritalStatus ? '' : 'primary'" size="small" plain
@click="importSth('proofOfMaritalStatus')">上传</el-button>
<p class="text">
实际控制人婚姻情况证明/离婚证
<span v-if="creditImportIds.proofOfMaritalStatus" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.copyOfSpouseSIdCard ? '' : 'primary'" size="small" plain
@click="importSth('copyOfSpouseSIdCard')">上传</el-button>
<p class="text">
实际控制人配偶身份证复印件
<span v-if="creditImportIds.copyOfSpouseSIdCard" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.originalBusinessLicense ? '' : 'primary'" size="small" plain
@click="importSth('originalBusinessLicense')">上传</el-button>
<p class="text">
营业执照正本
<span v-if="creditImportIds.originalBusinessLicense" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.accountOpeningPermit ? '' : 'primary'" size="small" plain
@click="importSth('accountOpeningPermit')">上传</el-button>
<p class="text">
开户许可证基本存款账户信息
<span v-if="creditImportIds.accountOpeningPermit" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.leaseContract ? '' : 'primary'" size="small" plain
@click="importSth('leaseContract')">上传</el-button>
<p class="text">
企业注册地址租赁合同或对应房产证
<span v-if="creditImportIds.leaseContract" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.companyArticlesOfAssociation ? '' : 'primary'" size="small" plain
@click="importSth('companyArticlesOfAssociation')">上传</el-button>
<p class="text">
公司章程
<span v-if="creditImportIds.companyArticlesOfAssociation" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.shareholderDocuments ? '' : 'primary'" size="small" plain
@click="importSth('shareholderDocuments')">上传</el-button>
<p class="text">
公司股东证件复印件
<span v-if="creditImportIds.shareholderDocuments" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.financialSeal ? '' : 'primary'" size="small" plain
@click="importSth('financialSeal')">上传</el-button>
<p class="text">
公章私章财务章
<span v-if="creditImportIds.financialSeal" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.oneYearTaxPaymentCertificate ? '' : 'primary'" size="small" plain
@click="importSth('oneYearTaxPaymentCertificate')">上传</el-button>
<p class="text">
公司近一年纳税证明
<span v-if="creditImportIds.oneYearTaxPaymentCertificate" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.halfYearRevenue ? '' : 'primary'" size="small" plain
@click="importSth('halfYearRevenue')">上传</el-button>
<p class="text">
公司近半年流水
<span v-if="creditImportIds.halfYearRevenue" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.corporateFinancialStatements ? '' : 'primary'" size="small" plain
@click="importSth('corporateFinancialStatements')">上传</el-button>
<p class="text">
企业财务报表
<span v-if="creditImportIds.corporateFinancialStatements" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.loanApplicationForm ? '' : 'primary'" size="small" plain
@click="importSth('loanApplicationForm')">上传</el-button>
<p class="text">
贷款申请书
<span v-if="creditImportIds.loanApplicationForm" class="text-danger">(已导入)</span>
</p>
</div>
<div class="item">
<el-button :type="creditImportIds.creditAuthorizationLetter ? '' : 'primary'" size="small" plain
@click="importSth('creditAuthorizationLetter')">上传</el-button>
<p class="text">
征信授权书
<span v-if="creditImportIds.creditAuthorizationLetter" class="text-danger">(已导入)</span>
</p>
</div>
</div>
</el-col>
</el-form>
</el-row>
<div class="text-center">
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
<div class="m-t-30 text-center">
<el-button @click="submit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
</div>
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'usefulPhrases/openAccount'
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'
import { addOperation, creditApplicationInput } from '@/api/http'
import { mapState, mapMutations } from 'vuex'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyTitle,
MyDialog
},
mixins: [TipsBefore],
created () {
// if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
// this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
// }
// // if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// // this.idNumberJudge = true
// // this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// // }
// // if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// // this.cardNumberJudge = true
// // this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// // }
// if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// this.idNumberJudge = true
// //
// const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow
// this.form.clientNumber = peopleNumber
// this.form.idNumber = idNumber
// this.form.customerName = userName
// this.form.currency = currency
// this.form.goldLogo = goldLogo
// this.form.voucherType = 127
// }
// if (sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// this.cardNumberJudge = true
// const { voucherNumber } = this.dataFlow
// this.form.voucherNumber = voucherNumber
// }
// this.getFormData()
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
purpose: [],
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
//
// identityCard: '', //
idNumber: '',
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: '', //
monthDeposit: '', //
depositTerm: '', //
extendDepositTarget: '', //
voucherNumber: '', //
drawPassword: '', //
//
clientNumber: '', //
certificateType: 83, //
},
formName: {
//
// identityCard: '', //
idNumber: '身份证',
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
voucherType: '凭证类型', //
monthDeposit: '月存金额', //
depositTerm: '存期', //
extendDepositTarget: '续存标识', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
clientNumber: '客户号', //
certificateType: '证件类型',
purpose: []
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
source: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'change'
}
],
voucherType: [
{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
monthDeposit: [
{
required: true,
message: '请输入月存金额',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
extendDepositTarget: [
{
required: true,
message: '请选择续存标识',
trigger: 'blur'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
applicationAccount: '913403005685450862',
customerName: '丛小凤',
identificationNumber: '220602199202281229',
contactPhoneNumber: '15890317718',
propertyAddress: '广东省深圳市南山区前海一号2020室',
cooperationPeriod: '6',
maritalStatus: '未婚',
laborContract: '是',
socialSecurity: '是',
addressSituation: '购置',
matureRepayment: false,
otherRepaymentsCheck: false,
otherRepayments: '',
paymentForMaterials: false,
payLaborCosts: false,
payExpenses: false,
otherUseCheck: false,
otherUses: '',
specialInstructions: '',
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
opt1: [
{
id: 203,
name: '有'
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
{
id: 204,
name: '无'
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
],
opt2: [
{
id: 205,
name: '优'
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
{
id: 206,
name: '良'
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
{
id: 207,
name: '不良'
},
},
submited: 0
],
}
},
computed: {
...mapState('system', ['creditImportIds', 'creditIds']),
},
mounted () {
this.getDetail()
},
methods: {
// userName,
// peopleNumber,
// idNumber,
// currency:'CNY',
// goldLogo:'',
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur () {
// console.log('???')
},
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
...mapMutations('system', ['setCreditImportIndex', 'initCreditImportIds']),
//
async getDetail () {
this.initCreditImportIds({
corporateIdCard: '',
mortgagePropertyCertificate: '',
proofOfMaritalStatus: '',
copyOfSpouseSIdCard: '',
originalBusinessLicense: '',
accountOpeningPermit: '',
leaseContract: '',
companyArticlesOfAssociation: '',
shareholderDocuments: '',
financialSeal: '',
oneYearTaxPaymentCertificate: '',
halfYearRevenue: '',
corporateFinancialStatements: '',
loanApplicationForm: '',
creditAuthorizationLetter: '',
})
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
//
importSth (i) {
this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12)
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('167')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
async submit () {
try {
const { data } = await creditApplicationInput({
...this.$store.state.system.creditIds,
...this.$store.state.system.creditImportIds,
...this.form,
})
this.$message[data.status === 200 ? 'success' : 'error']('创建成功!')
setTimeout(this.$router.push('/counter/list/manage/orporateLoans-application'), 1500)
} catch { (e) => { } }
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
submitForm () {
},
submitForm2 () {
// let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = [
{
key: '159,13'
}
// {
// 1399: nomUsefulPhrasesOpenCard2
// },
// {
// 166: nomUsefulPhrasesOpenCard
// },
// {
// 167: nomUsefulPhrasesOpenPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped>
@ -438,8 +345,17 @@ export default {
font-weight: 600;
}
.line {
margin: 20px 0;
border-bottom: 1px dashed #d7d7d7;
.files {
.item {
display: flex;
align-items: center;
margin-bottom: 20px;
}
.text {
margin-left: 10px;
font-size: 14px;
color: #818181;
}
}
</style>

@ -92,7 +92,7 @@
</div>
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { inputListen, messageCard } from '@/utils/utilFunction.js';
import { addOperation, creditEvaluationInput } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex'
export default {
@ -121,28 +121,6 @@ export default {
financialReportSubmissionMethod: '',
natureOfBorrower: '',
},
formName: {
applicationAccount: '账号',
customerName: '客户名称',
identificationType: '证件类型',
identificationNumber: '证件号码',
contactPhoneNumber: '联系电话',
companyRegisteredAddress: '注册地址',
corporateName: '法人姓名',
corporateIdNumber: '法人证件号码',
currency: '币种',
accountType: '账户类型',
interestRate: '利率',
interestCalculationMethod: '计息方式',
withdrawalMethod: '支取方式',
numberOfEmployees: '员工人数',
yearOfEstablishment: '成立年份',
registrationType: '注册类型',
mainBusinessScope: '主营范围',
expirationDateOfBusinessLicense: '营业执照到期日',
financialReportSubmissionMethod: '财报提交方式',
natureOfBorrower: '借款人性质',
},
rules: {
applicationAccount: [
{
@ -156,7 +134,7 @@ export default {
}
},
mounted () {
// this.getFormData()
},
methods: {
...mapMutations({
@ -184,9 +162,6 @@ export default {
this.form.expirationDateOfBusinessLicense = '2024-01-01'
this.form.financialReportSubmissionMethod = '半年'
this.form.natureOfBorrower = '企业法人'
},
getFormData () {
},
//
async next () {
@ -196,7 +171,10 @@ export default {
return
}
try {
const { data } = await creditEvaluationInput(form)
const { data } = await creditEvaluationInput({
...this.$store.getters['system/commonIds'],
...form,
})
// id
this.setCreditIds({
companyLoanId: data.companyLoanId, // tabid
@ -205,9 +183,6 @@ export default {
this.$emit('updateStep', 1)
} catch { (e) => { } }
},
ismoney,
checkHanzi,
checkName,
inputListen,
},
computed: {

@ -3,25 +3,25 @@
<div>
<div class="upload-wrap">
<div>
<el-button :type="!creditImportIds.includes(770) ? 'primary' : ''"
@click="showData('导入报表', 12)">点击导入资产负债表</el-button>
<p v-if="creditImportIds.includes(770)" class="already">已导入</p>
<el-button :type="creditImportIds.importBalanceSheet ? '' : 'primary'"
@click="importSth('importBalanceSheet')">点击导入资产负债表</el-button>
<p v-if="creditImportIds.importBalanceSheet" class="already">已导入</p>
</div>
<img class="icon" src="@/assets/img/arrow-right.png" alt="">
<div>
<el-button :type="!creditImportIds.includes(771) ? 'primary' : ''"
@click="showData('导入报表', 13)">点击导入损益表</el-button>
<p v-if="creditImportIds.includes(771)" class="already">已导入</p>
<el-button :type="creditImportIds.importIncomeStatement ? '' : 'primary'"
@click="importSth('importIncomeStatement')">点击导入损益表</el-button>
<p v-if="creditImportIds.importIncomeStatement" class="already">已导入</p>
</div>
<img class="icon" src="@/assets/img/arrow-right.png" alt="">
<div>
<el-button :type="!creditImportIds.includes(772) ? 'primary' : ''"
@click="showData('导入报表', 14)">点击导入现金流量表</el-button>
<p v-if="creditImportIds.includes(772)" class="already">已导入</p>
<el-button :type="creditImportIds.importCashFlowStatement ? '' : 'primary'"
@click="importSth('importCashFlowStatement')">点击导入现金流量表</el-button>
<p v-if="creditImportIds.importCashFlowStatement" class="already">已导入</p>
</div>
</div>
@ -33,17 +33,11 @@
</template>
<script>
import { addOperation, creditEvaluationInput } from '@/api/http'
import { mapMutations, mapGetters } from 'vuex'
import { mapMutations, mapState } from 'vuex'
export default {
computed: {
creditImportIds: function () {
return this.$store.state.system.creditImportIds
},
// id
creditIds: function () {
return this.$store.state.system.creditIds
},
...mapState('system', ['creditImportIds', 'creditIds']),
},
data () {
return {
@ -52,16 +46,16 @@ export default {
},
mounted () {
this.getDetail()
console.log(111, this.$parent.$parent.$parent.showData)
},
methods: {
...mapMutations({
setCreditImportIds: 'system/setCreditImportIds',
setTipsOperate: 'system/setTipsOperate',
}),
...mapMutations('system', ['setCreditImportIds', 'setCreditImportIndex', 'initCreditImportIds', 'setTipsOperate']),
//
async getDetail () {
this.setCreditImportIds()
this.initCreditImportIds({
importBalanceSheet: '',
importIncomeStatement: '',
importCashFlowStatement: '',
})
if (this.id) {
//
const { data } = await personalBasicFind(this.id)
@ -69,27 +63,27 @@ export default {
this.form = data.data.bankPersonalLoanContractInfo
}
},
showData (type, nbm) {/* 展示弹窗-type为弹窗标题文字 */
this.$parent.$parent.$parent.showData(type, nbm)
//
importSth (i) {
this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12)
},
next () {
const form = this.creditIds
const ids = this.creditImportIds
if (!ids.includes(770)) {
const form = this.creditImportIds
if (!form.importBalanceSheet) {
return this.setTipsOperate('请导入资产负债表')
}
if (!ids.includes(771)) {
if (!form.importIncomeStatement) {
return this.setTipsOperate('请导入损益表')
}
if (!ids.includes(772)) {
if (!form.importCashFlowStatement) {
return this.setTipsOperate('请导入现金流量表')
}
this.creditIds
form.importBalanceSheet = 770
form.importIncomeStatement = 771
form.importCashFlowStatement = 772
try {
creditEvaluationInput(form)
creditEvaluationInput({
...this.creditIds,
...form
})
this.$emit('updateStep', 2)
} catch { (e) => { } }
},

@ -206,7 +206,7 @@ export default {
...this.form,
})
this.$message[data.status === 200 ? 'success' : 'error']('创建成功!')
setTimeout(this.$router.push('/counter/list/manage/orporateLoans-application'), 1500)
this.$parent.active = '2'
} catch { (e) => { } }
},
},

@ -3,7 +3,7 @@
<div class="wrap">
<div>
<div class="nav">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu :default-active="active" class="el-menu-demo" mode="horizontal" @select="handleSelect">
<el-menu-item index="1">信用评估</el-menu-item>
<el-menu-item index="2">授信申请</el-menu-item>
<el-menu-item index="3">贷款申请</el-menu-item>
@ -11,19 +11,19 @@
</div>
<MyTitle :titleArr="['公司贷款', '新建贷款申请', text]" />
<ul v-if="activeIndex === '1'" class="steps">
<ul v-if="active === '1'" class="steps">
<li v-for="(step, i) in steps" :key="i" :class="{ active: curStep === i }">{{ step }}</li>
</ul>
<div class="form-wrap">
<template v-if="activeIndex === '1'">
<template v-if="active === '1'">
<Basic v-if="!curStep" :key="0" @updateStep="updateStep" />
<ImportReport v-else-if="curStep === 1" :key="1" @updateStep="updateStep" />
<PreLoan v-else-if="curStep === 2" :key="2" @updateStep="updateStep" />
<Rating v-else-if="curStep === 3" :key="3" @updateStep="updateStep" />
</template>
<CreditApplication v-if="activeIndex === '2'" />
<template v-if="activeIndex === '3'">
<CreditApplication v-if="active === '2'" />
<template v-if="active === '3'">
<LoanApplication1 v-if="!curStep" @updateStep="updateStep" />
<LoanApplication2 v-else-if="curStep === 1" @updateStep="updateStep" />
</template>
@ -42,7 +42,6 @@ import LoanApplication1 from './loanApplication/step1.vue'
import LoanApplication2 from './loanApplication/step2.vue'
import MyTitle from '@/components/myTitle'
export default {
name: 'index',
components: {
Basic,
ImportReport,
@ -51,12 +50,11 @@ export default {
CreditApplication,
LoanApplication1,
LoanApplication2,
MyTitle,
MyTitle
},
data () {
return {
text: '',/* 顶部文字 */
cacheVal: '',
text: '',
textObj: {
'1': '信用评估',
'2': '授信申请',
@ -67,7 +65,7 @@ export default {
},
visible: false,
options: [],
activeIndex: '',
active: '1',
steps: ['1.客户基本信息', '2.导入报表', '3.贷前调查', '4.等级评定'],
curStep: 0,
}
@ -76,23 +74,12 @@ export default {
handleSelect (val) {
this.curStep = 0
this.text = this.textObj[val]
this.activeIndex = val
this.cacheVal = val
this.active = val
},
updateStep (step) {
this.curStep = step
},
},
created () {
if (sessionStorage.getItem('corporateLoansApply')) {
this.handleSelect(sessionStorage.getItem('corporateLoansApply'))
} else {
this.handleSelect('1')
}
},
destroyed () {
sessionStorage.setItem('corporateLoansApply', this.cacheVal)
}
};
</script>
@ -240,7 +227,7 @@ export default {
}
.form-wrap {
height: calc(100vh - 320px);
height: calc(100vh - 340px);
overflow: auto;
}
</style>

@ -1,39 +1,39 @@
<!-- 信用评估 -->
<!-- 贷款申请第一步 -->
<template>
<div>
<el-row :gutter="20" style="margin: 0">
<el-form ref="form" :model="form" label-width="140px" :rules="rules">
<el-form ref="form" :model="form" label-width="140px">
<el-col :span="24">
<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>
<el-input v-model="form.applicationNumber" disabled />
</el-form-item>
<el-form-item label="证件类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType">
<el-option label="身份证" :value="83"> </el-option>
<el-form-item label="证件类型">
<el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
<el-option label="统一社会信用代码证" :value="82"></el-option>
</el-select>
</el-form-item>
<el-form-item label="注册地址">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.companyRegisteredAddress" />
</el-form-item>
<el-form-item label="法人证件号码">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.corporateIdNumber" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.customerName" disabled />
</el-form-item>
<el-form-item label="证件号码">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.corporateIdNumber" disabled />
</el-form-item>
<el-form-item label="法人姓名">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.corporateName" />
</el-form-item>
<el-form-item label="信用评级">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.creditRating" />
</el-form-item>
</el-col>
@ -42,7 +42,7 @@
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信金额">
<el-input v-model="form.customerName"></el-input>
<el-input v-model="form.creditAmount" disabled />
</el-form-item>
</el-col>
@ -50,27 +50,27 @@
<h6 class="l-title">贷款申请</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信年限">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
<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>
</el-form-item>
<el-form-item label="贷款申请金额">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="贷款申请金额" required>
<el-input value="不大于授信金额" disabled />
</el-form-item>
<el-form-item label="发放方式">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
<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-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="年化利率">
<el-input v-model="form.customerName"></el-input>
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="还款方式">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
<el-form-item label="还款方式" required>
<el-select v-model.trim="form.repaymentMethod" placeholder="请选择">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
@ -81,305 +81,97 @@
<el-button @click="next" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div>
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'usefulPhrases/openAccount'
import { addOperation, loanApplicationInput } from '@/api/http'
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: '',
props: {},
components: {
NeedBefore,
MyTitle,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// }
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
this.idNumberJudge = true
//
const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow
this.form.clientNumber = peopleNumber
this.form.idNumber = idNumber
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.form.voucherType = 127
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
this.getFormData()
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
//
// identityCard: '', //
idNumber: '',
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: '', //
monthDeposit: '', //
depositTerm: '', //
extendDepositTarget: '', //
voucherNumber: '', //
drawPassword: '', //
//
clientNumber: '', //
certificateType: 83, //
},
formName: {
//
// identityCard: '', //
idNumber: '身份证',
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
voucherType: '凭证类型', //
monthDeposit: '月存金额', //
depositTerm: '存期', //
extendDepositTarget: '续存标识', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
clientNumber: '客户号', //
certificateType: '证件类型', //
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [
{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
monthDeposit: [
{
required: true,
message: '请输入月存金额',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
extendDepositTarget: [
{
required: true,
message: '请选择续存标识',
trigger: 'blur'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
applicationNumber: '913403005685450862',
customerName: '袋鼠互联网科技有限公司',
identificationType: 82,
identificationNumber: '913403005685450862',
companyRegisteredAddress: '广东省深圳市南山区前海一号2020室',
corporateName: '丛小凤',
corporateIdNumber: '220602199202281229',
creditRating: 'AAAA',
creditAmount: 'RMB12,000,000.00',
creditTerm: 231,
annualizedInterestRate: '',
loanApplicationAmount: '',
repaymentMethod: 235,
distributionMethod: 238,
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
opt1: [
{
id: 231,
name: '1年'
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
{
id: 232,
name: '3年'
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
{
id: 233,
name: '5年'
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
{
id: 234,
name: '10年'
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
],
opt2: [
{
id: 235,
name: '等额本金'
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
{
id: 236,
name: '等额本息'
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
{
id: 237,
name: '先息后本'
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
],
opt3: [
{
id: 238,
name: '一次性到账'
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
{
id: 239,
name: '随借随还'
},
},
submited: 0
],
}
},
mounted () {
},
methods: {
// userName,
// peopleNumber,
// idNumber,
// currency:'CNY',
// goldLogo:'',
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
setCreditIds: 'system/setCreditIds',
}),
getDataBlur () {
// console.log('???')
},
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('167')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
next () {
this.$emit('updateStep', 1)
},
submitForm () {
},
submitForm2 () {
// let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = [
{
key: '159,13'
}
// {
// 1399: nomUsefulPhrasesOpenCard2
// },
// {
// 166: nomUsefulPhrasesOpenCard
// },
// {
// 167: nomUsefulPhrasesOpenPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
async next () {
const { form } = this
try {
const { data } = await loanApplicationInput({
...this.$store.getters['system/commonIds'],
...form,
companyLoanId: this.$store.state.system.creditIds.companyLoanId,
})
// id
// this.setCreditIds({
// companyLoanId: data.companyLoanId, // tabid
// creditEvaluationId: data.creditEvaluationId, // id
// })
this.$emit('updateStep', 1)
} catch { (e) => { } }
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({

@ -7,382 +7,117 @@
<h6 class="l-title">客户信息</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="贷款类型" prop="certificateType">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType">
<el-option label="身份证" :value="83"> </el-option>
<el-form-item label="贷款类型">
<el-select value="企业经营贷款" placeholder="请选择">
<el-option value="企业经营贷款"></el-option>
</el-select>
</el-form-item>
<el-form-item label="授信金额" prop="customerName">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled />
</el-form-item>
<el-form-item label="起息日期" prop="customerName">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="起息日期" prop="valueDate">
<el-date-picker v-model="form.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" @change="maturityDateCalc"></el-date-picker>
</el-form-item>
<el-form-item label="计息方式" prop="customerName">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
</el-select>
<el-form-item label="计息方式">
<el-input value="按LPR浮动计息" disabled />
</el-form-item>
<el-form-item label="执行利率" prop="customerName">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="执行利率" prop="executedInterestRate">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="担保方式" prop="customerName">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
<el-form-item label="担保方式">
<el-select v-model="form.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="利息总额" prop="customerName">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="利息总额">
<el-input v-model="form.totalInterestAmount" />
</el-form-item>
<el-form-item label="还款账号" prop="customerName">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="还款账号">
<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 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 v-model="form.customerName"></el-input>
<el-form-item label="授信期限">
<el-select v-model="form.creditTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="到期日期" prop="customerName">
<el-input v-model="form.customerName"></el-input>
<el-form-item label="到期日期">
<el-date-picker v-model="form.expirationDate" 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 v-model="form.customerName"></el-input>
<el-form-item label="基准利率" prop="baseInterestRate">
<el-input value="3.20%" disabled />
</el-form-item>
<el-form-item label="逾期利率" prop="customerName">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
</el-select>
<el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="10%" disabled />
</el-form-item>
<el-form-item label="还款方式" prop="customerName">
<el-select v-model.trim="form.certificateType" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option>
<el-form-item label="还款方式" prop="repaymentMethod">
<el-select v-model="form.repaymentMethod" placeholder="请选择" disabled>
<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 v-model="form.customerName"></el-input>
<el-form-item label="贷款金额">
<el-input v-model="form.loanAmount" />
</el-form-item>
</el-col>
</el-form>
</el-row>
<div class="text-center m-t-20">
<el-button @click="$emit('updateStep', 0)" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>提交</el-button>
<el-button @click="submit" type="primary" class="submitBtn" v-throttle>提交</el-button>
</div>
</div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template>
<script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'usefulPhrases/openAccount'
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'
import { addOperation, loanApplicationInput } from '@/api/http'
import Util from '@/libs/util'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyTitle,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// }
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
this.idNumberJudge = true
//
const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow
this.form.clientNumber = peopleNumber
this.form.idNumber = idNumber
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.form.voucherType = 127
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
this.getFormData()
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: {
//
// identityCard: '', //
idNumber: '',
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: '', //
monthDeposit: '', //
depositTerm: '', //
extendDepositTarget: '', //
voucherNumber: '', //
drawPassword: '', //
//
clientNumber: '', //
certificateType: 83, //
},
formName: {
//
// identityCard: '', //
idNumber: '身份证',
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
voucherType: '凭证类型', //
monthDeposit: '月存金额', //
depositTerm: '存期', //
extendDepositTarget: '续存标识', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
clientNumber: '客户号', //
certificateType: '证件类型', //
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [
{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
monthDeposit: [
{
required: true,
message: '请输入月存金额',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
extendDepositTarget: [
{
required: true,
message: '请选择续存标识',
trigger: 'blur'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
valueDate: '',
creditTerm: '',
expirationDate: '',
totalInterestAmount: '',
loanAmount: '',
propertyCertificateNo: '',
repaymentMethod: '',
interestTotal: '',
repaymentAccount: '',
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
},
},
submited: 0
}
},
mounted () {
},
methods: {
// userName,
// peopleNumber,
// idNumber,
// currency:'CNY',
// goldLogo:'',
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur () {
// console.log('???')
},
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('167')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
//
maturityDateCalc () {
const { valueDate, creditTerm } = this.form
if (valueDate && creditTerm) {
const date = new Date(valueDate)
date.setMonth(creditTerm)
this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
next () {
this.$emit('updateStep', 1)
},
submitForm () {
},
submitForm2 () {
// let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = [
{
key: '159,13'
}
// {
// 1399: nomUsefulPhrasesOpenCard2
// },
// {
// 166: nomUsefulPhrasesOpenCard
// },
// {
// 167: nomUsefulPhrasesOpenPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
async submit () {
try {
const { data } = await loanApplicationInput({
...this.$store.state.system.creditIds,
...this.form,
})
this.$message[data.status === 200 ? 'success' : 'error']('创建成功!')
setTimeout(this.$router.push('/counter/list/manage/orporateLoans-application'), 1500)
} catch { (e) => { } }
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped>

@ -1,4 +1,4 @@
<!-- 代收电费 -->
<!-- 公司贷款详情 -->
<template>
<div class="wrap">
<MyTitle :titleArr="['公司贷款', '贷款详情']" />
@ -8,40 +8,33 @@
<h6 class="l-title">信用评估</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="账号" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="账号">
<el-input v-model="form.applicationNumber" disabled />
</el-form-item>
<el-form-item label="证件类型" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="证件类型">
<el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
<el-option label="统一社会信用代码证" :value="82"></el-option>
</el-select>
</el-form-item>
<el-form-item label="注册地址" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="注册地址">
<el-input v-model="form.companyRegisteredAddress" />
</el-form-item>
<el-form-item label="法人证件号码" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="法人证件号码">
<el-input v-model="form.corporateIdNumber" />
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="客户名称" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="客户名称">
<el-input v-model="form.customerName" disabled />
</el-form-item>
<el-form-item label="证件号码" required>
<el-input :value="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30"
ref="mailbox"></el-input>
<el-form-item label="证件号码">
<el-input v-model="form.corporateIdNumber" disabled />
</el-form-item>
<el-form-item label="法人姓名" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="法人姓名">
<el-input v-model="form.corporateName" />
</el-form-item>
<el-form-item label="信用评级" prop="customerName">
<el-input ref="customerName" disabled :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="信用评级">
<el-input v-model="form.creditRating" />
</el-form-item>
</el-col>
@ -50,9 +43,8 @@
<h6 class="l-title">授信</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信金额" prop="customerName">
<el-input ref="customerName" :value="form.customerName"
@input="(val) => checkName(val, form, 'customerName')"></el-input>
<el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled />
</el-form-item>
</el-col>
@ -61,19 +53,25 @@
<h6 class="l-title">贷款申请</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="授信年限" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<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>
</el-form-item>
<el-form-item label="还款方式" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="还款方式" required>
<el-select v-model.trim="form.repaymentMethod" placeholder="请选择">
<el-option v-for="(item, i) in opt2" :key="i" :label="item.name" :value="item.id"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="年化利率" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="年化利率">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="发放方式" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<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-select>
</el-form-item>
</el-col>
@ -82,414 +80,153 @@
<h6 class="l-title">贷款合同录入</h6>
</el-col>
<el-col :span="10" :offset="1">
<el-form-item label="贷款类型" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="贷款类型">
<el-select value="企业经营贷款" placeholder="请选择">
<el-option value="企业经营贷款"></el-option>
</el-select>
</el-form-item>
<el-form-item label="授信金额" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="授信金额">
<el-input v-model="form.creditAmount" disabled />
</el-form-item>
<el-form-item label="起息日期" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="起息日期" prop="valueDate">
<el-date-picker v-model="form.valueDate" type="date" placeholder="选择日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="计息方式" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="计息方式">
<el-input value="按LPR浮动计息" disabled />
</el-form-item>
<el-form-item label="执行利率" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="执行利率" prop="executedInterestRate">
<el-input value="3.2%" disabled />
</el-form-item>
<el-form-item label="担保方式" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="担保方式">
<el-select v-model="form.guaranteeMethod" placeholder="请选择">
<el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="利息总额" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="利息总额">
<el-input v-model="form.totalInterestAmount" />
</el-form-item>
<el-form-item label="还款账号" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="还款账号">
<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" :value="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" :value="form.customerName"></el-input>
<el-form-item label="授信期限">
<el-select v-model="form.creditTerm" 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" :value="form.customerName"></el-input>
<el-form-item label="到期日期">
<el-date-picker v-model="form.expirationDate" 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" :value="form.customerName"></el-input>
<el-form-item label="基准利率" prop="baseInterestRate">
<el-input value="3.20%" disabled />
</el-form-item>
<el-form-item label="逾期利率" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input value="10%" disabled />
</el-form-item>
<el-form-item label="还款方式" prop="customerName">
<el-input ref="customerName" :value="form.customerName"></el-input>
<el-form-item label="还款方式" prop="repaymentMethod">
<el-select v-model="form.repaymentMethod" placeholder="请选择" disabled>
<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" :value="form.customerName"></el-input>
<el-form-item label="贷款金额">
<el-input v-model="form.loanAmount" />
</el-form-item>
</el-col>
</el-form>
</el-row>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName"
@submitIt="submitForm2" depositNumber='0816' />
<el-button @click="submitForm" type="primary" class="submitBtn" v-throttle>下一步</el-button>
<div class="text-center">
<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>
</div>
<el-dialog title="放款" :visible.sync="loanVisible" width="300px" z-index="6000" :append-to-body="true">
<el-date-picker v-model="loanDate" 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 { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js';
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js'
const moduleName = 'usefulPhrases/openAccount'
import { mapMutations, mapGetters } from 'vuex'
import NeedBefore from '@/components/needBefore'
import MyDialog from '@/components/dialog'
import TipsBefore from '@/mixins/tipsBefore'
import { loanDisbursement, companyLoanDetails } from '@/api/http'
import MyTitle from '@/components/myTitle'
export default {
name: '',
props: {},
components: {
NeedBefore,
MyTitle,
MyDialog
},
mixins: [TipsBefore],
created () {
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
// this.idNumberJudge = true
// this.form.idNumber = this.dataFlow.idNumber || '441515199812064569'
// }
// if(sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
// this.cardNumberJudge = true
// this.form.voucherNumber = this.dataFlow.voucherNumber || '159753'
// }
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard2')) {
this.idNumberJudge = true
//
const { idNumber, userName, peopleNumber, currency, goldLogo } = this.dataFlow
this.form.clientNumber = peopleNumber
this.form.idNumber = idNumber
this.form.customerName = userName
this.form.currency = currency
this.form.goldLogo = goldLogo
this.form.voucherType = 127
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenCard')) {
this.cardNumberJudge = true
const { voucherNumber } = this.dataFlow
this.form.voucherNumber = voucherNumber
}
this.getFormData()
},
data () {
return {
moduleName: 'usefulPhrases/openAccount',
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
id: this.$route.query.id,
form: {
//
// identityCard: '', //
idNumber: '',
customerName: '', //
currency: '', //
goldLogo: '', //
voucherType: '', //
monthDeposit: '', //
depositTerm: '', //
extendDepositTarget: '', //
voucherNumber: '', //
drawPassword: '', //
//
clientNumber: '', //
certificateType: 83, //
},
formName: {
//
// identityCard: '', //
idNumber: '身份证',
customerName: '客户姓名', //
currency: '币种', //
goldLogo: '钞汇标识', //
voucherType: '凭证类型', //
monthDeposit: '月存金额', //
depositTerm: '存期', //
extendDepositTarget: '续存标识', //
voucherNumber: '凭证号码', //
drawPassword: '支付密码', //
//
clientNumber: '客户号', //
certificateType: '证件类型', //
},
rules: {
customerName: vercustomer,
currency: [
{
required: true,
message: '请选择币种',
trigger: 'blur'
}
],
goldLogo: [
{
required: true,
message: '请选择钞汇标识',
trigger: 'blur'
}
],
voucherType: [
{
required: true,
message: '请选择凭证类型',
trigger: 'blur'
}
],
monthDeposit: [
{
required: true,
message: '请输入月存金额',
trigger: 'blur'
}
],
depositTerm: [
{
required: true,
message: '请选择存期',
trigger: 'blur'
}
],
extendDepositTarget: [
{
required: true,
message: '请选择续存标识',
trigger: 'blur'
}
],
},
myTable2: {
158: {
prop: 'certificateType',//
type: '1',
"subjectId": 19,
},
// 169: {
// prop: 'customerManage',//
// type: '3',
// "subjectId": 27,
// },
160: {
prop: 'clientNumber',//
type: '3',
"subjectId": 6,
}
applicationAccount: '',
customerName: '',
identificationType: '',
identificationNumber: '',
contactPhoneNumber: '',
companyRegisteredAddress: '',
corporateName: '',
corporateIdNumber: '',
contactPhoneNumber: '',
currency: 12,
accountType: 97,
interestRate: 3.2,
interestCalculationMethod: 83,
withdrawalMethod: 114,
numberOfEmployees: '',
yearOfEstablishment: '',
registrationType: '',
mainBusinessScope: '',
expirationDateOfBusinessLicense: '',
financialReportSubmissionMethod: '',
natureOfBorrower: '',
},
myTable: {
159: {
prop: 'idNumber',//
type: '3',
},
161: {
prop: 'customerName',//
type: '3',
"subjectId": 7,
},
162: {
prop: 'currency',//
type: '1',
"subjectId": 8,
},
163: {
prop: 'goldLogo',//
type: '1',
"subjectId": 9,
},
164: {
prop: 'voucherType',//
type: '1',
"subjectId": 11,
},
166: {
prop: 'voucherNumber',//
type: '3',
"subjectId": 44,
},
167: {
prop: 'drawPassword',
type: '3',
"subjectId": 17,
},
168: {
prop: 'monthDeposit',//
type: '3',
"subjectId": 31,
},
170: {
prop: 'extendDepositTarget',//
type: '1',
"subjectId": 37,
},
},
submited: 0
loanDate: '',
loanVisible: false,
}
},
mounted () {
this.getDetail()
},
methods: {
// userName,
// peopleNumber,
// idNumber,
// currency:'CNY',
// goldLogo:'',
...mapMutations({
changeShowGoods: 'system/changeShowGoods',
setDataFlow: 'system/setDataFlow',
setNeedsModule: 'system/setNeedsModule',
setPopId: 'system/setPopId',
setTipsOperate: 'system/setTipsOperate'
}),
getDataBlur () {
// console.log('???')
},
popUp1 (text) {
this.setTipsOperate('请刷身份证');
this.setPopId('1399')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp2 (text) {
this.setTipsOperate('请刷银行卡');
this.setPopId('166')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
popUp3 (text) {
this.setTipsOperate('请在密码器输入密码');
this.setPopId('167')
sessionStorage.setItem('computerPath', this.$route.fullPath)
this.$router.push('/counter/list/')
},
getFormData () {
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = {
// 1399: 'nomUsefulPhrasesOpenCard2',
// 166: 'nomUsefulPhrasesOpenCard',
// 167: 'nomUsefulPhrasesOpenPassword'
}
const callback = () => {
if (this.form.idNumber) {
this.idNumberJudge = true
}
if (this.form.voucherNumber) {
this.cardNumberJudge = true
}
if (sessionStorage.getItem('nomUsefulPhrasesOpenPassword')) {
this.form.drawPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
}
//
async getDetail () {
if (this.id) {
//
const { data } = await companyLoanDetails(this.id)
this.form = data.bankCreditEvaluation
}
autoPlay2(parentId, this.form, this.myTable2, this.myTable, cards, callback)
},
submitForm () {
if (this.submited) return this.$message.error('已提交!')
if (!this.form.idNumber) {
messageIdCard()
// let projectId = sessionStorage.getItem('projectId')
// let startTime = sessionStorage.getItem('startTime')
// let formList = [
// {
// "answerId":'159',
// "emptyOne": "",
// "emptyTwo": "",
// "operationIds": "285," + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id +",287,5,26,59,155,159,13",
// "type": ""
// }
// ]
// let params= {
// parentId: '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155,159',
// lcJudgmentRuleReq:formList,
// projectId:+projectId,
// startTime:startTime,
// }
// addOperation(params).then((data)=>{
// this.$message({
// message: '',
// type: 'success'
// });
// }).catch((error)=>{
// })
return
}
if (!this.form.voucherNumber) {
messageCard('请填写凭证号码')
return
}
if (!this.form.drawPassword) {
messagePassword()
return
}
this.$refs.form.validate(myValidate(() => {
//
this.visible = true;
}, this.$refs));
//
showLoan () {
this.loanVisible = true
},
submitForm2 () {
// let nomUsefulPhrasesOpenCard = sessionStorage.getItem('nomUsefulPhrasesOpenCard')
// let nomUsefulPhrasesOpenCard2 = sessionStorage.getItem('nomUsefulPhrasesOpenCard2')
// let nomUsefulPhrasesOpenPassword = sessionStorage.getItem('nomUsefulPhrasesOpenPassword')
const parentId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',287,5,26,59,155'
const cards = [
{
key: '159,13'
}
// {
// 1399: nomUsefulPhrasesOpenCard2
// },
// {
// 166: nomUsefulPhrasesOpenCard
// },
// {
// 167: nomUsefulPhrasesOpenPassword,
// "subjectId": 17,
// }
]
this.setDataFlow(this.form)
autoPlay(parentId, this.form, this.myTable2, this.myTable, cards)
this.submited = 1
//
async loanSubmit () {
if (!this.loanDate) return this.$message.error('请选择放款日期!')
const { data } = await loanDisbursement({
companyLoanId: this.form.contractId,
loanDate: this.loanDate,
})
this.$message[data.status === 200 ? 'success' : 'error'](data.message)
setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
},
ismoney: ismoney,
checkHanzi: checkHanzi,
checkName: checkName,
inputListen: inputListen
},
computed: {
...mapGetters({
dataFlow: 'system/dataFlow',
needsModule: 'system/needsModule',
idCardNumber: 'system/idCardNumber',
inMyWork: 'system/inMyWork',
getSelectList: 'system/getSelectList'
})
}
}
</script>
<style lang='scss' scoped>
.wrap {
width: 100%;
height: calc(90vh - 70px);
height: calc(100vh - 118px);
padding: 20px;
overflow: auto;

@ -1,113 +1,95 @@
<template>
<!-- 贷款申请 -->
<div class="body">
<!-- 贷款放款 -->
<div class="wrap">
<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"
:row-class-name="tableRowClassName">
<el-table-column prop="currency"
label="客户姓名"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="贷款编号"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="放款日期"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="贷款金额"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="放款金额"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="放款状态"
align="center">
</el-table-column>
<el-table-column label="操作"
align="center"
width="150">
<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="loanDate" label="放款日期" align="center" />
<el-table-column prop="loanAmount" label="贷款金额" align="center" />
<el-table-column label="操作" align="center" width="150">
<template slot-scope="scope">
<el-button @click="toDetail(scope.row)"
size="small">查看</el-button>
<el-button v-if="!scope.row.builtIn" @click="toDetail(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>
</div>
</template>
<script>
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import { myValidate, checkHanzi, inputListen } from '@/utils/utilFunction.js'
import { mapState, mapMutations, mapGetters } from 'vuex'
import { addOperation, getOperation } from '@/api/http';
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList } from '@/api/http';
import MyTitle from '@/components/myTitle'
import list from './list'
export default {
name: 'index',
components: {
MyTitle,
},
data () {
return {
list,
headerCellStyle: headerCellStyle,
moduleName: 'tallerCash',
text: '柜员现金轧账',/* 顶部文字 */
visible: false,
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
visible: false,
submited: 0
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () {
this.initData()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
})
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val;
this.page = val
this.getData()
},
//
toDetail (row) {
this.$router.push(`/counter/list/manage/corporateLoans-detail`)
this.$router.push(`/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}`)
},
tableRowClassName: tableRowClassName,
checkHanzi: checkHanzi,
inputListen
},
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.body {
width: 100%;
padding: 24px;
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
</style>

@ -1,36 +1,23 @@
<template>
<!-- 贷款申请 -->
<div class="body">
<!-- 贷款管理 -->
<div class="wrap">
<my-title :titleArr="['公司贷款', '贷后管理']" />
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<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>
<el-table-column prop="currency" label="贷款编号" align="center">
</el-table-column>
<el-table-column prop="currency" label="贷款状态" align="center">
</el-table-column>
<el-table-column prop="currency" label="五级分类" align="center">
</el-table-column>
<el-table-column prop="currency" label="处理结果" align="center">
</el-table-column>
<el-table-column prop="currency" label="处理日期" align="center">
</el-table-column>
<el-table-column prop="currency" label="还款状态" align="center">
</el-table-column>
<el-table-column prop="currency" label="欠款金额" align="center">
</el-table-column>
<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="loanStatus" label="贷款状态" align="center" />
<el-table-column prop="updateTime" label="处理日期" align="center" />
<el-table-column label="操作" align="center" width="360">
<template slot-scope="scope">
<template v-if="!scope.row.builtIn" 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 v-if="!scope.row.nonPerformingLoan" @click="npl(scope.row)" size="small">不良贷款</el-button>
<el-button v-if="!scope.row.badDebtRecognition" @click="badDebt(scope.row)" size="small">呆账认定</el-button>
</template>
</el-table-column>
</el-table>
@ -82,8 +69,8 @@
</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="postLoanVisible" append-to-body style="z-index: 6000;" :close-on-click-modal="true"
:show-close="false" custom-class="dia postLoanDia">
<div class="data-dia23">
<div slot="title" class="dia-header">
<div class="data-title">贷后调查</div>
@ -91,48 +78,47 @@
<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 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>
<el-input type="textarea" :rows="3" size="small" v-model="form.stateChange" />
</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-select class="w-full" v-model="form.changesInSituation" size="small" placeholder="请选择">
<el-option v-for="item in opt1" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="偿债能力">
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-select v-model="form.debtPayingAbility" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="担保状况不利变化">
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-select v-model="form.adverseChanges" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :offset="1" :span="11">
<el-form-item label="经营状况">
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-select v-model="form.businessStatus" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="信用状况">
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-select v-model="form.creditStatus" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="五级分类">
<el-select v-model="form.goldLogo" placeholder="请选择">
<el-select v-model="form.fiveLevelClassification" size="small" placeholder="请选择">
<el-option v-for="item in selects" :label="item.options" :value="item.itemId" :key="item.itemId">
</el-option>
</el-select>
@ -140,7 +126,7 @@
</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" size="small" v-model="form.conclusionAndSuggestions">
</el-input>
</el-form-item>
</el-col>
@ -149,36 +135,30 @@
</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="postLoanVisible = false"> </el-button>
<el-button class="sure btn hover:bg-blue-700 " type="primary" @click="postLoanSubmit"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import { myValidate, checkHanzi, inputListen } from '@/utils/utilFunction.js'
import { mapState, mapMutations, mapGetters } from 'vuex'
import { addOperation, getOperation } from '@/api/http';
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList, loanCollection, nonPerformingLoans, badDebtRecognition, postLoanInvestigationInput } from '@/api/http';
import MyTitle from '@/components/myTitle'
import list from './list'
export default {
name: 'index',
components: {
MyTitle,
},
data () {
return {
list,
headerCellStyle: headerCellStyle,
moduleName: 'tallerCash',
text: '柜员现金轧账',/* 顶部文字 */
visible: false,
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
submited: 0,
msgs: [
'向贷款人预留各渠道联系方式发送催收信息',
'确认提交吗?',
@ -187,37 +167,114 @@ export default {
'不良贷款提交成功!',
'呆账认定提交成功!',
],
visible: false,
curMsg: 0,
curType: 3,
curRow: {},
formVisible: false,
postLoanVisible: false,
selects: [],
form: {},
form: {
stateChange: '',
changesInSituation: '',
debtPayingAbility: '',
adverseChanges: '',
businessStatus: '',
creditStatus: '',
fiveLevelClassification: '',
conclusionAndSuggestions: '',
},
opt1: [
{
id: 203,
name: '有'
},
{
id: 204,
name: '无'
},
],
opt2: [
{
id: 205,
name: '优'
},
{
id: 206,
name: '良'
},
{
id: 207,
name: '差'
},
],
opt3: [
{
id: 205,
name: '优'
},
{
id: 206,
name: '良'
},
{
id: 207,
name: '差'
},
],
curRow: {},
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () {
this.initData()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
})
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val;
this.page = val
this.getData()
},
//
collection (row) {
this.curRow = row
this.visible = true
this.curMsg = 0
},
//
postLoan (row) {
this.formVisible = true
this.curRow = row
this.postLoanVisible = true
},
//
async postLoanSubmit () {
await postLoanInvestigationInput(this.form)
this.postLoanVisible = false
},
//
npl (row) {
this.curRow = row
this.curType = 4
this.curRow = row
this.visible = true
@ -225,18 +282,36 @@ export default {
},
//
badDebt (row) {
this.curRow = row
this.curType = 5
this.curRow = row
this.visible = true
this.curMsg = -1
},
msgSubmit () {
async msgSubmit () {
if (!this.curMsg) {
//
await loanCollection({
companyLoanId: this.curRow.companyLoanId
})
this.getData()
this.curMsg = 2
} else if (this.curMsg < 0) {
this.curMsg = 1
} else if (this.curMsg === 1) {
this.curMsg = this.curType
if (this.curType === 4) {
//
await nonPerformingLoans({
companyLoanId: this.curRow.companyLoanId
})
} else {
//
await badDebtRecognition({
companyLoanId: this.curRow.companyLoanId
})
}
this.getData()
} else {
this.visible = false
}
@ -244,9 +319,6 @@ export default {
extension (row) {
},
tableRowClassName: tableRowClassName,
checkHanzi: checkHanzi,
inputListen
},
};
</script>
@ -255,8 +327,16 @@ export default {
@import '@/assets/css/tablebg.scss';
@import '@/styles/dialog.scss';
.body {
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
/deep/.postLoanDia {
.el-form-item__label {
padding-bottom: 0;
}
}
</style>

@ -1,80 +1,36 @@
<template>
<!-- 贷款申请 -->
<div class="body">
<!-- 贷款还款 -->
<div class="wrap">
<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"
:row-class-name="tableRowClassName">
<el-table-column prop="currency"
label="客户姓名"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="贷款编号"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="应还款日期"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="实际还款日期"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="本次还款金额"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="累计还款金额"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="欠款金额"
align="center">
</el-table-column>
<el-table-column prop="currency"
label="还款状态"
align="center">
</el-table-column>
<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="extension(scope.row)"
size="small">展期</el-button>
<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">
<template v-if="!scope.row.builtIn" slot-scope="scope">
<el-button @click="toDetail(scope.row)" size="small">详情</el-button>
<el-button size="small" @click="extension(scope.row)">展期</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>
</div>
</template>
<script>
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import { myValidate, checkHanzi, inputListen } from '@/utils/utilFunction.js'
import { mapState, mapMutations, mapGetters } from 'vuex'
import { addOperation, getOperation } from '@/api/http';
import { headerCellStyle } from '@/assets/js/myConfig'
import { companyLoanList } from '@/api/http';
import MyTitle from '@/components/myTitle'
import list from './list'
export default {
name: 'index',
components: {
@ -82,45 +38,60 @@ export default {
},
data () {
return {
list,
headerCellStyle: headerCellStyle,
moduleName: 'tallerCash',
text: '柜员现金轧账',/* 顶部文字 */
visible: false,
headerCellStyle,
searchTimer: null,
keyword: '',
list: [],
page: 1,
pageSize: 10,
total: 0,
visible: false,
submited: 0
}
},
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () {
this.initData()
},
methods: {
...mapMutations({
setTipsOperate: 'system/setTipsOperate'
}),
async getData () {
const { data } = await companyLoanList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
searchContent: this.keyword,
})
this.list = data.page.records
this.total = data.page.total
},
initData () {
this.page = 1
this.getData()
},
handleCurrentChange (val) {
this.page = val;
this.page = val
this.getData()
},
//
toDetail (row) {
this.$router.push(`/counter/list/manage/corporateLoans-detail`)
this.$router.push(`/counter/list/manage/corporateLoans-detail?id=${row.companyLoanId}`)
},
extension (row) {
},
tableRowClassName: tableRowClassName,
checkHanzi: checkHanzi,
inputListen
},
}
};
</script>
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.body {
width: 100%;
padding: 24px;
.wrap {
width: 100%;
max-height: calc(100vh - 118px);
padding: 24px;
overflow: auto;
}
</style>

@ -488,7 +488,10 @@ export default {
this.$refs.basicForm.validate(myValidate(async () => {
try {
const { data } = await personalBasicSave(basicForm)
const { data } = await personalBasicSave({
...this.$store.getters['system/commonIds'],
...basicForm,
})
this.setCreditIds({
personalLoanId: data.personalLoanId,
applicationDate: data.applicationDate || this.form.applicationDate,
@ -512,7 +515,10 @@ export default {
const { form } = this
form.personalLoanId = this.creditIds.personalLoanId
form.contractNo = this.creditIds.contractNo
const { data } = await loanContractSave(form)
const { data } = await loanContractSave({
...this.$store.getters['system/commonIds'],
...form,
})
data.status === 200 ? this.$router.push('/counter/list/manage/personalLoans') : this.$message.error(data.message)
} catch { (e) => { } }
},

@ -1,13 +1,15 @@
<template>
<div>
<div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
<div class="inner">
<div class="flex j-between m-b-20">
<div style="width: 300px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div>
<el-button type="primary"
@click="$router.push('/counter/list/manage/personalLoans-detail?show=&id=')">新建贷款申请</el-button>
</div>
<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 :data="list" :header-cell-style="headerCellStyle" :row-class-name="tableRowClassName">
<el-table-column prop="customerName" label="客户姓名" align="center"></el-table-column>
<el-table-column prop="contractNo" label="合同编号" align="center">
</el-table-column>
@ -27,14 +29,13 @@
</el-table-column>
<el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center">
</el-table-column>
<el-table-column prop="repaymentStatus" 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="250">
<template slot-scope="scope">
<template v-if="scope.row.personalLoanId > 0" slot-scope="scope">
<!-- 没加合同的才能编辑 -->
<el-button @click="toDetail(scope.row, 1)" size="small">{{ scope.row.contractNo ? '查看' : '编辑' }}</el-button>
<el-button @click="toDetail(scope.row, 1)" size="small">{{ scope.row.contractNo !== '——' ? '查看' : '编辑'
}}</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>
</template>
@ -54,35 +55,44 @@
clearable></el-date-picker>
</el-form-item>
<el-form-item label="还款周期">
<el-select v-model="form.status" placeholder="请选择" size="small">
<el-option label="待还款"></el-option>
<el-option label="未还款"></el-option>
<el-option label="已还款"></el-option>
<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="batchOverdue" size="small" type="primary">批量逾期</el-button>
<el-button @click="batchRepayment('已还款')" size="small" type="primary">批量还款</el-button>
<el-button @click="batchRepayment('逾期')" size="small" type="primary">批量逾期</el-button>
</div>
</div>
<el-table :data="repayments" stripe header-align="center" @selection-change="handleSelectionChangeRepayment"
row-key="id">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<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"></el-table-column>
<el-table-column prop="contractAmount" label="应还款" align="center"></el-table-column>
<el-table-column prop="contractAmount" label="还款状态" align="center"></el-table-column>
<el-table-column label="操作" align="center" width="150">
<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">
<el-button @click="back(scope.row)" size="small">还款</el-button>
<el-button @click="repayment(scope.row)" size="small">逾期</el-button>
<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="handleSelectionChangeRepayment" :total="totalRepayment"></el-pagination>
@current-change="handleCurrentChangePayment" :total="totalRepayment"></el-pagination>
</div>
</el-dialog>
</div>
@ -92,7 +102,7 @@
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import MyDialog from '@/components/dialogTwo'
import NeedBefore from '@/components/needBefore'
import { addOperation, personalBasicList, repaymentPlan } from '@/api/http';
import { batchProcessing, personalBasicList, repaymentPlan } from '@/api/http';
const moduleName = 'personalLoans/list'
import { mapMutations, mapGetters } from 'vuex'
@ -163,6 +173,7 @@ export default {
}),
async getData () {
const { data } = await personalBasicList({
...this.$store.getters['system/commonIds'],
pageNum: this.page,
pageSize: this.pageSize,
customerName: this.keyword,
@ -179,7 +190,7 @@ export default {
this.getData()
},
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) {
@ -192,34 +203,67 @@ export default {
},
//
async getRepayment (row) {
this.repaymentVisible = true
const { data } = await repaymentPlan({
pageNum: this.pageRepayment,
pageSize: this.pageSizeRepayment,
...this.form,
personalLoanId: this.curRow.personalLoanId,
})
this.list = data.list.records
this.total = data.list.total
this.repayments = data.list.records
this.totalRepayment = data.list.total
},
initRepayment () {
this.pageRepayment = 1
this.getRepayment()
},
handleCurrentChange (val) {
handleCurrentChangePayment (val) {
this.pageRepayment = val
this.getRepayment()
},
handleSelectionChangeRepayment (val) {
this.multipleSelection = val
},
//
batchRepayment () {
//
checkAble (row) {
return row.status === '待还款'
},
//
batchOverdue () {
// /
handleRepayment (row, status) {
const text = status === '已还款' ? '还款' : '逾期'
this.$confirm(`确定要${text}吗?`, "提示", {
type: "warning"
}).then(async () => {
await batchProcessing([{
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 batchProcessing(ids)
this.$message.success(`${text}成功`)
this.$refs.repayments.clearSelection()
this.multipleSelection = []
this.getRepayment()
}).catch(() => { })
} else {
this.$message.error(`请选择数据!`)
}
},
tableRowClassName,
},
@ -229,17 +273,13 @@ export default {
<style lang="scss" scoped>
@import '@/assets/css/tablebg.scss';
.wrap {
.inner {
width: 100%;
.body {
margin-top: 20px !important;
}
max-height: calc(100vh - 246px);
padding-right: 24px;
overflow: auto;
}
/deep/ .blueText {
color: blue;
}
/deep/.el-table .warning-row {
background: oldlace;
@ -249,18 +289,6 @@ export default {
background: #f0f9eb;
}
.submitBtn {
position: relative;
width: 200px;
font-size: 18px;
height: 45px;
margin-top: 50px;
border-radius: 10px;
bottom: 10px;
left: 50%;
transform: translate(-50%, -20%);
}
/deep/.filter-form {
.el-form-item {
margin-bottom: 0;

@ -91,6 +91,22 @@ const allGoods = {
771: { name: '损益表', src: require('@/assets/img/goods/syb.jpg'), id: 771 },
772: { name: '现金流量表', src: require('@/assets/img/goods/xjllb.jpg'), id: 772 },
804: { name: '法人身份证', src: require('@/assets/img/goods/idCard.png'), id: 804 },
805: { name: '抵押物房产证', src: require('@/assets/img/goods/khsqs.png'), id: 805 },
806: { name: '实际控制人婚姻情况证明(结/离婚证)', src: require('@/assets/img/goods/银行承兑协议.png'), id: 806 },
807: { name: '实际控制人配偶身份证复印件', src: require('@/assets/img/goods/khsqs.png'), id: 807 },
808: { name: '营业执照正本', src: require('@/assets/img/goods/ywsfpz.png'), id: 808 },
809: { name: '开户许可证(基本存款账户信息)', src: require('@/assets/img/goods/zcfzb.jpg'), id: 809 },
810: { name: '企业注册地址租赁合同或对应房产证', src: require('@/assets/img/goods/khsqs.png'), id: 810 },
811: { name: '公司章程', src: require('@/assets/img/goods/xjllb.jpg'), id: 811 },
812: { name: '公司股东证件复印件', src: require('@/assets/img/goods/syb.jpg'), id: 812 },
813: { name: '公章私章财务章', src: require('@/assets/img/goods/khsqs.png'), id: 813 },
814: { name: '公司近一年纳税证明', src: require('@/assets/img/goods/businessReportMissUser.png'), id: 814 },
815: { name: '公司近半年流水', src: require('@/assets/img/goods/khsqs.png'), id: 815 },
817: { name: '企业财务报表', src: require('@/assets/img/goods/businessSpecialApplication.png'), id: 817 },
818: { name: '贷款申请书', src: require('@/assets/img/goods/khsqs.png'), id: 818 },
819: { name: '征信授权书', src: require('@/assets/img/goods/zcfzb.jpg'), id: 819 },
// // 有图片的
// 407: {name:407,src:require('@/assets/img/goods/businessSpecialApplication.png'),id:407},
// 406: {name:406,src:require('@/assets/img/goods/businessReportMissUser.png'),id:406},
@ -1441,7 +1457,7 @@ const myInitState = {
'业务三十六': {
id: 844,
name: '贷款业务',
data: [13, 16, 770, 771, 772],
data: [13, 16, 770, 771, 772, 442, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 817, 818, 819],
needs: [],
isStamp: {
// '业务专用章': [ 411 ]
@ -2762,7 +2778,7 @@ export default {
'业务三十六': {
id: 844,
name: '贷款业务',
data: [13, 16, 770, 771, 772],
data: [13, 16, 770, 771, 772, 442, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 817, 818, 819],
needs: [],
isStamp: {
// '业务专用章': [ 411 ]
@ -2793,7 +2809,8 @@ export default {
allDataFlow: { ...allDataFlow },
isCredit: false,
creditIds: {},
creditImportIds: [],
creditImportIndex: 0,
creditImportIds: {},
},
mutations: {
// 设置tipDialog组件提示的信息。这个组件是根据UI设计的。
@ -3256,12 +3273,22 @@ export default {
setCreditIds (state, val) {
state.creditIds = val
},
// 缓存公司贷款里导入报表的当前所点击的索引
setCreditImportIndex (state, val) {
state.creditImportIndex = val
},
// 缓存公司贷款导入报表的id
initCreditImportIds (state, val) {
state.creditImportIds = val
},
// 缓存公司贷款导入报表的id
setCreditImportIds (state, val) {
if (val) {
state.creditImportIds.push(val)
state.creditImportIds[state.creditImportIndex] = val
// state.creditImportIds.push(val)
console.log("🚀 ~ setCreditImportIds ~ state.creditImportIds[state.creditImportIndex]:", state.creditImportIds, state.creditImportIds[state.creditImportIndex])
} else {
state.creditImportIds = []
state.creditImportIds = {}
}
},
},
@ -3287,6 +3314,13 @@ export default {
popId (state) {
return state.popId
},
// 获得当前的业务id和项目id
commonIds (state) {
return {
businessId: state.businessSelect[state.businessKey].id,
projectId: sessionStorage.getItem('projectId'),
}
},
// 获得当前业务的id,用来发送请求/获取缓存
businessId (state) {
return state.businessSelect[state.businessKey].id + ','

Loading…
Cancel
Save