yujialong 4 weeks ago
parent 2dd4cf8180
commit fbb6eb61de
  1. 6
      package-lock.json
  2. 1
      package.json
  3. 3
      src/api/http.js
  4. 2
      src/pages/manage/list/agent/electricRate.vue
  5. 2
      src/pages/manage/list/corporateLoans/application.vue
  6. 26
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/importReport.vue
  7. 27
      src/pages/manage/list/corporateLoans/apply/creditEvaluation/preLoan.vue
  8. 14
      src/pages/manage/list/corporateLoans/apply/loanApplication/step1.vue
  9. 28
      src/pages/manage/list/corporateLoans/apply/loanApplication/step2.vue
  10. 1
      src/pages/manage/list/corporateLoans/loan.vue
  11. 9
      src/pages/manage/list/corporateLoans/management.vue
  12. 21
      src/pages/manage/list/corporateLoans/repayment.vue
  13. 1
      src/pages/manage/list/personalLoans/detail.vue
  14. 22
      src/pages/manage/list/personalLoans/list.vue

6
package-lock.json generated

@ -8298,9 +8298,9 @@
} }
}, },
"lodash": { "lodash": {
"version": "4.17.15", "version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
}, },
"lodash._basecopy": { "lodash._basecopy": {
"version": "3.0.1", "version": "3.0.1",

@ -18,6 +18,7 @@
"element-theme": "^2.0.1", "element-theme": "^2.0.1",
"element-ui": "^2.13.0", "element-ui": "^2.13.0",
"js-cookie": "^2.2.1", "js-cookie": "^2.2.1",
"lodash": "^4.17.21",
"mavon-editor": "^2.6.17", "mavon-editor": "^2.6.17",
"postcss": "^7.0.36", "postcss": "^7.0.36",
"postcss-px2rem": "^0.3.0", "postcss-px2rem": "^0.3.0",

@ -68,6 +68,9 @@ export const creditEvaluationDetails = data => {
export const loanApplicationInput = data => { export const loanApplicationInput = data => {
return post(`/judgment/bankLoanApplication/loanApplicationInput`, data) return post(`/judgment/bankLoanApplication/loanApplicationInput`, data)
} }
export const loanApplicationInterestCalculation = data => {
return post(`/judgment/bankLoanApplication/loanApplicationInterestCalculation`, data)
}
export const loanApplicationDetails = data => { export const loanApplicationDetails = data => {
return get(`/judgment/bankLoanApplication/loanApplicationDetails`, data) return get(`/judgment/bankLoanApplication/loanApplicationDetails`, data)
} }

@ -355,7 +355,7 @@ export default {
{ answerId: 725, emptyOne: 111, emptyTwo: form.paymentUnit, operationIds: preId + ',725', type: 3 }, { answerId: 725, emptyOne: 111, emptyTwo: form.paymentUnit, operationIds: preId + ',725', type: 3 },
{ answerId: 726, emptyOne: 112, emptyTwo: form.houseId, operationIds: preId + ',726', type: 3 }, { answerId: 726, emptyOne: 112, emptyTwo: form.houseId, operationIds: preId + ',726', type: 3 },
{ answerId: 730, emptyOne: '', emptyTwo: '', operationIds: preId + ',730', type: '' }, { answerId: 730, emptyOne: 153, emptyTwo: form.address, operationIds: preId + ',730', type: 3 },
{ answerId: 727, emptyOne: 113, emptyTwo: form.paymentMoney, operationIds: preId + ',727', type: 3 }, { answerId: 727, emptyOne: 113, emptyTwo: form.paymentMoney, operationIds: preId + ',727', type: 3 },
{ answerId: 728, emptyOne: 114, emptyTwo: form.monthlyWithholding, operationIds: preId + ',728', type: 1 }, { answerId: 728, emptyOne: 114, emptyTwo: form.monthlyWithholding, operationIds: preId + ',728', type: 1 },
{ answerId: 729, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',729', type: 3 }, { answerId: 729, emptyOne: 17, emptyTwo: form.drawPassword, operationIds: preId + ',729', type: 3 },

@ -16,6 +16,7 @@
<el-table-column prop="applicationNumber" label="申请编号" align="center" /> <el-table-column prop="applicationNumber" label="申请编号" align="center" />
<el-table-column prop="createTime" label="申请日期" align="center" /> <el-table-column prop="createTime" label="申请日期" align="center" />
<el-table-column prop="loanApplicationAmount" label="申请金额" align="center" /> <el-table-column prop="loanApplicationAmount" label="申请金额" align="center" />
<el-table-column prop="processingStatus" label="办理状态" align="center" />
<el-table-column label="操作" align="center" width="150"> <el-table-column label="操作" align="center" width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="!!scope.row.builtIn" @click="toDetail(scope.row)" size="small">{{ <el-button :disabled="!!scope.row.builtIn" @click="toDetail(scope.row)" size="small">{{
@ -69,6 +70,7 @@ export default {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
searchContent: this.keyword, searchContent: this.keyword,
typeId: 1,
}) })
this.list = data.page.records this.list = data.page.records
this.total = data.page.total this.total = data.page.total

@ -26,8 +26,8 @@
</div> </div>
<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="prev" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="next" type="primary" class="submitBtn" v-throttle>下一步</el-button> <el-button @click="next(2)" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div> </div>
</div> </div>
</template> </template>
@ -42,6 +42,7 @@ export default {
data () { data () {
return { return {
form: {}, form: {},
originForm: {},
} }
}, },
mounted () { mounted () {
@ -64,13 +65,30 @@ export default {
importCashFlowStatement: r.importCashFlowStatement || '', importCashFlowStatement: r.importCashFlowStatement || '',
}) })
} }
this.originForm = JSON.stringify(this.creditImportIds)
}, },
// //
importSth (i) { importSth (i) {
this.setCreditImportIndex(i) this.setCreditImportIndex(i)
this.$parent.$parent.$parent.showData('导入报表', 12) this.$parent.$parent.$parent.showData('导入报表', 12)
}, },
async next () { //
async prev () {
if (this.originForm !== JSON.stringify(this.creditImportIds)) {
try {
await this.$confirm(`编辑的内容未保存,是否保存并继续上一步?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
closeOnClickModal: false,
})
this.next(0)
} catch (e) { }
} else {
this.$emit('updateStep', 0)
}
},
async next (step) {
const form = this.creditImportIds const form = this.creditImportIds
if (!form.importBalanceSheet) return this.$message.error('请导入资产负债表!') if (!form.importBalanceSheet) return this.$message.error('请导入资产负债表!')
if (!form.importIncomeStatement) return this.$message.error('请导入损益表!') if (!form.importIncomeStatement) return this.$message.error('请导入损益表!')
@ -92,7 +110,7 @@ export default {
projectId: +sessionStorage.getItem('projectId'), projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime') startTime: sessionStorage.getItem('startTime')
}) })
this.$emit('updateStep', 2) this.$emit('updateStep', step)
} catch { (e) => { } } } catch { (e) => { } }
}, },
}, },

@ -74,8 +74,8 @@
</el-row> </el-row>
<div class="text-center m-t-20"> <div class="text-center m-t-20">
<el-button @click="$emit('updateStep', 1)" type="primary" class="submitBtn" v-throttle>上一步</el-button> <el-button @click="prev" type="primary" class="submitBtn" v-throttle>上一步</el-button>
<el-button @click="next" type="primary" class="submitBtn" v-throttle>下一步</el-button> <el-button @click="next(3)" type="primary" class="submitBtn" v-throttle>下一步</el-button>
</div> </div>
</div> </div>
</template> </template>
@ -123,6 +123,7 @@ export default {
loanRiskSituation: 204, loanRiskSituation: 204,
preLoanOtherRiskSituations: '', preLoanOtherRiskSituations: '',
}, },
originForm: {},
rules: { rules: {
surveyDate: [ surveyDate: [
{ {
@ -224,8 +225,26 @@ export default {
r.loanRiskSituation = +r.loanRiskSituation || 204 r.loanRiskSituation = +r.loanRiskSituation || 204
this.form = r this.form = r
} }
this.originForm = JSON.stringify(this.form)
}, },
async next () { //
async prev () {
debugger
if (this.originForm !== JSON.stringify(this.form)) {
try {
await this.$confirm(`编辑的内容未保存,是否保存并继续上一步?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
closeOnClickModal: false,
})
this.next(1)
} catch (e) { }
} else {
this.$emit('updateStep', 1)
}
},
async next (step) {
this.$refs.form.validate(myValidate(async () => { this.$refs.form.validate(myValidate(async () => {
try { try {
const { form } = this const { form } = this
@ -254,7 +273,7 @@ export default {
projectId: +sessionStorage.getItem('projectId'), projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime') startTime: sessionStorage.getItem('startTime')
}) })
this.$emit('updateStep', 3) this.$emit('updateStep', step)
} catch { (e) => { } } } catch { (e) => { } }
}, this.$refs)) }, this.$refs))
}, },

