贷款联调

20240205
yujialong 5 months ago
parent 317228af2d
commit 2de86fced4
  1. 36
      src/api/http.js
  2. 14
      src/pages/counter/list/index.vue
  3. 16
      src/pages/manage/index/index.vue
  4. 73
      src/pages/manage/list/corporateLoans/application.vue
  5. 574
      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. 382
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  11. 401
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  12. 539
      src/pages/manage/list/corporateLoans/detail.vue
  13. 118
      src/pages/manage/list/corporateLoans/loan.vue
  14. 208
      src/pages/manage/list/corporateLoans/management.vue
  15. 133
      src/pages/manage/list/corporateLoans/repayment.vue
  16. 10
      src/pages/manage/list/personalLoans/detail.vue
  17. 142
      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 => { export const creditEvaluationInput = data => {
return post(`${host}/judgment/bankCreditEvaluation/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 => { export const companyLoanList = data => {
return post(`${host}/judgment/bankCompanyLoans/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) => { export const loanContractSave = (data) => {
return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data) return post('/judgment/bankPersonalLoanContractInfo/saveOrUpdate', data)
@ -76,6 +109,9 @@ export const grantALoan = (data) => {
export const repaymentPlan = (data) => { export const repaymentPlan = (data) => {
return post(`/judgment/bankPersonalRepaymentPlan/repaymentPlan`, data) return post(`/judgment/bankPersonalRepaymentPlan/repaymentPlan`, data)
} }
export const batchProcessing = (data) => {
return post(`/judgment/bankPersonalRepaymentPlan/batchProcessing`, data)
}
export const operationExtension = (data) => { export const operationExtension = (data) => {
return post(`/judgment/bankPersonalLoanContractInfo/operationExtension?contractId=${data.id}&extensionPeriod=${data.extensionPeriod}`) return post(`/judgment/bankPersonalLoanContractInfo/operationExtension?contractId=${data.id}&extensionPeriod=${data.extensionPeriod}`)
} }

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

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

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

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

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

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

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

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

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

@ -7,382 +7,117 @@
<h6 class="l-title">客户信息</h6> <h6 class="l-title">客户信息</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="贷款类型" prop="certificateType"> <el-form-item label="贷款类型">
<el-select v-model.trim="form.certificateType" placeholder="请选择" ref="certificateType"> <el-select value="企业经营贷款" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option> <el-option value="企业经营贷款"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="授信金额" prop="customerName"> <el-form-item label="授信金额">
<el-input v-model="form.customerName"></el-input> <el-input v-model="form.creditAmount" disabled />
</el-form-item> </el-form-item>
<el-form-item label="起息日期" prop="customerName"> <el-form-item label="起息日期" prop="valueDate">
<el-input v-model="form.customerName"></el-input> <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>
<el-form-item label="计息方式" prop="customerName"> <el-form-item label="计息方式">
<el-select v-model.trim="form.certificateType" placeholder="请选择"> <el-input value="按LPR浮动计息" disabled />
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="执行利率" prop="customerName"> <el-form-item label="执行利率" prop="executedInterestRate">
<el-input v-model="form.customerName"></el-input> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="担保方式" prop="customerName"> <el-form-item label="担保方式">
<el-select v-model.trim="form.certificateType" placeholder="请选择"> <el-select v-model="form.guaranteeMethod" placeholder="请选择">
<el-option label="身份证" :value="83"> </el-option> <el-option v-for="(item, i) in loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="利息总额" prop="customerName"> <el-form-item label="利息总额">
<el-input v-model="form.customerName"></el-input> <el-input v-model="form.totalInterestAmount" />
</el-form-item> </el-form-item>
<el-form-item label="还款账号" prop="customerName"> <el-form-item label="还款账号">
<el-input v-model="form.customerName"></el-input> <el-input v-model="form.repaymentAccount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="合同编号" prop="customerName"> <el-form-item label="合同编号" prop="contractNo">
<el-input v-model="form.customerName"></el-input> <el-input v-model="form.contractNo" disabled />
</el-form-item> </el-form-item>
<el-form-item label="授信期限" prop="customerName"> <el-form-item label="授信期限">
<el-input v-model="form.customerName"></el-input> <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>
<el-form-item label="到期日期" prop="customerName"> <el-form-item label="到期日期">
<el-input v-model="form.customerName"></el-input> <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>
<el-form-item label="基准利率" prop="customerName"> <el-form-item label="基准利率" prop="baseInterestRate">
<el-input v-model="form.customerName"></el-input> <el-input value="3.20%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="逾期利率" prop="customerName"> <el-form-item label="逾期利率" prop="overdueInterestRate">
<el-select v-model.trim="form.certificateType" placeholder="请选择"> <el-input value="10%" disabled />
<el-option label="身份证" :value="83"> </el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="customerName"> <el-form-item label="还款方式" prop="repaymentMethod">
<el-select v-model.trim="form.certificateType" placeholder="请选择"> <el-select v-model="form.repaymentMethod" placeholder="请选择" disabled>
<el-option label="身份证" :value="83"> </el-option> <el-option label="等额本金" :value="1"></el-option>
<el-option label="等额本息" :value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="贷款金额" prop="customerName"> <el-form-item label="贷款金额">
<el-input v-model="form.customerName"></el-input> <el-input v-model="form.loanAmount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<div class="text-center m-t-20"> <div class="text-center m-t-20">
<el-button @click="$emit('updateStep', 0)" type="primary" class="submitBtn" v-throttle>上一步</el-button> <el-button @click="$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>
</div> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js'; import { addOperation, loanApplicationInput } from '@/api/http'
import { mobPattern, namePattern, ratePattern, vercustomer } from '@/utils/verify.js' import Util from '@/libs/util'
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'
export default { 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 () { data () {
return { return {
moduleName: 'usefulPhrases/openAccount',
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: { form: {
// valueDate: '',
// identityCard: '', // creditTerm: '',
idNumber: '', expirationDate: '',
customerName: '', // totalInterestAmount: '',
currency: '', // loanAmount: '',
goldLogo: '', // propertyCertificateNo: '',
voucherType: '', // repaymentMethod: '',
monthDeposit: '', // interestTotal: '',
depositTerm: '', // repaymentAccount: '',
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,
}
},
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 () { mounted () {
}, },
methods: { methods: {
// userName, //
// peopleNumber, maturityDateCalc () {
// idNumber, const { valueDate, creditTerm } = this.form
// currency:'CNY', if (valueDate && creditTerm) {
// goldLogo:'', const date = new Date(valueDate)
...mapMutations({ date.setMonth(creditTerm)
changeShowGoods: 'system/changeShowGoods', this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
setDataFlow: 'system/setDataFlow', }
setNeedsModule: 'system/setNeedsModule', },
setPopId: 'system/setPopId', async submit () {
setTipsOperate: 'system/setTipsOperate' try {
}), const { data } = await loanApplicationInput({
getDataBlur () { ...this.$store.state.system.creditIds,
// console.log('???') ...this.form,
}, })
popUp1 (text) { this.$message[data.status === 200 ? 'success' : 'error']('创建成功!')
this.setTipsOperate('请刷身份证'); setTimeout(this.$router.push('/counter/list/manage/orporateLoans-application'), 1500)
this.setPopId('1399') } catch { (e) => { } }
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
}, },
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> </script>
<style lang='scss' scoped> <style lang='scss' scoped>

@ -1,4 +1,4 @@
<!-- 代收电费 --> <!-- 公司贷款详情 -->
<template> <template>
<div class="wrap"> <div class="wrap">
<MyTitle :titleArr="['公司贷款', '贷款详情']" /> <MyTitle :titleArr="['公司贷款', '贷款详情']" />
@ -8,40 +8,33 @@
<h6 class="l-title">信用评估</h6> <h6 class="l-title">信用评估</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="账号" prop="customerName"> <el-form-item label="账号">
<el-input ref="customerName" disabled :value="form.customerName" <el-input v-model="form.applicationNumber" disabled />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="证件类型" prop="customerName"> <el-form-item label="证件类型">
<el-input ref="customerName" disabled :value="form.customerName" <el-select v-model.trim="form.identificationType" placeholder="请选择" disabled>
@input="(val) => checkName(val, form, 'customerName')"></el-input> <el-option label="统一社会信用代码证" :value="82"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="注册地址" prop="customerName"> <el-form-item label="注册地址">
<el-input ref="customerName" disabled :value="form.customerName" <el-input v-model="form.companyRegisteredAddress" />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人证件号码" prop="customerName"> <el-form-item label="法人证件号码">
<el-input ref="customerName" disabled :value="form.customerName" <el-input v-model="form.corporateIdNumber" />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="客户名称" prop="customerName"> <el-form-item label="客户名称">
<el-input ref="customerName" disabled :value="form.customerName" <el-input v-model="form.customerName" disabled />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="证件号码">
<el-form-item label="证件号码" required> <el-input v-model="form.corporateIdNumber" disabled />
<el-input :value="form.mailbox" @input="val => mailBoxListen(val, form, 'mailbox')" maxlength="30"
ref="mailbox"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人姓名" prop="customerName"> <el-form-item label="法人姓名">
<el-input ref="customerName" disabled :value="form.customerName" <el-input v-model="form.corporateName" />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="信用评级" prop="customerName"> <el-form-item label="信用评级">
<el-input ref="customerName" disabled :value="form.customerName" <el-input v-model="form.creditRating" />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -50,9 +43,8 @@
<h6 class="l-title">授信</h6> <h6 class="l-title">授信</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="授信金额" prop="customerName"> <el-form-item label="授信金额">
<el-input ref="customerName" :value="form.customerName" <el-input v-model="form.creditAmount" disabled />
@input="(val) => checkName(val, form, 'customerName')"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -61,19 +53,25 @@
<h6 class="l-title">贷款申请</h6> <h6 class="l-title">贷款申请</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="授信年限" prop="customerName"> <el-form-item label="授信年限" required>
<el-input ref="customerName" :value="form.customerName"></el-input> <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>
<el-form-item label="还款方式" prop="customerName"> <el-form-item label="还款方式" required>
<el-input ref="customerName" :value="form.customerName"></el-input> <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-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="年化利率" prop="customerName"> <el-form-item label="年化利率">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="发放方式" prop="customerName"> <el-form-item label="发放方式" required>
<el-input ref="customerName" :value="form.customerName"></el-input> <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-form-item>
</el-col> </el-col>
@ -82,414 +80,153 @@
<h6 class="l-title">贷款合同录入</h6> <h6 class="l-title">贷款合同录入</h6>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="贷款类型" prop="customerName"> <el-form-item label="贷款类型">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-select value="企业经营贷款" placeholder="请选择">
<el-option value="企业经营贷款"></el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="授信金额" prop="customerName"> <el-form-item label="授信金额">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input v-model="form.creditAmount" disabled />
</el-form-item> </el-form-item>
<el-form-item label="起息日期" prop="customerName"> <el-form-item label="起息日期" prop="valueDate">
<el-input ref="customerName" :value="form.customerName"></el-input> <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>
<el-form-item label="计息方式" prop="customerName"> <el-form-item label="计息方式">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input value="按LPR浮动计息" disabled />
</el-form-item> </el-form-item>
<el-form-item label="执行利率" prop="customerName"> <el-form-item label="执行利率" prop="executedInterestRate">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input value="3.2%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="担保方式" prop="customerName"> <el-form-item label="担保方式">
<el-input ref="customerName" :value="form.customerName"></el-input> <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>
<el-form-item label="利息总额" prop="customerName"> <el-form-item label="利息总额">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input v-model="form.totalInterestAmount" />
</el-form-item> </el-form-item>
<el-form-item label="还款账号" prop="customerName"> <el-form-item label="还款账号">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input v-model="form.repaymentAccount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="10" :offset="1"> <el-col :span="10" :offset="1">
<el-form-item label="合同编号" prop="customerName"> <el-form-item label="合同编号" prop="contractNo">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input v-model="form.contractNo" disabled />
</el-form-item> </el-form-item>
<el-form-item label="授信期限" prop="customerName"> <el-form-item label="授信期限">
<el-input ref="customerName" :value="form.customerName"></el-input> <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>
<el-form-item label="到期日期" prop="customerName"> <el-form-item label="到期日期">
<el-input ref="customerName" :value="form.customerName"></el-input> <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>
<el-form-item label="基准利率" prop="customerName"> <el-form-item label="基准利率" prop="baseInterestRate">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input value="3.20%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="逾期利率" prop="customerName"> <el-form-item label="逾期利率" prop="overdueInterestRate">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input value="10%" disabled />
</el-form-item> </el-form-item>
<el-form-item label="还款方式" prop="customerName"> <el-form-item label="还款方式" prop="repaymentMethod">
<el-input ref="customerName" :value="form.customerName"></el-input> <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>
<el-form-item label="贷款申请金额" prop="customerName"> <el-form-item label="贷款金额">
<el-input ref="customerName" :value="form.customerName"></el-input> <el-input v-model="form.loanAmount" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
</el-row> </el-row>
<my-dialog :moduleName="moduleName" v-if="visible" :visible.sync="visible" :showForm="form" :formName="formName" <div class="text-center">
@submitIt="submitForm2" depositNumber='0816' /> <el-button @click="showLoan" type="primary" class="submitBtn" v-throttle>放款</el-button>
<el-button @click="submitForm" 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> </div>
<!-- <need-before v-else :moduleName='needBefore' :unNeed="unNeed" /> -->
</template> </template>
<script> <script>
import { myValidate, checkHanzi, checkName, ismoney, autoPlay, autoPlay2, inputListen, messageIdCard, messageCard, messagePassword } from '@/utils/utilFunction.js'; import { loanDisbursement, companyLoanDetails } from '@/api/http'
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 MyTitle from '@/components/myTitle'
export default { export default {
name: '',
props: {},
components: { components: {
NeedBefore,
MyTitle, 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 () { data () {
return { return {
moduleName: 'usefulPhrases/openAccount', id: this.$route.query.id,
visible: false,
cardNumberJudge: false,
idNumberJudge: false,
form: { form: {
// applicationAccount: '',
// identityCard: '', // customerName: '',
idNumber: '', identificationType: '',
customerName: '', // identificationNumber: '',
currency: '', // contactPhoneNumber: '',
goldLogo: '', // companyRegisteredAddress: '',
voucherType: '', // corporateName: '',
monthDeposit: '', // corporateIdNumber: '',
depositTerm: '', // contactPhoneNumber: '',
extendDepositTarget: '', // currency: 12,
voucherNumber: '', // accountType: 97,
drawPassword: '', // interestRate: 3.2,
// interestCalculationMethod: 83,
clientNumber: '', // withdrawalMethod: 114,
certificateType: 83, // numberOfEmployees: '',
}, yearOfEstablishment: '',
formName: { registrationType: '',
// mainBusinessScope: '',
// identityCard: '', // expirationDateOfBusinessLicense: '',
idNumber: '身份证', financialReportSubmissionMethod: '',
customerName: '客户姓名', // natureOfBorrower: '',
currency: '币种', // },
goldLogo: '钞汇标识', // loanDate: '',
voucherType: '凭证类型', // loanVisible: false,
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,
}
},
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 () { mounted () {
this.getDetail()
}, },
methods: { methods: {
// userName, //
// peopleNumber, async getDetail () {
// idNumber, if (this.id) {
// currency:'CNY', //
// goldLogo:'', const { data } = await companyLoanDetails(this.id)
...mapMutations({ this.form = data.bankCreditEvaluation
changeShowGoods: 'system/changeShowGoods', }
setDataFlow: 'system/setDataFlow', },
setNeedsModule: 'system/setNeedsModule', //
setPopId: 'system/setPopId', showLoan () {
setTipsOperate: 'system/setTipsOperate' this.loanVisible = true
}), },
getDataBlur () { //
// console.log('???') async loanSubmit () {
}, if (!this.loanDate) return this.$message.error('请选择放款日期!')
popUp1 (text) { const { data } = await loanDisbursement({
this.setTipsOperate('请刷身份证'); companyLoanId: this.form.contractId,
this.setPopId('1399') loanDate: this.loanDate,
sessionStorage.setItem('computerPath', this.$route.fullPath) })
this.$router.push('/counter/list/') this.$message[data.status === 200 ? 'success' : 'error'](data.message)
}, setTimeout(this.$router.push('/counter/list/manage/personalLoans'), 1500)
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)
},
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));
},
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> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
.wrap { .wrap {
width: 100%; width: 100%;
height: calc(90vh - 70px); height: calc(100vh - 118px);
padding: 20px; padding: 20px;
overflow: auto; overflow: auto;

@ -1,113 +1,95 @@
<template> <template>
<!-- 贷款申请 --> <!-- 贷款放款 -->
<div class="body"> <div class="wrap">
<my-title :titleArr="['公司贷款', '贷款放款']" /> <my-title :titleArr="['公司贷款', '贷款放款']" />
<div style="width: 300px;margin-bottom: 20px;"> <div style="width: 300px;margin-bottom: 20px;">
<el-input v-model="keyword" <el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
placeholder="请输入客户姓名"
clearable />
</div> </div>
<el-table max-height="350" <el-table :data="list" stripe :header-cell-style="headerCellStyle">
ref="filterTable" <el-table-column prop="customerName" label="客户姓名" align="center" />
:data="list" <el-table-column prop="applicationNumber" label="贷款编号" align="center" />
:header-cell-style="headerCellStyle" <el-table-column prop="loanDate" label="放款日期" align="center" />
:row-class-name="tableRowClassName"> <el-table-column prop="loanAmount" label="贷款金额" align="center" />
<el-table-column prop="currency" <el-table-column label="操作" align="center" width="150">
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"> <template slot-scope="scope">
<el-button @click="toDetail(scope.row)" <el-button v-if="!scope.row.builtIn" @click="toDetail(scope.row)" size="small">详情</el-button>
size="small">查看</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background <el-pagination background layout="total, prev, pager, next" :current-page="page"
layout="total, prev, pager, next" @current-change="handleCurrentChange" :total="total"></el-pagination>
:current-page="page"
@current-change="handleCurrentChange"
:total="total"></el-pagination>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig' import { headerCellStyle } from '@/assets/js/myConfig'
import { myValidate, checkHanzi, inputListen } from '@/utils/utilFunction.js' import { companyLoanList } from '@/api/http';
import { mapState, mapMutations, mapGetters } from 'vuex'
import { addOperation, getOperation } from '@/api/http';
import MyTitle from '@/components/myTitle' import MyTitle from '@/components/myTitle'
import list from './list'
export default { export default {
name: 'index',
components: { components: {
MyTitle, MyTitle,
}, },
data () { data () {
return { return {
list, headerCellStyle,
headerCellStyle: headerCellStyle, searchTimer: null,
moduleName: 'tallerCash', keyword: '',
text: '柜员现金轧账',/* 顶部文字 */ list: [],
visible: false,
page: 1, page: 1,
pageSize: 10, pageSize: 10,
total: 0, total: 0,
visible: false,
submited: 0
} }
}, },
watch: {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData()
}, 500)
},
},
mounted () { mounted () {
this.initData()
}, },
methods: { methods: {
...mapMutations({ async getData () {
setTipsOperate: 'system/setTipsOperate' 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) { handleCurrentChange (val) {
this.page = val; this.page = val
this.getData()
}, },
//
toDetail (row) { 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> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@/assets/css/tablebg.scss'; @import '@/assets/css/tablebg.scss';
.body {
.wrap {
width: 100%; width: 100%;
max-height: calc(100vh - 118px);
padding: 24px; padding: 24px;
overflow: auto;
} }
</style> </style>

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

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

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

@ -1,13 +1,15 @@
<template> <template>
<div> <div class="inner">
<div style="width: 300px;margin-bottom: 20px;"> <div class="flex j-between m-b-20">
<div style="width: 300px;">
<el-input v-model="keyword" placeholder="请输入客户姓名" clearable /> <el-input v-model="keyword" placeholder="请输入客户姓名" clearable />
</div> </div>
<el-button style="margin-bottom: 20px;" type="primary" <el-button type="primary"
@click="$router.push('/counter/list/manage/personalLoans-detail?show=&id=')">新建贷款申请</el-button> @click="$router.push('/counter/list/manage/personalLoans-detail?show=&id=')">新建贷款申请</el-button>
<el-table ref="filterTable" :data="list" height="300" :header-cell-style="headerCellStyle" </div>
: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="customerName" label="客户姓名" align="center"></el-table-column>
<el-table-column prop="contractNo" label="合同编号" align="center"> <el-table-column prop="contractNo" label="合同编号" align="center">
</el-table-column> </el-table-column>
@ -27,14 +29,13 @@
</el-table-column> </el-table-column>
<el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center"> <el-table-column v-if="index !== '3'" prop="totalRepaymentAmount" key="1" label="累计还款金额" align="center">
</el-table-column> </el-table-column>
<el-table-column 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 v-if="index === '3'" prop="currency" key="3" label="展期期限" align="center">
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="250"> <el-table-column label="操作" align="center" width="250">
<template 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 v-if="!scope.row.renewalOrNot" @click="toDetail(scope.row, 2)" size="small">展期</el-button>
<el-button @click="repayment(scope.row)" size="small">还款计划</el-button> <el-button @click="repayment(scope.row)" size="small">还款计划</el-button>
</template> </template>
@ -54,35 +55,44 @@
clearable></el-date-picker> clearable></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="还款周期"> <el-form-item label="还款周期">
<el-select v-model="form.status" placeholder="请选择" size="small"> <el-select v-model="form.status" placeholder="请选择" size="small" clearable @change="initRepayment">
<el-option label="待还款"></el-option> <el-option value="待还款"></el-option>
<el-option label="未还款"></el-option> <el-option value="未还款"></el-option>
<el-option label="已还款"></el-option> <el-option value="已还款"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div> <div>
<el-button @click="batchRepayment" size="small" type="primary">批量还款</el-button> <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>
</div> </div>
</div> </div>
<el-table :data="repayments" stripe header-align="center" @selection-change="handleSelectionChangeRepayment" <el-table ref="repayments" :data="repayments" stripe header-align="center"
row-key="id"> @selection-change="handleSelectionChangeRepayment" row-key="id">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> <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 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 prop="contractAmount" label="应还款" align="center"></el-table-column> <template slot-scope="scope">
<el-table-column prop="contractAmount" label="还款状态" align="center"></el-table-column> {{ scope.row.periodStart + '~' + scope.row.periodEnd }}
<el-table-column label="操作" align="center" width="150"> </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"> <template slot-scope="scope">
<el-button @click="back(scope.row)" size="small">还款</el-button> <p :class="{ 'text-red': scope.row.status === '逾期' }">{{ scope.row.status }}</p>
<el-button @click="repayment(scope.row)" size="small">逾期</el-button> </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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination"> <div class="pagination">
<el-pagination background layout="total, prev, pager, next" :current-page="pageRepayment" <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> </div>
</el-dialog> </el-dialog>
</div> </div>
@ -92,7 +102,7 @@
import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig' import { tableRowClassName, headerCellStyle } from '@/assets/js/myConfig'
import MyDialog from '@/components/dialogTwo' import MyDialog from '@/components/dialogTwo'
import NeedBefore from '@/components/needBefore' import NeedBefore from '@/components/needBefore'
import { addOperation, personalBasicList, repaymentPlan } from '@/api/http'; import { batchProcessing, personalBasicList, repaymentPlan } from '@/api/http';
const moduleName = 'personalLoans/list' const moduleName = 'personalLoans/list'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
@ -163,6 +173,7 @@ export default {
}), }),
async getData () { async getData () {
const { data } = await personalBasicList({ const { data } = await personalBasicList({
...this.$store.getters['system/commonIds'],
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
customerName: this.keyword, customerName: this.keyword,
@ -179,7 +190,7 @@ export default {
this.getData() this.getData()
}, },
toDetail (row, show) { toDetail (row, show) {
this.$router.push(`/counter/list/manage/personalLoans-detail?show=${show === 2 ? 2 : row.contractNo ? 1 : ''}&id=${row.personalLoanId}`) this.$router.push(`/counter/list/manage/personalLoans-detail?show=${show === 2 ? 2 : row.contractNo !== '——' ? 1 : ''}&id=${row.personalLoanId}`)
}, },
back (row) { back (row) {
@ -192,34 +203,67 @@ export default {
}, },
// //
async getRepayment (row) { async getRepayment (row) {
this.repaymentVisible = true
const { data } = await repaymentPlan({ const { data } = await repaymentPlan({
pageNum: this.pageRepayment, pageNum: this.pageRepayment,
pageSize: this.pageSizeRepayment, pageSize: this.pageSizeRepayment,
...this.form, ...this.form,
personalLoanId: this.curRow.personalLoanId, personalLoanId: this.curRow.personalLoanId,
}) })
this.list = data.list.records this.repayments = data.list.records
this.total = data.list.total this.totalRepayment = data.list.total
}, },
initRepayment () { initRepayment () {
this.pageRepayment = 1 this.pageRepayment = 1
this.getRepayment() this.getRepayment()
}, },
handleCurrentChange (val) { handleCurrentChangePayment (val) {
this.pageRepayment = val this.pageRepayment = val
this.getRepayment() this.getRepayment()
}, },
handleSelectionChangeRepayment (val) { handleSelectionChangeRepayment (val) {
this.multipleSelection = 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, tableRowClassName,
}, },
@ -229,17 +273,13 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import '@/assets/css/tablebg.scss'; @import '@/assets/css/tablebg.scss';
.wrap { .inner {
width: 100%; width: 100%;
max-height: calc(100vh - 246px);
.body { padding-right: 24px;
margin-top: 20px !important; overflow: auto;
}
} }
/deep/ .blueText {
color: blue;
}
/deep/.el-table .warning-row { /deep/.el-table .warning-row {
background: oldlace; background: oldlace;
@ -249,18 +289,6 @@ export default {
background: #f0f9eb; 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 { /deep/.filter-form {
.el-form-item { .el-form-item {
margin-bottom: 0; margin-bottom: 0;

@ -91,6 +91,22 @@ const allGoods = {
771: { name: '损益表', src: require('@/assets/img/goods/syb.jpg'), id: 771 }, 771: { name: '损益表', src: require('@/assets/img/goods/syb.jpg'), id: 771 },
772: { name: '现金流量表', src: require('@/assets/img/goods/xjllb.jpg'), id: 772 }, 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}, // 407: {name:407,src:require('@/assets/img/goods/businessSpecialApplication.png'),id:407},
// 406: {name:406,src:require('@/assets/img/goods/businessReportMissUser.png'),id:406}, // 406: {name:406,src:require('@/assets/img/goods/businessReportMissUser.png'),id:406},
@ -1441,7 +1457,7 @@ const myInitState = {
'业务三十六': { '业务三十六': {
id: 844, id: 844,
name: '贷款业务', 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: [], needs: [],
isStamp: { isStamp: {
// '业务专用章': [ 411 ] // '业务专用章': [ 411 ]
@ -2762,7 +2778,7 @@ export default {
'业务三十六': { '业务三十六': {
id: 844, id: 844,
name: '贷款业务', 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: [], needs: [],
isStamp: { isStamp: {
// '业务专用章': [ 411 ] // '业务专用章': [ 411 ]
@ -2793,7 +2809,8 @@ export default {
allDataFlow: { ...allDataFlow }, allDataFlow: { ...allDataFlow },
isCredit: false, isCredit: false,
creditIds: {}, creditIds: {},
creditImportIds: [], creditImportIndex: 0,
creditImportIds: {},
}, },
mutations: { mutations: {
// 设置tipDialog组件提示的信息。这个组件是根据UI设计的。 // 设置tipDialog组件提示的信息。这个组件是根据UI设计的。
@ -3256,12 +3273,22 @@ export default {
setCreditIds (state, val) { setCreditIds (state, val) {
state.creditIds = val state.creditIds = val
}, },
// 缓存公司贷款里导入报表的当前所点击的索引
setCreditImportIndex (state, val) {
state.creditImportIndex = val
},
// 缓存公司贷款导入报表的id
initCreditImportIds (state, val) {
state.creditImportIds = val
},
// 缓存公司贷款导入报表的id // 缓存公司贷款导入报表的id
setCreditImportIds (state, val) { setCreditImportIds (state, val) {
if (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 { } else {
state.creditImportIds = [] state.creditImportIds = {}
} }
}, },
}, },
@ -3287,6 +3314,13 @@ export default {
popId (state) { popId (state) {
return state.popId return state.popId
}, },
// 获得当前的业务id和项目id
commonIds (state) {
return {
businessId: state.businessSelect[state.businessKey].id,
projectId: sessionStorage.getItem('projectId'),
}
},
// 获得当前业务的id,用来发送请求/获取缓存 // 获得当前业务的id,用来发送请求/获取缓存
businessId (state) { businessId (state) {
return state.businessSelect[state.businessKey].id + ',' return state.businessSelect[state.businessKey].id + ','

Loading…
Cancel
Save