@ -172,15 +172,21 @@ export default {
}) })
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768' const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({ const rule = [
parentId: preId,
lcJudgmentRuleReq: [
{ answerId: 820, emptyOne: 134, emptyTwo: form.creditTermOne, operationIds: preId + ',820', type: 1 }, { answerId: 820, emptyOne: 134, emptyTwo: form.creditTermOne, operationIds: preId + ',820', type: 1 },
{ answerId: 821, emptyOne: 125, emptyTwo: form.loanApplicationAmount, operationIds: preId + ',821', type: 3 }, { answerId: 821, emptyOne: 125, emptyTwo: form.loanApplicationAmount, operationIds: preId + ',821', type: 3 },
{ answerId: 822, emptyOne: 135, emptyTwo: form.repaymentMethodOne, operationIds: preId + ',822', type: 1 }, { answerId: 822, emptyOne: 135, emptyTwo: form.repaymentMethodOne, operationIds: preId + ',822', type: 1 },
{ answerId: 823, emptyOne: 136, emptyTwo: form.distributionMethod, operationIds: preId + ',823', type: 1 }, { answerId: 823, emptyOne: 136, emptyTwo: form.distributionMethod, operationIds: preId + ',823', type: 1 },
{ answerId: 845, emptyOne: 140, emptyTwo: form.loanApplicationDate, operationIds: preId + ',845', type: 3 }, { answerId: 845, emptyOne: 140, emptyTwo: form.loanApplicationDate, operationIds: preId + ',845', type: 3 },
], ]
form.companyRegisteredAddress && rule.push({ answerId: 883, emptyOne: 153, emptyTwo: form.companyRegisteredAddress, operationIds: preId + ',883', type: 3 })
form.corporateName && rule.push({ answerId: 884, emptyOne: 153, emptyTwo: form.corporateName, operationIds: preId + ',884', type: 3 })
form.corporateIdNumber && rule.push({ answerId: 885, emptyOne: 153, emptyTwo: form.corporateIdNumber, operationIds: preId + ',885', type: 3 })
form.creditRating && rule.push({ answerId: 896, emptyOne: '', emptyTwo: '', operationIds: preId + ',896', type: '' })
form.creditAmount && rule.push({ answerId: 897, emptyOne: '', emptyTwo: '', operationIds: preId + ',897', type: '' })
await addOperation({
parentId: preId,
lcJudgmentRuleReq: rule,
projectId: +sessionStorage.getItem('projectId'), projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime') startTime: sessionStorage.getItem('startTime')
}) })

@ -47,7 +47,7 @@
<el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item, i) in Util.creditTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="贷款期限" prop="loanTerm"> <el-form-item label="贷款期限" prop="loanTerm" @change="interestCalc">
<el-select v-model="form.loanTerm" placeholder="请选择" @change="maturityDateCalc"> <el-select v-model="form.loanTerm" placeholder="请选择" @change="maturityDateCalc">
<el-option v-for="(item, i) in Util.loanTerms" :key="i" :label="item.name" :value="item.id"></el-option> <el-option v-for="(item, i) in Util.loanTerms" :key="i" :label="item.name" :value="item.id"></el-option>
</el-select> </el-select>
@ -69,7 +69,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="贷款金额"> <el-form-item label="贷款金额">
<el-input v-model="form.loanAmount" /> <el-input v-model="form.loanAmount" @input="loanAmountInput" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -117,7 +117,7 @@
</div> </div>
</template> </template>
<script> <script>
import { addOperation, loanApplicationInput, loanApplicationDetails } from '@/api/http' import { addOperation, loanApplicationInput, loanApplicationDetails, loanApplicationInterestCalculation } from '@/api/http'
import Util from '@/libs/util' import Util from '@/libs/util'
import { mapMutations, mapState } from 'vuex' import { mapMutations, mapState } from 'vuex'
export default { export default {
@ -125,6 +125,7 @@ export default {
return { return {
Util, Util,
step1: {}, step1: {},
timer: null,
form: { form: {
valueDate: '', valueDate: '',
creditTermTwo: 231, creditTermTwo: 231,
@ -205,6 +206,25 @@ export default {
date.setMonth(date.getMonth() + loanTerm) date.setMonth(date.getMonth() + loanTerm)
this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date) this.form.expirationDate = Util.formatDate('yyyy-MM-dd', date)
} }
this.interestCalc()
},
// input
loanAmountInput () {
clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.interestCalc()
}, 500)
},
//
async interestCalc () {
const { form } = this
if (form.loanAmount && form.valueDate) {
const { data } = await loanApplicationInterestCalculation({
...this.creditIds,
...form,
})
form.totalInterestAmount = data.totalInterestAmount || ''
}
}, },
async beforeSubmit () { async beforeSubmit () {
try { try {
@ -227,7 +247,7 @@ export default {
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768' const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
const rule = [ const rule = [
{ answerId: 824, emptyOne: 137, emptyTwo: 240, operationIds: preId + ',824', type: 1 }, { answerId: 824, emptyOne: 137, emptyTwo: 240, operationIds: preId + ',824', type: 1 },
{ answerId: 825, emptyOne: 138, emptyTwo: 241, operationIds: preId + ',825', type: 1 }, { answerId: 825, emptyOne: 134, emptyTwo: form.creditTermTwo, operationIds: preId + ',825', type: 1 },
{ answerId: 826, emptyOne: 125, emptyTwo: form.valueDate, operationIds: preId + ',826', type: 3 }, { answerId: 826, emptyOne: 125, emptyTwo: form.valueDate, operationIds: preId + ',826', type: 3 },
{ answerId: 846, emptyOne: 141, emptyTwo: Util.loanTerms.find(e => e.id === form.loanTerm).pointId, operationIds: preId + ',846', type: 1 }, { answerId: 846, emptyOne: 141, emptyTwo: Util.loanTerms.find(e => e.id === form.loanTerm).pointId, operationIds: preId + ',846', type: 1 },
{ answerId: 827, emptyOne: 125, emptyTwo: form.expirationDate, operationIds: preId + ',827', type: 3 }, { answerId: 827, emptyOne: 125, emptyTwo: form.expirationDate, operationIds: preId + ',827', type: 3 },

@ -71,6 +71,7 @@ export default {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
searchContent: this.keyword, searchContent: this.keyword,
typeId: 2
}) })
this.list = data.page.records this.list = data.page.records
this.total = data.page.total this.total = data.page.total

@ -10,8 +10,12 @@
<el-table :data="list" stripe :header-cell-style="headerCellStyle"> <el-table :data="list" stripe :header-cell-style="headerCellStyle">
<el-table-column prop="customerName" label="客户姓名" align="center" /> <el-table-column prop="customerName" label="客户姓名" align="center" />
<el-table-column prop="applicationNumber" label="贷款编号" align="center" /> <el-table-column prop="applicationNumber" label="贷款编号" align="center" />
<el-table-column prop="loanStatus" label="贷款状态" align="center" /> <el-table-column prop="loanStatus" label="贷款状态" align="center" width="100" />
<el-table-column prop="updateTime" label="处理日期" align="center" /> <el-table-column prop="fiveLevelClassification" label="五级分类" align="center" />
<el-table-column prop="loanStatus" label="处理结果" align="center" width="100" />
<el-table-column prop="updateTime" label="处理日期" align="center" width="160" />
<el-table-column prop="loanStatus" label="还款状态" align="center" width="100" />
<el-table-column prop="arrearsAmount" label="欠款金额" align="center" width="100" />
<el-table-column label="操作" align="center" width="360"> <el-table-column label="操作" align="center" width="360">
<template v-if="!scope.row.builtIn" 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>
@ -269,6 +273,7 @@ export default {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
searchContent: this.keyword, searchContent: this.keyword,
typeId: 4
}) })
this.list = data.page.records this.list = data.page.records
this.total = data.page.total this.total = data.page.total

@ -201,6 +201,7 @@ export default {
pageNum: this.page, pageNum: this.page,
pageSize: this.pageSize, pageSize: this.pageSize,
searchContent: this.keyword, searchContent: this.keyword,
typeId: 3
}) })
this.list = data.page.records this.list = data.page.records
this.total = data.page.total this.total = data.page.total
@ -289,6 +290,16 @@ export default {
id: row.id, id: row.id,
status status
}]) }])
const answerId = status === '已还款' ? 900 : 901
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId, emptyOne: '', emptyTwo: '', operationIds: preId + ',' + answerId, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success(`${text}成功`) this.$message.success(`${text}成功`)
this.getRepayment() this.getRepayment()
this.getData() this.getData()
@ -309,6 +320,16 @@ export default {
} }
}) })
await batchProcessingCompany(ids) await batchProcessingCompany(ids)
const answerId = status === '已还款' ? 898 : 899
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,768'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId, emptyOne: '', emptyTwo: '', operationIds: preId + ',' + answerId, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success(`${text}成功`) this.$message.success(`${text}成功`)
this.$refs.repayments.clearSelection() this.$refs.repayments.clearSelection()
this.multipleSelection = [] this.multipleSelection = []

@ -535,6 +535,7 @@ export default {
// //
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767' const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
const rule = [ const rule = [
{ answerId: 902, emptyOne: '', emptyTwo: '', operationIds: preId + ',902', type: '' },
{ answerId: 847, emptyOne: 125, emptyTwo: basicForm.phoneNumber, operationIds: preId + ',847', type: 3 }, { answerId: 847, emptyOne: 125, emptyTwo: basicForm.phoneNumber, operationIds: preId + ',847', type: 3 },
{ answerId: 859, emptyOne: 125, emptyTwo: basicForm.applicationDate, operationIds: preId + ',859', type: 3 }, { answerId: 859, emptyOne: 125, emptyTwo: basicForm.applicationDate, operationIds: preId + ',859', type: 3 },
] ]

@ -107,7 +107,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 { batchProcessing, personalBasicList, repaymentPlan } from '@/api/http'; import { batchProcessing, personalBasicList, repaymentPlan, addOperation } from '@/api/http';
const moduleName = 'personalLoans/list' const moduleName = 'personalLoans/list'
import { mapMutations, mapGetters } from 'vuex' import { mapMutations, mapGetters } from 'vuex'
@ -241,6 +241,16 @@ export default {
id: row.id, id: row.id,
status status
}]) }])
const answerId = status === '已还款' ? 905 : 906
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId, emptyOne: '', emptyTwo: '', operationIds: preId + ',' + answerId, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success(`${text}成功`) this.$message.success(`${text}成功`)
this.getRepayment() this.getRepayment()
this.getData() this.getData()
@ -261,6 +271,16 @@ export default {
} }
}) })
await batchProcessing(ids) await batchProcessing(ids)
const answerId = status === '已还款' ? 903 : 904
const preId = '285,' + this.$store.state.system.businessSelect[this.$store.state.system.businessKey].id + ',766,767'
await addOperation({
parentId: preId,
lcJudgmentRuleReq: [{ answerId, emptyOne: '', emptyTwo: '', operationIds: preId + ',' + answerId, type: '' },],
projectId: +sessionStorage.getItem('projectId'),
startTime: sessionStorage.getItem('startTime')
})
this.$message.success(`${text}成功`) this.$message.success(`${text}成功`)
this.$refs.repayments.clearSelection() this.$refs.repayments.clearSelection()
this.multipleSelection = [] this.multipleSelection = []

Loading…
Cancel
Save