保后和遗留bug全部修复

master
e 3 years ago
parent b2019eca67
commit 837289ce22
  1. 13
      package-lock.json
  2. 3
      src/assets/css/main.css
  3. 24
      src/components/common/Letter.vue
  4. 15
      src/components/common/Notice.vue
  5. 16
      src/components/common/Payment.vue
  6. 9
      src/components/common/Sidebar.vue
  7. 2
      src/components/common/businessApplyDepartment.vue
  8. 9
      src/components/common/complianceDepartment.vue
  9. 9
      src/components/common/flowPathMoudle.vue
  10. 2
      src/components/common/messageDepartment.vue
  11. 7
      src/components/common/processTemp.vue
  12. 2
      src/components/common/propertyDepartment.vue
  13. 97
      src/components/page/Workbench.vue
  14. 321
      src/components/page/afterLoan/afterInsurance.vue
  15. 8
      src/components/page/afterLoan/afterLoan.vue
  16. 116
      src/components/page/afterLoan/collection.vue
  17. 497
      src/components/page/afterLoan/complete.vue
  18. 39
      src/components/page/afterLoan/progress.vue
  19. 4
      src/store/modules/guarantee.js
  20. 13
      src/store/modules/loan.js
  21. 4
      src/utils/api.js
  22. 81
      src/utils/core.js
  23. 4
      src/utils/http.js

13
package-lock.json generated

@ -4900,6 +4900,11 @@
"integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
"dev": true
},
"downloadjs": {
"version": "1.4.7",
"resolved": "https://registry.npm.taobao.org/downloadjs/download/downloadjs-1.4.7.tgz",
"integrity": "sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw="
},
"duplexer": {
"version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz",
@ -14202,6 +14207,14 @@
"resolved": "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-8.22.0.tgz?cache=0&sync_timestamp=1602001179053&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-i18n%2Fdownload%2Fvue-i18n-8.22.0.tgz",
"integrity": "sha1-ZAM4Gm6rHSKeUVpirdspsv86v+0="
},
"vue-json-excel": {
"version": "0.3.0",
"resolved": "https://registry.npm.taobao.org/vue-json-excel/download/vue-json-excel-0.3.0.tgz",
"integrity": "sha1-csvkoARyAlntxlVVo/ByGYz3kUY=",
"requires": {
"downloadjs": "^1.4.7"
}
},
"vue-loader": {
"version": "15.9.3",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.3.tgz?cache=0&sync_timestamp=1600850354305&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.3.tgz",

@ -426,3 +426,6 @@ input[type="number"]{
color: #00B9FF;
text-decoration: underline;
}
.el-tooltip__popper{
max-width: 700px;
}

@ -152,12 +152,9 @@
</div>
</div>
<!-- 查看时的按钮 -->
<div class="fj-center">
<!-- <el-button @click="toImage($refs.imageTofile)">点击上传base64到服务器测试</el-button> -->
<!-- <el-button v-if="sendShow" class="mgr20" @click="toImage($refs.imageTofile)">抄送</el-button> -->
<!-- <div class="fj-center">
<el-button v-show="operationType === 2" type="primary bd0" class="mgt20" round @click="downloadLetter">导出</el-button>
</div>
</div> -->
<!-- 确认按钮 -->
<div v-show="operationType === 1 || operationType === 3" class="df fj-end mgt30 mgb30">
<div class="df">
@ -299,6 +296,14 @@ export default {
//
if(sessionStorage.getItem('decideJump')){
let data = JSON.parse(sessionStorage.getItem('decideJump'))
this.letterValue = {
businessId: data.businessId,//id
id:data.id,//rowID
auditStatus:data.auditStatus,//
handleStatus:data.operationStatus,//
roleId:data.roleId,//id
}
this.$store.commit("letterData", { letterValue: this.letterValue });
data.id = data.detailId
data.status = data.approveStatus
data.handleStatus = data.operatingStatus
@ -428,6 +433,7 @@ export default {
},
//-
letterData(row,operationType){
console.log(row,'当前的确定行内值')
this.loans = false //
this.operationType = operationType //
//
@ -443,6 +449,7 @@ export default {
auditOpinion: row.auditOpinion,//
roleId: row.roleId //id
}
console.log(this.letterValue,'存起来的值')
this.fileList = row.file.split(",")
this.$store.commit("fileData", { fileList: this.fileList });
this.$store.commit("loansData", { loans: this.loans });
@ -485,17 +492,22 @@ export default {
},
//
sumbitOpinion(text,type){
const values = this.$store.state.guarantee.letterValue
console.log(text,type,'当前跳转的值',values,'this.$store.state.guarantee.letterValue.businessId')
this.$confirm(`确定要${text}该审核意见吗?`, '提示', {
type: 'warning'
}).then(() => {
if(type == 4 && this.letterValue.auditOpinion == ''){
return this.$message.error("请先填写审核意见!")
}
let params = {
auditOpinion: this.letterValue.auditOpinion,
businessId: this.letterValue.businessId,
// businessId: values.businessId,
businessId: this.letterValue.businessId||this.$store.state.guarantee.businessId,
status: type
}
console.log(params,'提交的值')
updateStatus(params).then(res => {
this.$message.success(`${text}成功`);
let btnPermissionsStr = sessionStorage.getItem("now-roleBtn").split(',');

@ -140,9 +140,9 @@
</div>
</div>
<!-- 查看时的按钮 -->
<div class="fj-center">
<!-- <div class="fj-center">
<el-button v-show="operationType === 2" type="primary bd0" class="mgt20" round @click="downloadLetter">导出</el-button>
</div>
</div> -->
<!-- 确认按钮 -->
<div class="df fj-end mgt30 mgb30">
<!-- <el-button v-if="sendShow" class="mgr20" @click="toImage($refs.imageTofile)">抄送</el-button> -->
@ -236,8 +236,15 @@ export default {
if(data.btn==='确认'){
this.operationType = 3
this.loanNoticeDetail(data)//
this.operationType = operationType //
this.operationType = this.operationType //
this.$store.commit("loansData", { loans: this.loans });
this.letterValue = {
businessId: data.businessId,//id
id:data.id,//rowID
auditStatus:data.auditStatus,//
handleStatus:data.operationStatus,//
roleId:data.roleId,//id
}
this.$store.commit("letterData", { operationType: this.operationType, letterValue: this.letterValue });
}
sessionStorage.removeItem('decideJump')
@ -409,7 +416,7 @@ export default {
}
let params = {
auditOpinion: this.letterValue.auditOpinion,
businessId: this.letterValue.businessId,
businessId: this.letterValue.businessId||this.$store.state.guarantee.businessId,
status: type
}
updateLoanNotice(params).then(res => {

@ -125,9 +125,9 @@
</div>
</div>
<!-- 查看时的按钮 -->
<div class="fj-center">
<!-- <div class="fj-center">
<el-button v-show="operationType === 2" type="primary bd0" class="mgt20" round @click="downloadLetter">导出</el-button>
</div>
</div> -->
<div>
<div class="mgt20 left-border fz-16"><p class="c-black mgl10">附件</p></div>
<div class="shadow radius10 mgt20 pdr20 flex-center">
@ -305,11 +305,19 @@ export default {
if(data.btn==='确认'){
this.operationType = 3
this.paymentDetail(data)//
this.operationType = operationType //
this.operationType = this.operationType //
this.isFgJl = data.isFgJl //
this.$store.commit("isFgJlData", { isFgJl: data.isFgJl });
this.$store.commit("loansData", { loans: this.loans });
this.letterValue = {
businessId: data.businessId,//id
id:data.id,//rowID
auditStatus:data.auditStatus,//
handleStatus:data.operationStatus,//
roleId:data.roleId,//id
}
this.$store.commit("letterData", { operationType: this.operationType, letterValue: this.letterValue });
}
sessionStorage.removeItem('decideJump')
@ -544,7 +552,7 @@ export default {
let imgFile = this.imgListT.map(e =>e.url).join()
let params = {
auditOpinion: this.letterValue.auditOpinion,
businessId: this.letterValue.businessId,
businessId: this.letterValue.businessId||this.$store.state.guarantee.businessId,
status: type,
imgFile: imgFile
}

@ -117,7 +117,7 @@ export default {
watch:{
$route(to,from){
this.notice()
this.handleSelect(this.activeIndex)//
if(to!=this.activeIndex) this.handleSelect(this.activeIndex)//
},
pop(now,before){
// this
@ -135,7 +135,6 @@ export default {
// if( this.$store.state.login.headerImg){
// this.headerImg = this.$store.state.login.headerImg
// }
// Event Bus
bus.$on('collapse', msg => {
this.collapse = msg;
bus.$emit('collapse-content', msg);
@ -151,7 +150,11 @@ export default {
this.activeIndex = index
sessionStorage.setItem('sideBar',index)
if(val!=='start') sessionStorage.removeItem('fromCopyTo') // beforeeach
if(index=='workbench'){//
console.log('触发删除')
this.$store.commit("leftSidebarData", { leftStatus: '0' });
this.$store.commit("loanStatusData", { loanStatus: 1 });//
}
},
goto(path) {
this.$router.push('/' + path);

@ -1738,7 +1738,7 @@ methods:{
})
}else{
// this.$message('customerId')
this.$message('请先输入企业编号或名称后,再进行关联人操作!')
if(this.businessApply.isExistRelated==1) return this.$message('请先输入企业编号或名称后,再进行关联人操作!')
}
},
// checkbox

@ -1041,13 +1041,17 @@ mounted(){
//
if(sessionStorage.getItem('decideJump')){
let data = JSON.parse(sessionStorage.getItem('decideJump'))
console.log(data,'取得item的值')
data.iid = data.detailId
data.status = data.approveStatus
data.handleStatus = data.operatingStatus
//
if(data.btn==='指派'){
data.row = {}
data.row.iid = data.id
data.row.iid = data.iid
data.row.businessId = data.businessId
data.row.companyId = data.companyId
this.gotoSurvey(data,'compliance')
@ -1208,6 +1212,7 @@ methods:{
return this.$message.error('请先选取角色!')
}
obj.userId = this.assetDesignateC
console.log(obj,'当前的obj')
complianceAssign(obj).then(res=>{
if(res.success){
this.$message.success('操作成功')
@ -1505,7 +1510,7 @@ methods:{
this.linkManLoading = false
})
}else{
this.$message('请先输入企业编号或名称后,再进行关联人操作!')
if(this.businessApply.isExistRelated==1) return this.$message('请先输入企业编号或名称后,再进行关联人操作!')
}
},
// checkbox

@ -477,6 +477,13 @@ export default {
decide(item){
if(item.operatingStatus===1){//
sessionStorage.setItem('decideJump',JSON.stringify(item))
console.log(item.taskNode,'当前的task',item)
/* 后三个步骤处理不同,非得从列表取得数据导致的问题,处理逻辑异常 */
// if(item.taskNode==''||item.taskNode==''||item.taskNode==''){
// console.log(item.businessId,'zhi')
// console.log(this.$store.state.guarantee.letterValue,'this.$store.state.guarantee.businessId')
this.$store.commit("businessId",item.businessId);
// }
this.jumpToFrom(item.taskNode)
// switch (item.taskNode) {
// //
@ -1041,11 +1048,9 @@ export default {
break;
case '财务确认':
nodeCode = 9
//
break;
case '放款通知':
nodeCode = 10
//
break;
default:
break;

@ -1484,7 +1484,7 @@ methods:{
this.linkManLoading = false
})
}else{
this.$message('请先输入企业编号或名称后,再进行关联人操作!')
if(this.businessApply.isExistRelated==1) return this.$message('请先输入企业编号或名称后,再进行关联人操作!')
}
},
// checkbox

@ -116,15 +116,18 @@ export default {
};
},
mounted(){
console.log(this.$store.state.guarantee.businessId,'this.$store.state.guarantee.businessId')
this.getAuditProcess()
this.getAuditProcess2()
this.queryCopySendUser()//
},
methods: {
async getAuditProcess(){
let params = {
// vuex
businessId: this.$store.state.guarantee.letterValue.businessId,
businessId: this.$store.state.guarantee.letterValue.businessId||this.$store.state.guarantee.businessId,
processId: this.$store.state.guarantee.topSidebarVal
}
let res = await auditProcessList(params)
@ -132,7 +135,7 @@ export default {
},
async getAuditProcess2(){
let params = {
businessId: this.$store.state.guarantee.letterValue.businessId,
businessId: this.$store.state.guarantee.letterValue.businessId||this.$store.state.guarantee.businessId,
processId: ''
}
let res = await auditProcessList(params)

@ -1099,7 +1099,7 @@ methods:{
this.linkManLoading = false
})
}else{
this.$message('请先输入企业编号或名称后,再进行关联人操作!')
if(this.businessApply.isExistRelated==1) return this.$message('请先输入企业编号或名称后,再进行关联人操作!')
}
},
// checkbox

@ -5,7 +5,14 @@
<div class="flex-center pdt40 border-b pdb30" >
<img src="../../assets/img/Basics-icon.png" alt class="mgr10 icon-size" />
<p class="fz-16">基础应用</p>
</div>
<!-- <br/>
10.22的输出
<el-input v-model="test"></el-input>
<br/>
{{fMoney4(test/10000)}}
{{ChinaCost(test)}} -->
<div class="flex-center">
<!-- v-if="$router.currentRoute.meta.btn.includes('人力资源管理系统')" -->
<div class="card mgr40 manpower" @click="goto('workbench-manpower')">
@ -32,7 +39,7 @@ export default {
data(){
return{
url:false,
test:10.22,
}
},
watch:{
@ -54,6 +61,94 @@ export default {
if(this.$route.fullPath!=='/workbench')this.url = true
},
methods:{
fMoney4(money) {
if(!money) return ''
console.clear()
//
let cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
let cnIntRadice = new Array('', '拾', '佰', '仟'); //
let cnIntUnits = new Array('', '万', '亿', '兆'); //
let cnDecUnits = new Array('仟', '佰', '拾', '元', '角' , '分'); //
let cnInteger = '元'; //
let cnIntLast = '万'; //
let zero = "零"
let int; //
let dot; //
let chineseStr = ''; //
let parts; //
if (money == '') {
return '';
}
//
money = money.toString();
console.log(money,money.indexOf('.'),'判断小数点')
if (money.indexOf('.') == -1) {//
int = money;
dot = '';
} else {
parts = money.split('.'); //
int = parts[0];
dot = parts[1].substr(0, 6); //
}
console.log(parseInt(int, 10),'parseInt(int, 10)')
//
if (parseInt(int, 10) > 0) {
console.log('进入十进制转换')
let zeroCount = 0;
let IntLen = int.length;
for (let i = 0; i < IntLen; i++) {
//4
let n = int.substr(i, 1);
let p = IntLen - i - 1; // -i -1
let q = p / 4;
let m = p % 4;
console.log(n,p,q,m,"q,m")
if (n == '0') {
zeroCount++;
} else {
if (zeroCount > 0) {
chineseStr += cnNums[0];
}
//
zeroCount = 0;
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
//
if (m == 0 && zeroCount < 4) {
chineseStr += cnIntUnits[q];
}
}
chineseStr += cnIntLast;
}
//
console.log(dot,'dot')
if (dot != '') {
console.log('进入小数处理部分')
let decLen = dot.length;//
for (let i = 0; i < decLen; i++) {
let n = dot.substr(i, 1);
if (n != '0') {
chineseStr += cnNums[Number(n)] + cnDecUnits[i];
}
console.log(i,'i',n,'n',dot)
/*
如果 indexof 第一个非0数字后面带有连续的0或者间隔的0
*/
if(i==3 && n=='0' ){ // i
chineseStr += cnInteger
}
}
}
// if (chineseStr == '') {// 0
// chineseStr += cnNums[0] + cnIntLast + cnInteger;
// }
// else if (dot == '') {//
// chineseStr += cnInteger; //
// }
return chineseStr;
},
// ,
goto(path) {
this.$router.push('/' + path);

@ -150,7 +150,9 @@
<el-form-item label="担保额度/贷款金额(元):" prop="guaranteeAmount">
<div class="cashChinese">
<el-input oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" :disabled="!wanderEdit||status=='newRecord'" v-model="guaranteeForm.guaranteeAmount" placeholder="请输入担保额度"></el-input>
<el-input oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" :disabled="!wanderEdit||status=='newRecord'" v-model="guaranteeForm.guaranteeAmount" placeholder="请输入担保额度">
<i slot="suffix" style="margin-right:10px" class="el-input__icon">{{ChinaCost(guaranteeForm.guaranteeAmount)}}</i>
</el-input>
</div>
</el-form-item>
@ -184,13 +186,13 @@
<el-form label-width="160px" ref="comp" :disabled="disabledAll" :model="comp" :rules="compRule">
<el-col :span="12" >
<el-form-item label="代偿金额(元):">
<el-input oninput="value=value.replace(/[^\d.]/g,'')" v-model="comp.compensationAmount" placeholder="请输入"></el-input>
<el-input oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" v-model="comp.compensationAmount" placeholder="请输入">
<i slot="suffix" style="margin-right:10px" class="el-input__icon">{{ChinaCost(comp.compensationAmount)}}</i>
</el-input>
</el-form-item>
<el-form-item label="代偿时间 :">
<el-date-picker
v-model="comp.compensatoryTime"
@change="compensatoryTimeChange"
type="date"
class="wd100"
value-format="yyyy-MM-dd"
@ -199,10 +201,11 @@
</el-form-item>
</el-col>
<el-col :span="12">
<!-- 代偿金额 - 代偿日后 还款的金额 - 每一次的利息总额每一笔还款都在这里减去 -->
<!-- TODO 此处的代偿未计算完善后端缺字段 -->
<!-- 转为后端计算 -->
<el-form-item label="代偿余额(元):">
<el-input disabled v-model="computedCompensatoryBalance" placeholder="请输入"></el-input>
<el-input disabled v-model="comp.compensatoryBalance" placeholder="录入后自动计算">
<i slot="suffix" style="margin-right:10px" class="el-input__icon">{{ChinaCost(comp.compensatoryBalance)}}</i>
</el-input>
</el-form-item>
</el-col>
</el-form>
@ -224,7 +227,7 @@
</el-form-item>
<el-form-item label="所属清收组:" style="width:35%" prop="collectionGroupId">
<div class="df">
<el-select :disabled="!entering&&status!=='newLoans'||status=='newRecord'" v-model="liquidate.collectionGroupId" placeholder="请选择">
<el-select :disabled="!entering&&status!=='newLoans'||status=='newRecord'" v-model="liquidate.collectionGroupId" @change="modifyReimbursement" placeholder="请选择">
<el-option v-for="(item, index) in organizationArrs" :key="index" :label="item.groupName" :value="item.id"></el-option>
</el-select>
<el-button @click="organization=true" type="text" class="mgl10">自定义</el-button>
@ -237,14 +240,16 @@
</el-form-item>
</div>
<el-form-item label="经营情况:">
<!-- 未完成 -->
<el-select :disabled="!wanderEdit" v-model="liquidate.operation" placeholder="请选择" prop="operation">
<!-- 未完成 :disabled="!wanderEdit"
:disabled="!wanderEdit"
:disabled="!wanderEdit" -->
<el-select v-model="liquidate.operation" placeholder="请选择" prop="operation">
<el-option v-for="(item, index) in circumstance" :key="index" :label="item.name" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="诉讼情况:" >
<el-input
:disabled="!wanderEdit"
type="textarea"
:rows="2"
placeholder="请输入1000字符以内"
@ -253,7 +258,7 @@
</el-form-item>
<el-form-item label="抵押情况:">
<el-input
:disabled="!wanderEdit"
type="textarea"
:rows="2"
placeholder="请输入1000字符以内"
@ -460,7 +465,8 @@
<el-table-column prop="actualRepaymentDate" label="实际还款日" align="center"></el-table-column>
<el-table-column prop="guaranteeAmount" label="担保额度(元)" align="center"></el-table-column>
<el-table-column prop="currentRepayment" label="本次还款(元)" align="center"></el-table-column>
<el-table-column prop="interest" label="本次利息(元)" align="center"></el-table-column>
<el-table-column prop="interest" label="本次利息
()" align="center"></el-table-column>
<el-table-column prop="otherExpenses" label="其他费用(元)" align="center"></el-table-column>
<el-table-column prop="totalRepayment" label="还款总额(元)" align="center"></el-table-column>
<el-table-column prop="deductionAmount" label="减免金额(元)" align="center"></el-table-column>
@ -468,7 +474,15 @@
<el-table-column prop="repaymentStatus" label="状态" align="center"></el-table-column>
<el-table-column prop="submitterName" label="提交人" align="center"></el-table-column>
<el-table-column prop="createTime" label="提交时间" align="center"></el-table-column>
<el-table-column prop="repaymentNotes" label="还款备注" align="center"></el-table-column>
<el-table-column label="还款备注" align="center">
<template slot-scope="scope">
<el-tooltip style="max-width:300px" class="item" effect="dark" :content="scope.row.repaymentNotes" placement="top">
<div style="max-height:45px;over-flow:auto;">
{{scope.row.repaymentNotes}}
</div>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button v-if="$router.currentRoute.meta.btn.includes('保后查看')" type="text" @click="goRepaymentDetail(scope.row,'查看')">查看</el-button>
@ -488,7 +502,7 @@
<el-dialog title="导入" :visible.sync="upLoadPop" width="24%" center :close-on-click-modal="false">
<div class="flex-start-around">
<el-button type="primary" round
><a href="https://www.feifanhitech.com/enclosureFile/insuranceTemplate.xlsx" style="color:#fff">模板下载<i class="el-icon-download el-icon--right"></i></a
><a href="https://www.feifanhitech.com/template/insuranceTemplate.xlsx" style="color:#fff">模板下载<i class="el-icon-download el-icon--right"></i></a
></el-button>
<el-upload
accept=".xls,.xlsx"
@ -551,10 +565,9 @@
<script>
import { mapState } from 'vuex';
import { allBankName, insuranceList, insuranceDetail, repaymentEntry, repaymentList, repaymentStatistics, excelHis, delRepayment, repaymentDetail, excelInsurance, updateInsurance, updateRepayment, designateEmpTrees, getAllClient ,saveInsurance,companyInfoBySth,liquidateList,liquidateEdit,liquidateDel,deleteInsurance, editInsurance, compensationSituation,importInsurance , exportFailure} from '../../../utils/api';
import core from '../../../utils/core';// fMoney3
// 使
// import { create, all } from 'mathjs/number'
import { allBankName, insuranceList, insuranceDetail, repaymentEntry, repaymentList, repaymentStatistics, excelHis, delRepayment, repaymentDetail, excelInsurance, updateInsurance, updateRepayment, designateEmpTrees, getAllClient ,saveInsurance,companyInfoBySth,liquidateList,liquidateEdit,liquidateDel,deleteInsurance, editInsurance, compensationSituation,importInsurance , exportFailure, modifyReimbursement} from '../../../utils/api';
import core from '../../../utils/core'
// 使 import { create, all } from 'mathjs/number'
// const math = create(all)
let math = require('mathjs');
export default {
@ -656,12 +669,12 @@ export default {
value1:'',
area:[//
{name:'萨尔图区',id:0},
{name:'高新区',id:1},
{name:'龙凤区',id:2},
{name:'让胡同路区',id:3},
{name:'大同区',id:4},
{name:'肇县区',id:5},
{name:'萨尔图区',id:'0'},
{name:'高新区',id:'1'},
{name:'龙凤区',id:'2'},
{name:'让胡同路区',id:'3'},
{name:'大同区',id:'4'},
{name:'肇县区',id:'5'},
],
circumstance:[//
{name:'停产',value:'停产'},
@ -740,11 +753,15 @@ export default {
btns:{},
ids:[],
interest:'',//
selectObj:{
personLiable:'',
personLiableId:''
},
};
},
computed:{
computedCompensatoryBalance(){//
/* TODO 未完成状态判断 */
/* 转为后端计算 */
// if(this.status){} // count
// console.log(this.repaymentForm,'this.repaymentForm')
// if(!this.repaymentForm.currentRepayment)this.repaymentForm.currentRepayment = 0
@ -825,13 +842,16 @@ export default {
}
}
},
fromOne(){//
return this.$store.state.loan.fromOne
},
//
reimbursement(){
return this.repaymentForm.repaymentCash||0+this.repaymentForm.repaymentAssetsAmount||0+this.repaymentForm.repaymentOtherAmount||0
}
},
watch: {
"$store.state.loan.loanStatus":function(val){
"$store.state.loan.loanStatus":async function(val){
if(val!=2){
this.comp.compensatoryBalance = 0
this.cash = 0
@ -846,14 +866,22 @@ export default {
this.$forceUpdate();
this.getData()
this.loanbackStatus = ''
this.repaymentForm = {
currentRepayment:0,
interest: 0,
otherExpenses:0,
overdueDays: 0
}
}
if(val == 2){
console.log(this.souce,'判断是否系统流转--0')
/* TODO 未完成 */
// if(this.source === 0&&this.status==="oldLoans"){//
// }
if(val == 2){//
console.log(this.RepaymentId,this.id,'RepaymentId,进入2页面')
//
if(this.comp.compensationAmount&&this.comp.compensatoryTime){
this.compensatoryTimeChange(this.comp.compensatoryTime)
}
//
console.log(this.hisId,'hisid,loanid,repayid',this.$store.state.loan.id,this.$store.state.loan.RepaymentId)
this.id = this.$store.state.loan.id || this.$store.state.loan.RepaymentId
this.RepaymentId = this.$store.state.loan.RepaymentId
this.loanbackStatus = this.$store.state.loan.loanbackStatus
@ -864,12 +892,29 @@ export default {
otherExpenses: '',
overdueDays: 0
}
console.log(this.loanbackStatus,'什么状态')
//
if(this.status!=='newLoans'||this.discernEdit) this.getDetail()
if(this.loanbackStatus == '查看' || this.loanbackStatus == '编辑'){
console.log(this.loanbackStatus,'什么状态')
this.getRepaymentDetail()
await this.getRepaymentDetail()
}
console.log(this.souce,'判断是否系统流转--0')
/* TODO 未测试该判断 */
if(this.source === 0&&this.status==="oldLoans"&&!this.guaranteeForm.loanStartTime){// ,
return this.$confirm('业务数据需补充完善,请先在编辑处完善必填项后再进行还款录入。','提示', {
confirmButtonText: '确定',
showCancelButton:false,
type: 'warning'
}).then(()=>{
//
// this.edit('',this.row)
this.loanStatus = 1 //
this.$store.commit("loanStatusData", { loanStatus: 1 });
}).catch(()=>{
this.loanStatus = 1 //
this.$store.commit("loanStatusData", { loanStatus: 1 });
})}
}
if(val == 3){
this.hisidId = this.$store.state.loan.hisidId
@ -881,6 +926,7 @@ export default {
},
principal:function(val){//
this.$forceUpdate();
this.designateEmpTrees()
this.clearNodeArr = true
this.$nextTick(()=>{
@ -895,11 +941,25 @@ export default {
this.starEndDate = []
this.guaranteeForm = {}
this.mainbank = ''
this.elsebank = ''
}
},
organization(val){
if(val){//
this.liquidateList()
}else{
this.organizationArrs = []
}
}
},
created(){
console.log(math.format(math.chain(math.bignumber(0.1)).add(math.bignumber(0.2)).done()),'计算数据')
async created(){
let a = [1,2,3,4],b = [1,2,3,4,5,6]
let c = a.concat(b).filter((cur, i, arr) => {
return arr.indexOf(cur) === arr.lastIndexOf(cur);
});
console.log(c,'比不同',a,b)
console.log(this.loanbackStatus,'this.loanbackStatus')
this.liquidateList()
if(this.bankSelect.length===0){//
@ -931,8 +991,21 @@ export default {
console.log(this.status,'处于什么状态')
if(this.status!=='newLoans'||this.discernEdit) this.getDetail()
if(this.loanbackStatus == '查看' || this.loanbackStatus == '编辑'){
this.getRepaymentDetail()
await this.getRepaymentDetail()
}
if(this.source === 0&&this.status==="oldLoans"&&!this.guaranteeForm.loanStartTime){// ,
return this.$confirm('业务数据需补充完善,请先在编辑处完善必填项后再进行还款录入。','提示', {
type: 'warning'
}).then(()=>{
//
// this.edit('',this.row)
this.loanStatus = 1 //
this.$store.commit("loanStatusData", { loanStatus: 1 });
}).catch(()=>{
this.loanStatus = 1 //
this.$store.commit("loanStatusData", { loanStatus: 1 });
})}
}
if(this.loanStatus == 3){
@ -991,6 +1064,7 @@ export default {
// if(this.insMultipleSelection.length != ''){
let exportIds = this.insMultipleSelection.map(e => e.id).join()
let url = `${excelInsurance}?ids=${exportIds}`
console.log(url,'导出的URL')
window.location.href = url
// }else{
// this.$message.error(' ');
@ -1001,13 +1075,14 @@ export default {
edit(row,val){
this.$store.commit('disabledAll',false)//
if(!row){// row--
console.log('进入新建业务')
console.log('进入新建业务',val)
this.loanStatus = 2
this.$store.commit("loanbackStatusData", { loanbackStatus: '' });//
this.$store.commit("loanStatusData", { loanStatus: 2 });
this.$store.commit('setNewOrOld','newLoans')
this.$store.commit('entering',false)
this.$store.commit('wanderEdit',true)
if(val) this.$store.commit("source",val.source);//
if(val){// --
this.$store.commit('setNewOrOld','oldLoansEdit')//
//
@ -1024,32 +1099,37 @@ export default {
this.loanbackStatus = '录入' // 退
this.$store.commit("loanbackStatusData", { loanbackStatus: '录入' });
this.$store.commit('fromOne',false)// 退
}else{
console.log('进入录入界面')
// ,
this.$store.commit('wanderEdit',true)
this.$store.commit('entering',false) // -
this.$store.commit('discernEdit',true)//
this.$store.commit('setNewOrOld','oldLoans')//
this.$store.commit('setNewOrOld','oldLoans')//
this.loanStatus = 2
this.$store.commit("loanStatusData", { loanStatus: 2 });//
this.id = row.id
this.$store.commit("idData", { id: row.id });// id
this.$store.commit("source",this.row.source);//
this.$store.commit("source",row.source);//
this.RepaymentId = ''
this.$store.commit("RepaymentIdData", { RepaymentId: '' });//
this.loanbackStatus = '录入'
this.$store.commit("loanbackStatusData", { loanbackStatus: '录入' });//
this.$store.commit('fromOne',true)// 退
}
},
//
//
history(row){
this.loanStatus = 3
this.$store.commit("loanStatusData", { loanStatus: 3 });
this.hisId = row.id
this.$store.commit("hisidIdData", { hisidId: row.id, guaranteeAmount: row.guaranteeAmount });
this.id = row.id
this.$store.commit("idData", { id: row.id });// loan.idid */
this.hispaymentStatus = row.paymentStatus
this.$store.commit("hispaymentStatusData", { hispaymentStatus: row.paymentStatus });
this.$store.commit('fromOne',false)// 退
},
//
conclusion(row){
@ -1071,7 +1151,7 @@ export default {
async getDetail(){
this.guaranteeLoading = true
try {
let res = await insuranceDetail({
let res = await insuranceDetail({//
id: this.id
});
this.guaranteeLoading = false
@ -1102,13 +1182,14 @@ export default {
//
this.liquidate = {
personLiable:reimbursement.personLiable,
personLiableId:reimbursement.personLiableId,
collectionGroupId:reimbursement.collectionGroupId,
area:+reimbursement.area,
area:reimbursement.area,
operation:reimbursement.operation,
litigation:reimbursement.litigation,
mortgage:reimbursement.mortgage,
}
}
this.qszId = reimbursement.id
} catch (error) {
this.guaranteeLoading = false
}
@ -1196,6 +1277,7 @@ export default {
if(that.RepaymentId == ''){//
console.log('新增录入')
that.repaymentForm.insuranceId = that.id
that.$store.commit('hisId',that.id)
console.log(that.id,'id')
that.repaymentForm.totalRepayment = that.totalRepayment
that.repaymentForm.overdueDays = that.overdueDays
@ -1237,7 +1319,16 @@ export default {
}
}
console.log('正在执行录入')
if(this.repaymentForm.repaymentCash!==0&&!this.repaymentForm.repaymentCash&&this.repaymentForm.repaymentAssetsAmount!==0&&!this.repaymentForm.repaymentAssetsAmount&&this.repaymentForm.repaymentOtherAmount!==0&&!this.repaymentForm.repaymentOtherAmount){
return this.$message.error('至少输入一种清偿方式!')
}
if(this.comp.compensationAmount||this.comp.compensatoryTime){//
if(!(this.comp.compensationAmount&&this.comp.compensatoryTime)){
return this.$message.warning('若有代偿金额,请同时输入代偿金额和选择代偿时间!')
}
}
Promise.all([form1,form3,form2]).then(()=>{
if(!this.totalSame()){
return this.$confirm('清偿方式的金额之和与本次还款总额不符,可能会导致数据统计错误,是否继续?', '提示', {
type: 'warning'
@ -1258,9 +1349,8 @@ export default {
},
//
cancel(){
if(this.status=="newLoans"||this.status=="oldLoansEdit"){
// 退
if(this.status=="newLoans"||this.status=="oldLoansEdit"||this.fromOne){
this.loanStatus = 1
this.$store.commit("loanStatusData", { loanStatus: 1 });
}else{
@ -1293,6 +1383,7 @@ export default {
},
//
async repaymentList(){
console.log(this.hisidId,'当前传的id值')
let res = await repaymentList({
page: this.hisPage,
size: this.pageNumber,
@ -1370,12 +1461,14 @@ export default {
},
// /
goRepaymentDetail(row,type){
console.log(row,type,'点击查看业务,')
this.loanStatus = 2
this.$store.commit("loanStatusData", { loanStatus: 2 });
this.$store.commit("loanStatusData", { loanStatus: 2 });//
this.RepaymentId = row.id
this.$store.commit("RepaymentIdData", { RepaymentId: row.id });
this.$store.commit("RepaymentIdData", { RepaymentId: row.id });// ID
this.id = row.insuranceId
this.$store.commit("idData", { id: row.insuranceId });
this.$store.commit("idData", { id: row.insuranceId });// loan.idid */
console.log(this.id,'rowid',row,'新增还款记录错误')
this.loanbackStatus = type
@ -1393,7 +1486,7 @@ export default {
},
//
async getRepaymentDetail(){
console.log(this.RepaymentId,'调用详情接口')
console.log(this.RepaymentId,'调用详情接口使用的id')
let res = await repaymentDetail({
id: this.RepaymentId
});
@ -1448,12 +1541,16 @@ export default {
})
},
principalNode(val){//
this.$set(this.liquidate,'personLiable',val[0].name)
this.liquidate.personLiableId = val[0].id
this.selectObj = {
personLiable:val[0].name,
personLiableId:val[0].id
}
},
principalSeleted(){//
this.principal = false
this.$set(this.liquidate,'personLiable',this.selectObj.personLiable)
this.liquidate.personLiableId = this.selectObj.personLiableId
this.modifyReimbursement()
},
searchClientChange(val,state){//
companyInfoBySth({name:val}).then(res=>{
@ -1542,7 +1639,6 @@ export default {
})
},
saveInsurance(){//
/* TODO 需要处理没有还款信息的编辑 */
let has = false
//
const form1 = new Promise((resolve,reject)=>{
@ -1575,6 +1671,7 @@ export default {
//
if(this.discernEdit) obj.insuranceId = this.id
Object.assign(obj,this.comp,this.liquidate)
this.guaranteeForm.paymentStatus = 1
let param = {
alInsuranceList:this.guaranteeForm,//
alReimbursement:obj//
@ -1588,6 +1685,7 @@ export default {
})
}else{//
// param.source = 1
saveInsurance(param).then(res=>{
//
if(this.status==='newLoans'){
@ -1635,7 +1733,7 @@ export default {
},
deleteInsurance(row){// --
this.$confirm('此操作无法还原,确定要删除该业务?', '提示', {
this.$confirm('确认删除?删除后与该业务相关的保后信息将会一并删除且不可恢复', '提示', {
type: 'error'
}).then(() => {
deleteInsurance(row.id).then(res=>{
@ -1647,10 +1745,7 @@ export default {
compensationSituation({data:val,insuranceId:this.id}).then(res=>{
this.cash = res.data.amount
console.log('取得当前的cash',this.cash)
/* TODO 利息,其他,本次还款*/
//
// this.interest = res.data.xx
})
},
uploadSuccess(response, file, fileList) { //
@ -1680,7 +1775,98 @@ export default {
}else{
return true
}
}
},
modifyReimbursement(){//
console.log('触发查询原本')
console.log(this.liquidate.personLiableId,this.liquidate.collectionGroupId,this.qszId,'三个值')
if(this.liquidate.personLiableId&&this.liquidate.collectionGroupId&&this.qszId){
console.log('进入接口')
let params = {
id:this.qszId,// reimbursementid
collectionGroupId:this.liquidate.collectionGroupId,// id
personLiableId:this.liquidate.personLiableId,// id
}
modifyReimbursement(params).then(res=>{
console.log(res,'chashou123')
if(res.message!="成功"){
return this.$message.warning(res.message)
}
})
}
},
ChinaCost(numberValue){
var numberValue=new String(Math.round(numberValue*100)); //
var chineseValue=""; //
var String1 = "零壹贰叁肆伍陆柒捌玖"; //
var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; //
var len = numberValue.length; // numberValue
var Ch1; //
var Ch2; //
var nZero=0; //
var String3; //
if(len>15){
alert("超出计算范围");
return "";
}
if (numberValue==0){
chineseValue = "零元整";
return chineseValue;
}
String2 = String2.substr(String2.length-len, len); // STRING2
for(var i=0; i<len; i++){
String3 = parseInt(numberValue.substr(i, 1),10); //
if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) ){
if ( String3 == 0 ){
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else if ( String3 != 0 && nZero != 0 ){
Ch1 = "零" + String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else{
Ch1 = String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
}
else{ // 亿亿
if( String3 != 0 && nZero != 0 ){
Ch1 = "零" + String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else if ( String3 != 0 && nZero == 0 ){
Ch1 = String1.substr(String3, 1);
Ch2 = String2.substr(i, 1);
nZero = 0;
}
else if( String3 == 0 && nZero >= 3 ){
Ch1 = "";
Ch2 = "";
nZero = nZero + 1;
}
else{
Ch1 = "";
Ch2 = String2.substr(i, 1);
nZero = nZero + 1;
}
if( i == (len - 11) || i == (len - 3)){ // 亿
Ch2 = String2.substr(i, 1);
}
}
chineseValue = chineseValue + Ch1 + Ch2;
}
if ( String3 == 0 ){ // 0
chineseValue = chineseValue + "整";
}
return chineseValue;
},
@ -1745,4 +1931,13 @@ export default {
/deep/ .el-upload-list{
display: none;
}
.item{
max-width:300px;
}
.btn-custom-cancel{
display: none;
background: transparent;
color: turquoise;
}
</style>

@ -115,6 +115,8 @@ export default {
this.$router.push('/' + path);
},
backTo(){// 退
console.log(this.showValue,'当前后退的判断值')
console.log(this.schedule,typeof(this.schedule),'当前后退的判断值')
switch (this.showValue) {
case '0'://
switch (this.loanStatusHome) {
@ -186,7 +188,7 @@ export default {
case '1':
this.goto('workbench')
break;
default:
default: this.goto('workbench')
break;
}
break;
@ -222,6 +224,10 @@ export default {
this.$store.commit("leftSidebarData", { leftStatus: this.showValue });
}
},
destroyed() {
this.$store.commit("leftSidebarData", { leftStatus: '0' });
this.$store.commit("loanStatusData", { loanStatus: 1 });//
},
};
</script>
<style lang='scss' scoped>

@ -247,7 +247,15 @@
<el-table-column prop="repaymentStatus" label="状态" align="center"></el-table-column>
<el-table-column prop="submitterName" label="提交人" align="center"></el-table-column>
<el-table-column prop="createTime" label="提交时间" align="center"></el-table-column>
<el-table-column prop="repaymentNotes" label="还款备注" align="center"></el-table-column>
<el-table-column prop="repaymentNotes" label="还款备注" align="center">
<template slot-scope="scope">
<el-tooltip v-if="scope.row.repaymentNotes&&scope.row.repaymentNotes!='-'&&scope.row.repaymentNotes!=' '" style="max-width:300px" class="item" effect="dark" :content="scope.row.repaymentNotes" placement="top">
<div style="max-height:45px;over-flow:auto;">
{{scope.row.repaymentNotes}}
</div>
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button v-if="$router.currentRoute.meta.btn.includes('催收查看')" type="text" @click="goRepaymentDetail(scope.row)">查看</el-button>
@ -337,7 +345,15 @@
<el-table-column prop="repaymentStatus" label="状态" align="center"></el-table-column>
<el-table-column prop="submitterName" label="提交人" align="center"></el-table-column>
<el-table-column prop="createTime" label="提交时间" align="center"></el-table-column>
<el-table-column prop="repaymentNotes" label="还款备注" align="center"></el-table-column>
<el-table-column prop="repaymentNotes" label="还款备注" align="center">
<template slot-scope="scope">
<el-tooltip style="max-width:300px" class="item" effect="dark" :content="scope.row.repaymentNotes" placement="top">
<div style="max-height:45px;over-flow:auto;">
{{scope.row.repaymentNotes}}
</div>
</el-tooltip>
</template>
</el-table-column>
</el-table>
</div>
</div>
@ -392,8 +408,9 @@
</el-form-item>
</el-form>
<div class="mab20 flex-start-around" v-if="logbackStatus == '提交'">
<el-button type="primary" round class="mag" @click="collectionSave('collectionHandle')">提交</el-button>
<div class="mab20 flex-start-around" v-if="logbackStatus === '提交'||logbackStatus === '编辑'">
<el-button type="primary" round v-if="logbackStatus === '提交'" class="mag" @click="collectionSave('collectionHandle')">提交</el-button>
<el-button type="primary" round v-if="logbackStatus === '编辑'" class="mag" @click="updateCollection('collectionHandle')">提交</el-button>
<el-button type="primary" plain round class="mag" @click="collectionCancel">取消</el-button>
</div>
</div>
@ -453,10 +470,24 @@
<el-table-column prop="collectionTime" label="催收日期" align="center"></el-table-column>
<el-table-column prop="collectionUserName" label="催收人" align="center"></el-table-column>
<el-table-column prop="collectionMethod" label="催收方式" align="center"></el-table-column>
<el-table-column prop="collectionFeedback" label="催收反馈" align="center"></el-table-column>
<el-table-column prop="collectionFeedback" label="催收反馈" align="center">
<template slot-scope="scope">
<el-tooltip v-if="scope.row.collectionFeedback" style="max-width:300px" class="item" effect="dark" :content="scope.row.collectionFeedback" placement="top">
<div style="max-height:45px;over-flow:auto;">
{{scope.row.collectionFeedback}}
</div>
</el-tooltip>
<div v-else>
-
</div>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" width="200" align="center">
<template slot-scope="scope">
<el-button type="text" v-if="$router.currentRoute.meta.btn.includes('催收记录查看')" @click="collectionHisSee(scope.row)">查看</el-button>
<el-button type="text" v-if="$router.currentRoute.meta.btn.includes('催收记录查看')" @click="eidt(scope.row)">编辑</el-button>
<el-button type="text" v-if="$router.currentRoute.meta.btn.includes('催收记录查看')" @click="del(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -472,7 +503,7 @@
</template>
<script>
import { collectionList, collectionListDetail, collectionHisList, excelCollectionHis, collection, collectionHisListDetail, insuranceDetail, repaymentEntry, repaymentList, repaymentStatistics, repaymentDetail, excelCollection, updateInsurance } from '../../../utils/api';
import { collectionList, collectionListDetail, collectionHisList, excelCollectionHis, collection, collectionHisListDetail, insuranceDetail, repaymentEntry, repaymentList, repaymentStatistics, repaymentDetail, excelCollection, updateInsurance,updateCollection,delCollection } from '../../../utils/api';
import axios from 'axios';
export default {
@ -596,6 +627,12 @@
endTimeOptions: {}
};
},
computed:{
records(){
return this.$store.state.loan.records
}
},
watch: {
"$store.state.loan.logStatus":function(val) {
this.logStatus = val
@ -745,6 +782,7 @@
this.$store.commit("logbackStatusData", { logbackStatus: '提交' });
this.logId = row.id
this.$store.commit("logIdData", { logId: row.id });
this.$store.commit("records", false);
},
//
collectionHis(row){
@ -920,8 +958,13 @@
this.collectionHandle.insuranceId = this.logId
collection(this.collectionHandle).then(res=>{
this.$message.success("提交成功!");
this.logStatus = 1
this.$store.commit("logStatusData", { logStatus: 1 });
console.log(this.records,'recodes')
if(this.records){
this.logStatus = 5
}else{
this.logStatus = 1
}
this.$store.commit("logStatusData", { logStatus: this.logStatus });
}).catch(err=>{
})
}
@ -929,8 +972,13 @@
},
//
collectionCancel(){
this.logStatus = 1
this.$store.commit("logStatusData", { logStatus: 1 });
console.log(this.records,'recodes')
if(this.records){
this.logStatus = 5
}else{
this.logStatus = 1
}
this.$store.commit("logStatusData", { logStatus: this.logStatus });
},
//*****
async collectionHisList(){
@ -992,6 +1040,9 @@
this.$store.commit("logbackStatusData", { logbackStatus: '查看' });
this.logbackId = row.id
this.$store.commit("logbackIdData", { logbackId: row.id });
this.$store.commit("records", true);
},
//
async collectionHisListDetail(){
@ -1023,7 +1074,47 @@
e.repaymentStatus = this.core.stcStatus(e.repaymentStatus)
})
this.collectionData = res.data.alRepaymentEntryList
}
},
eidt(row){//
this.logStatus = 4
this.$store.commit("logStatusData", { logStatus: 4 });
this.logbackStatus = '编辑'
this.$store.commit("logbackStatusData", { logbackStatus: '编辑' });
this.logbackId = row.id
this.$store.commit("logbackIdData", { logbackId: row.id });
this.$store.commit("records", true);
},
updateCollection(collectionHandle){//
if(this.collectionHandle.collectionMethod!=='3') this.$set(this.collectionHandle,"other",'')
this.$refs[collectionHandle].validate((valid) => {
if (valid) {
if(this.collectionHandle.collectionMethod=='3'&&!this.collectionHandle.other) return this.$message.error("请输入其他催收方式说明!");
if(this.uploadList.length == 0) return this.$message.error("请先上传附件文件!");
this.collectionHandle.enclosureFiles = this.uploadList.map(e => e.url)
this.collectionHandle.insuranceId = this.logId
this.collectionHandle.id = this.logbackId
updateCollection(this.collectionHandle).then(res=>{
this.$message.success("编辑成功");
this.logStatus = 1
this.$store.commit("logStatusData", { logStatus: 1 });
}).catch(err=>{
})
}
})
// updateCollection(params).then(res=>{
// console.log(res,'')
// })
},
del(row){//
this.$confirm('此操作不可逆,是否确定删除该业务?','提示').then(()=>{
delCollection(row.id).then(()=>{
this.$message.success("删除成功");
this.collectionHisList()
})
}).catch(()=>{
})
},
}
}
@ -1042,5 +1133,8 @@
outline: none;
width: 20rem;
}
/deep/ .el-tooltip__popper{
max-width: 600px;
}
</style>

@ -46,7 +46,7 @@
<el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-input
placeholder="请输入金额(元)"
placeholder="请输入数值"
class="wd20 mglr10"
style="min-width: 200px"
:disabled="!searchStr.proportionSymbol"
@ -55,7 +55,7 @@
></el-input>
<p>%</p>
<p class="fz-16 mgr10 font-blue mgl20 nowrap">已清收总额</p>
<el-select v-model="searchStr.allAoumntSymbol" placeholder="请选择" clearable @change="search">
<el-select @change="allAoumntSymbolChange" v-model="searchStr.allAoumntSymbol" placeholder="请选择" clearable>
<el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-input :disabled="!searchStr.allAoumntSymbol" class="wd20 mglr10" placeholder="请输入金额(元)" style="min-width: 200px" v-model="searchStr.allAoumnt" clearable></el-input>
@ -89,7 +89,7 @@
v-model="searchStr.queryCondition"
placeholder="工号/清收负责人"
clearable
></el-input>
><i slot="suffix" class="el-input__icon el-icon-search" @click="annualStatisticsList"></i></el-input>
</div>
</div>
<!--
@ -107,8 +107,8 @@
:key="1"
>
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<el-table-column prop="companyRanks" label="公司排名" align="center" width="120px"></el-table-column>
<el-table-column prop="TeamRanks" label="小组排名" align="center" width="120px"></el-table-column>
<el-table-column prop="companyRanks" label="公司排名" align="center" width="70px"></el-table-column>
<el-table-column prop="TeamRanks" label="小组排名" align="center" width="70px"></el-table-column>
<el-table-column prop="groupName" label="清收组" align="center" width="150px"></el-table-column>
<el-table-column prop="personLiable" label="清收负责人" align="center" width="150px"></el-table-column>
<el-table-column prop="jobNumber" label="工号" align="center"></el-table-column>
@ -137,6 +137,7 @@
<template slot-scope="scope">
<div class="backTime static multi-box" v-for="(item, index) in scope.row.collectionTime" :key="index">
<el-date-picker
v-if="item.collectionTime"
style="width:180px"
v-model="item.collectionTime"
type="date"
@ -144,6 +145,7 @@
:disabled="!scope.row.edit"
>
</el-date-picker>
<div v-else>-</div>
</div>
</template>
</el-table-column>
@ -161,14 +163,19 @@
<el-input :disabled="!scope.row.edit" placeholder="输入年度金额指标" v-model="scope.row.proportion"></el-input>
</div>
<div v-if="!scope.row.edit">
{{scope.row.percent}}%
{{scope.row.percent==="未填写年度指标"?"未填写年度指标":scope.row.percent+"%"}}
</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" align="center" width="200px">
<template slot-scope="scope">
<div class="backTime static multi-box" v-for="(item, index) in scope.row.description" :key="index">
<el-input :disabled="!scope.row.edit" v-model="item.description"></el-input>
<div class="backTime static multi-box" v-for="(item, index) in scope.row.description" :key="index">
<el-tooltip v-if="item.description&&item.description!='-'&&scope.row.description!=' '" class="item" effect="dark" :content="item.description" placement="top">
<el-input :disabled="!scope.row.edit" v-model="item.description"></el-input>
</el-tooltip>
<div v-else>
-
</div>
</div>
</template>
</el-table-column>
@ -206,7 +213,7 @@
<div class="tree">
<div class="left-border fz-16 mgt20"><p class="c-black mgl10">参与本年度清收排名的人员</p></div>
<div class="mgl80 mgt20 mgr80" style="border: 1px solid #e6e6e6; border-radius: 15px; overflow: auto; padding: 15px">
<el-checkbox @change="allCheck" v-model="checked" class="mgl20" style="margin-left:23px">全选</el-checkbox>
<!-- <el-checkbox @change="allCheck" v-model="checked" class="mgl20" style="margin-left:23px">全选</el-checkbox> -->
<el-tree
:data="tree"
show-checkbox
@ -230,11 +237,14 @@
</div>
</template>
<script>
import { json } from 'mathjs';
import {collectionGroupList ,generateAnnualStatistics,annualList,annualStatisticsList,editAnnualStatistics,personnelSelection ,annualStatisticsDeleted,annualStatisticsListExport,liquidateList } from '../../../utils/api'
import core from '../../../utils/core'
export default {
name: '',
props: {},
components:{
},
data() {
return {
showRank: false, //
@ -291,17 +301,21 @@ export default {
changeStaffYear:'',
changeStaffDisabled:false,
checked:false,
};
},
watch: {
showRank(val){
if(val){
this.getTree()
}else{
this.tree = []
this.treeIds = []
}
},
liquidate(val){
if(val==2){
console.log('判断为2')
// console.log('2')
this.liquidateList()
this.annualStatisticsList()
}else{
@ -327,15 +341,15 @@ export default {
},set(){}
},
percent(){
console.log(this.statisticsData,'statisticsData')
console.log(this.statisticsData.totalAmount,this.statisticsData.proportion,'计算百分比的值')
// console.log(this.statisticsData,'statisticsData')
// console.log(this.statisticsData.totalAmount,this.statisticsData.proportion,'')
return (+this.statisticsData.totalAmount/+this.statisticsData.proportion).toFixed(2)
}
},
created() {
this.searchStr = this.$store.state.loan.liquidateSearch
this.annualList()
console.log(this.liquidate,this.searchStr,'li')
// console.log(this.liquidate,this.searchStr,'li')
if(this.liquidate=='2'){
this.annualStatisticsList()
}
@ -347,7 +361,7 @@ export default {
liquidateList(){//
liquidateList().then(res=>{
this.liquidateSelectArr = res.data.groupList
console.log(this.liquidateSelectArr,'arr')
// console.log(this.liquidateSelectArr,'arr')
})
},
handleScroll:core.debounce(function(){
@ -395,7 +409,6 @@ export default {
if(!this.searchStr.year) {
this.searchStr = this.$store.state.loan.liquidateSearch
}
this.moreText = "点击加载更多数据"
let param = {
year:this.searchStr.year,
groupId:this.searchStr.groupId,
@ -405,10 +418,113 @@ export default {
}
this.statisticsLoading = true
annualStatisticsList(param).then(res=>{
// console.clear()
// console.log('')
this.statisticsLoading = false
let arr = new Map()
let arr = new Map() // map
let data = res.data.list
data.forEach(e=>{
let groupArr= new Map()//
let overArr = []//
function compare(key){
return function(value1,value2){
let val1=value1[key];
let val2=value2[key];
return val2-val1;
}
}
// console.log(res.data.groupList.collect,'res.data.groupList.collect')
//
let collect = JSON.parse(JSON.stringify(res.data.groupList.collect))
if(res.data.groupList.collect){
// console.log('')
for (let key in res.data.groupList.collect) {//
//
let group = res.data.groupList.collect[key]
// console.log(group,'',key,'key')
let aloneMap = new Map() // map
let aloneArr = []//
group.forEach(e=>{//
// totalAmount
if(aloneMap.has(e.jobNumber)){//
let obj = aloneMap.get(e.jobNumber)
obj.enterprise.push({enterprise:e.enterprise,id:e.id})
obj.totalAmount += ((+e.cash||0)+(+e.assets))
obj.cash.push({cash:e.cash,id:e.id})
obj.assets.push({assets:e.assets,id:e.id})
obj.collectionTime.push({collectionTime:e.collectionTime,id:e.id})
obj.description.push({description:e.description,id:e.id})
aloneMap.set(e.jobNumber,obj)
// console.log(e.groupName,'')
}else{
e.groupName = [e.groupName]//
// console.log(e.groupName,'e.groupName')
e.enterprise = [{enterprise:e.enterprise||'-',id:e.id}]
e.totalAmount = (+e.cash||0)+(+e.assets)
e.cash = [{cash:e.cash||'-',id:e.id}]
e.assets = [{assets:e.assets||'-',id:e.id}]
e.collectionTime = [{collectionTime:e.collectionTime,id:e.id}]
e.description = [{description:e.description||'-',id:e.id}]
// console.log(e.totalAmount,`${e.personLiable}`)
aloneMap.set(e.jobNumber,e)//
}
})
// console.log(aloneMap,'alone')
// map
for(let [key,value] of aloneMap){
aloneArr.push(value)
}
// console.log('aloneArrmap',aloneArr)
aloneArr.sort(compare('totalAmount'))//
aloneArr.forEach((e,i)=>{//
e.TeamRanks = [i+1]
})
groupArr.set(key,aloneArr)// idmap
}
}
let dispose = []
// map,
for(let [key,value] of groupArr){
// map
dispose.push(...value)
}
// console.log(dispose,'dispose')
if(dispose.length>0){
// map
let disposeMap = new Map()
dispose.forEach(e=>{//
if(disposeMap.has(e.jobNumber)){//
let obj = disposeMap.get(e.jobNumber)
// console.log(e.groupName,e.TeamRanks,'e')
// console.log(obj.groupName,obj.TeamRanks,'obj')
// console.log(obj.groupName.includes(e.groupName),'obje')
if(!obj.groupName.includes(e.groupName)){//
obj.groupName.push(...e.groupName)//
obj.TeamRanks.push(...e.TeamRanks)//
}
// console.log(obj,'obj')
//
disposeMap.set(e.jobNumber,obj)//
}else{
// e.groupName = [...e.groupName]//
// e.TeamRanks =
disposeMap.set(e.jobNumber,e)//
}
})
//
// console.log(disposeMap,'map')
for(let [key,value] of disposeMap){
overArr.push(value)//
}
}
// console.log('overArr',overArr)
//
data.forEach(e=>{// --
if(arr.has(e.jobNumber)){
let obj = arr.get(e.jobNumber)
obj.enterprise.push({enterprise:e.enterprise,id:e.id})
@ -421,12 +537,12 @@ export default {
// console.log(e.totalAmount,`${e.personLiable}`)
}else{
e.enterprise = [{enterprise:e.enterprise,id:e.id}]
e.enterprise = [{enterprise:e.enterprise||'-',id:e.id}]
e.totalAmount = (+e.cash||0)+(+e.assets)
e.cash = [{cash:e.cash,id:e.id}]
e.assets = [{assets:e.assets,id:e.id}]
e.cash = [{cash:e.cash||'-',id:e.id}]
e.assets = [{assets:e.assets||'-',id:e.id}]
e.collectionTime = [{collectionTime:e.collectionTime,id:e.id}]
e.description = [{description:e.description,id:e.id}]
e.description = [{description:e.description||'-',id:e.id}]
// console.log(e.totalAmount,`${e.personLiable}`)
arr.set(e.jobNumber,e)
}
@ -434,21 +550,32 @@ export default {
//
this.originalData = []
for(let [key,value] of arr){
//
if(value.totalAmount&&value.proportion){
value.percent = ((value.totalAmount/value.proportion)*100).toFixed(2)
}else{
value.percent = '未填写年度指标'
}
// ,
overArr.forEach(e=>{
if(e.jobNumber==value.jobNumber){
value.groupName = e.groupName.join(",") //
value.TeamRanks = e.TeamRanks.join(",") //
}
})
this.originalData.push(value)
}
console.log(this.originalData,'初始处理的数据')
this.radioChange('依据小组排名')
// console.log(this.originalData,'')
//
// this.radioChange('')
this.radioChange('依据公司排名')
//
if(this.radio==='依据小组排名'){
this.radioChange('依据小组排名')
// console.log('',collect,'chunazhi')
this.radioChange('依据小组排名',collect)
}
console.log(this.searchStr.proportionSymbol,'this.searchStr.allAoumntSymbol')
// console.log(this.searchStr.proportionSymbol,'this.searchStr.allAoumntSymbol')
switch (this.searchStr.proportionSymbol) {
case '':
break;
@ -495,7 +622,7 @@ export default {
default:
break;
}
//
//
switch (this.searchStr.allAoumntSymbol) {
case '':
break;
@ -527,13 +654,13 @@ export default {
default:
break;
}
// 10,
if (this.statisticsData.length>10) {
this.recordArr = JSON.parse(JSON.stringify(this.statisticsData))
this.recordArr.splice(0,10)
this.statisticsData.splice(10,this.statisticsData.length-1)//
}
/* 分页改为无限滚动,暂时保留 */
// // 10,
// if (this.statisticsData.length>10) {
// this.recordArr = JSON.parse(JSON.stringify(this.statisticsData))
// this.recordArr.splice(0,10)
// this.statisticsData.splice(10,this.statisticsData.length-1)//
// }
}).catch(err=>{
this.statisticsLoading = false
})
@ -548,17 +675,60 @@ export default {
e.disabled = true
}
})
this.tree = data
let allTree = [{
id:'全选group',
name:'全选',
personnel:[...data]
}]
this.tree = allTree
// console.log("")
}).catch(err=>{
this.treeLoading = false
})
},
//
checkBox(data, checked, indeterminate){
// console.log(checked,'dianjiindeterminate')
this.treeIds = this.$refs.tree.getCheckedKeys()
// console.log(this.treeIds,'ids')
// if(checked){
// const fn = function(arr,ids,id){
// arr.forEach(el=>{
// if(el.id.includes(',')){
// if(el.id.split(',').pop()==id&&!ids.includes(el.id)){
// ids.push(el.id)
// }
// }
// if(el.personnel&&el.personnel.length>0){
// fn(el.personnel,ids,id)
// }
// })
// }
// this.treeIds.forEach(e=>{
// if(e.includes(",")){
// let id = e.split(",").pop()//
// fn(this.tree,this.treeIds,id)
// }
// })
// }else{
// let tid = this.treeIds
// this.treeIds.forEach(e=>{
// if(e.includes(',')){
// let id = e.split(",").pop()
// this.treeIds.forEach(el=>{
// if(el.includes(id)){
// tid.splice(tid.indexOf(el),1)
// }
// })
// }
// })
// console.log(this.treeIds,'ids')
// }
},
async createList(val) {//
console.log(val,'val')
// console.log(val,'val')
this.showRank = true;
if(val==='new'){//
this.treeIds = []
@ -574,14 +744,21 @@ export default {
if (this.treeStatus === 'new') {
//
if(!this.chooisYear)return this.$message.error('请先选择年份!')
let arr = []
this.treeIds.forEach((e,index)=>{
if(typeof(e)=='number'){
arr.push(e)
// let arr = []
// this.treeIds.forEach((e,index)=>{
// if(e.includes(',')){
// arr.push(e.split(",").pop())
// }
// })
if(this.treeIds.length===0) return this.$message.warning('请先选择人员后再生成列表!')
console.log(this.treeIds,'treeIds')
this.treeIds.forEach((e)=>{
if(e=="全选group"){
this.treeIds.splice(this.treeIds.indexOf(e),1)
return
}
})
if(arr.length===0) return this.$message.warning('请先选择人员后再生成列表!')
generateAnnualStatistics({personLiableIds:arr,year:this.chooisYear,flag:1}).then(res=>{
generateAnnualStatistics({personLiableIds:this.treeIds,year:this.chooisYear,flag:1}).then(res=>{
this.showRank = false
this.$message.success('操作成功!')
this.annualList()
@ -589,18 +766,26 @@ export default {
})
}else{//
let arr = []
// let arr = []]
this.treeIds.forEach((e)=>{
if(e=="全选group"){
this.treeIds.splice(this.treeIds.indexOf(e),1)
return
}
})
console.log(this.ids,'ids的值',this.treeIds)
this.ids.forEach(e=>{//
if(this.treeIds.includes(+e)){
this.treeIds.splice(this.treeIds.indexOf(+e),1)
if(this.treeIds.includes(e+"")){
this.treeIds.splice(this.treeIds.indexOf(e+""),1)
}
})
this.treeIds.forEach((e,index)=>{
if(typeof(e)=='number'){
arr.push(e)
this.treeIds.forEach((e)=>{
if(e=="全选group"){
this.treeIds.splice(this.treeIds.indexOf(e,1))
return
}
})
generateAnnualStatistics({personLiableIds:arr,year:this.chooisYear}).then(res=>{
generateAnnualStatistics({personLiableIds:this.treeIds,year:this.chooisYear}).then(res=>{
this.showRank = false
this.$message.success('操作成功!')
this.annualList()
@ -613,7 +798,7 @@ export default {
currentChange(val) {
//
},
radioChange(val) {//
radioChange(val,groups) {//
function compare(key){
return function(value1,value2){
let val1=value1[key];
@ -622,46 +807,111 @@ export default {
}
}
if(val==='依据小组排名'){
let groupMap = new Map()
this.originalData.forEach(e=>{
if(groupMap.has(e.groupName)){
let obj = groupMap.get(e.groupName)
obj.totalAmount += e.totalAmount
groupMap.set(e.groupName,obj)
}else{
let obj = {groupName:e.groupName,totalAmount:e.totalAmount}
groupMap.set(e.groupName,obj)
}
})
let group = []
for(let [key,value] of groupMap){
group.push(value)
let groupMap = new Map()//
let sortGroups = []//
// console.log('',groups,'groups')
if(!groups){//
this.annualStatisticsList()
}
group.sort(compare('totalAmount'))
let newGroup = []
group.forEach(e=>{
let arr = []
this.originalData.forEach(el=>{
if(e.groupName===el.groupName){
arr.push(el)
if(groups){//
for (let key in groups) {
let group = JSON.parse(JSON.stringify(groups[key]))//
if(group.length===0) return
//
//
let sum = group.reduce((pre,item)=>{
return pre + (item.cash||0) + (item.assets||0)
},0)
console.log(sum,'叠加的组数据')
let obj = {
sum:sum,
id:group[0].groupId
}
console.log(group,'组group的数据')
groupMap.set(group[0].groupId,obj)// id
console.log(groupMap,'排序的组')
}
let sortGroup = []//
for (let [key,value] of groupMap) {
sortGroup.push(value)
}
console.log(sortGroup,'取得排序过的数组数据')
sortGroup.sort(compare('sum'))//
//
// push
sortGroup.forEach(e=>{
sortGroups.push(groups[e.id])//
})
newGroup.push(arr)
})
newGroup.forEach(e=>{
e.sort(compare('totalAmount'))
})
let groupDown = []
newGroup.forEach((e)=>{
e.forEach((e,index)=>{
e.TeamRanks = index+1
e.editStr = '编辑'
e.edit = false
groupDown.push(e)
console.log(sortGroups,'处理好的排序组')
let lastData = []//
//
sortGroups.forEach(e=>{
let manMap = new Map()
e.forEach(e=>{
if(manMap.has(e.jobNumber)){//
let obj = manMap.get(e.jobNumber)
obj.enterprise.push({enterprise:e.enterprise,id:e.id})
obj.totalAmount += ((+e.cash||0)+(+e.assets))
obj.cash.push({cash:e.cash,id:e.id})
obj.assets.push({assets:e.assets,id:e.id})
obj.collectionTime.push({collectionTime:e.collectionTime,id:e.id})
obj.description.push({description:e.description,id:e.id})
manMap.set(e.jobNumber,obj)
}else{//
e.enterprise = [{enterprise:e.enterprise||'-',id:e.id}]
e.totalAmount = (+e.cash||0)+(+e.assets)
e.cash = [{cash:e.cash||'-',id:e.id}]
e.assets = [{assets:e.assets||'-',id:e.id}]
e.collectionTime = [{collectionTime:e.collectionTime,id:e.id}]
e.description = [{description:e.description||'-',id:e.id}]
// console.log(e.totalAmount,`${e.personLiable}`)
manMap.set(e.jobNumber,e)
}
//
})
let handelArr = []
for(let [key,val] of manMap){
handelArr.push(val)
}
handelArr.sort(compare('totalAmount'))
console.log(handelArr,'handlarr')
//
handelArr.forEach((e,i)=>{
e.TeamRanks = i+1
this.originalData.some(el=>{
if(e.jobNumber===el.jobNumber){
e.companyRanks = el.companyRanks
// e.groupName =
}
})
if(e.totalAmount&&e.proportion){
e.percent = ((e.totalAmount/e.proportion)*100).toFixed(2)
}else{
e.percent = '未填写年度指标'
}
})
//
lastData.push(...handelArr)
// for(let [key,val] of manMap){
// lastData.push(val)
// }
})
})
this.statisticsData = JSON.parse(JSON.stringify(groupDown))
// console.log(lastData,'')/
this.statisticsData = JSON.parse(JSON.stringify(lastData))
}
}else if(val==='依据公司排名'){
// this.annualStatisticsList()
// ,
this.originalData.sort(compare('totalAmount'))
this.originalData.forEach((e,i)=>{
@ -689,7 +939,9 @@ export default {
statisticsSelection() {
// console.log('',this.searchStr.year)
// console.log(this.searchStr.year+``)
core.exportFile(annualStatisticsListExport(this.searchStr.year),this.searchStr.year+"年度清收工作完成进度表")
let num
this.radio == "依据公司排名"?num=1:num=0
core.exportFile(annualStatisticsListExport(this.searchStr.year)+`&flag=${num}`,this.searchStr.year+"年度清收工作完成进度表")
},
edit(row, val) {
//
@ -700,7 +952,7 @@ export default {
this.$store.commit('liquidate','2')
//
this.$store.commit('liquidWatch',val)
console.log(val,this.liquidWatch,'liquidWatch')
// console.log(val,this.liquidWatch,'liquidWatch')
// this.annualStatisticsList()
},
yearEdit(row, val){//
@ -731,12 +983,23 @@ export default {
},
personnelSelection(val){//
return personnelSelection({year:val}).then(res=>{
console.log(res.data.list,'list')
this.treeIds = res.data.list.map(e=>{
return e.split(",").pop()
this.treeIds = res.data.list
// const disabled = function(arr,ids){
// arr.forEach(e=>{
// if(ids.includes(e.id)){
// e.disabled = true
// }
// })
// }
// disabled(this.tree,this.treeIds)
console.log(this.treeIds,'ids的值')
this.tree[0].personnel.forEach(e=>{
if(this.treeIds.includes(+e.id)){
e.disabled = true
}
})
console.log(this.treeIds,'treeids')
this.$forceUpdate();
// console.log('treeIds',this.treeIds)
this.ids = res.data.list
})
},
@ -748,29 +1011,34 @@ export default {
})
})
},
allCheck(val){
console.log(this.tree,'tree')
if(this.tree.length==0) return
let that = this
function recursion(arr){
if(arr&&arr.length>0){
arr.forEach(e=>{
that.treeIds.push(e.id)
if(e.personnel&&e.personnel.length>0){
recursion(e.personnel)
}
})
}
}
if(val){
recursion(this.tree)
// this.ids = this.treeIds
}else{
this.treeIds = []
// allCheck(val){
// console.log(this.tree,'tree')
// if(this.tree.length==0) return
// let that = this
// function recursion(arr){
// if(arr&&arr.length>0){
// arr.forEach(e=>{
// that.treeIds.push(e.id)
// if(e.personnel&&e.personnel.length>0){
// recursion(e.personnel)
// }
// })
// }
// }
// if(val){
// recursion(this.tree)
// // this.ids = this.treeIds
// }else{
// this.treeIds = []
// }
// this.$refs.tree.setCheckedKeys([this.treeIds]);
// // console.log(this.treeIds,'ids')
// // this.$forceUpdate();
// },
allAoumntSymbolChange(val){
if(!val){
this.searchStr.allAoumnt = ''
}
this.$refs.tree.setCheckedKeys([this.treeIds]);
// console.log(this.treeIds,'ids')
// this.$forceUpdate();
}
}
};
@ -845,4 +1113,5 @@ export default {
color:#606266;
background: transparent;
}
</style>

@ -17,12 +17,13 @@
<el-option v-for="(item,index) in bankData" :key="item.index" :label="item.value" :value="item.value"></el-option>
</el-select>
<p class="fz-16 mgr10 font-blue mgl20 nowrap">代偿金额</p>
<el-select style="width:200px" v-model="searchStr.amountSymbol" placeholder="请选择" clearable @change="search">
<el-select style="width:200px" v-model="searchStr.amountSymbol" placeholder="请选择" clearable @change="changeAmountSymbol">
<el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-input
:disabled="!searchStr.amountSymbol"
placeholder="请输入金额(万)"
placeholder="请输入金额(元)"
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
class="wd20 mglr10"
style="width: 200px"
v-model="searchStr.compensationAmount"
@ -32,13 +33,14 @@
<div class="flex-between mgtb20">
<div class="flex-center">
<p style="margin-right:15px" class="fz-16 font-blue mgl20 nowrap">代偿余额</p>
<el-select style="width:200px;margin-right:15px" v-model="searchStr.balanceSymbol" placeholder="请选择" clearable @change="search">
<el-select style="width:200px;margin-right:15px" @change="changeBalanceSymbol" v-model="searchStr.balanceSymbol" placeholder="请选择" clearable>
<el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-input
:disabled="!searchStr.balanceSymbol"
placeholder="请输入金额()"
placeholder="请输入金额()"
class="mglr10"
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
style="width:200px"
v-model="searchStr.compensatoryBalance"
clearable
@ -83,8 +85,8 @@
v-model="searchStr.queryCondition"
placeholder="企业名称/清收负责人/业务编号"
clearable
></el-input>
<el-button v-preventReClick type="primary" round @click="quryCollectionProgress">搜索</el-button>
><i slot="suffix" class="el-input__icon el-icon-search" @click="quryCollectionProgress" ></i></el-input>
<!-- <el-button v-preventReClick type="primary" round @click="quryCollectionProgress">搜索</el-button> -->
</div>
</div>
@ -115,7 +117,15 @@
<el-table-column prop="area" label="所在区域" align="center" min-width="100px"></el-table-column>
<el-table-column prop="repaymentMethod" label="清偿方式" align="center" min-width="100px"></el-table-column>
<el-table-column prop="personLiable" label="清收负责人" align="center" min-width="100px"></el-table-column>
<el-table-column prop="repaymentNotes" label="备注" align="center" min-width="100px"></el-table-column>
<el-table-column label="备注" align="center" min-width="100px">
<template slot-scope="scope">
<el-tooltip v-if="scope.row.repaymentNotes&&scope.row.repaymentNotes!='-'&&scope.row.repaymentNotes!=' '" style="max-width:300px" class="item" effect="dark" :content="scope.row.repaymentNotes" placement="top">
<div style="max-height:45px;over-flow:auto;">
{{scope.row.repaymentNotes}}
</div>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<div class="pagination">
@ -248,6 +258,18 @@ export default{
getRowKey(row){
return row.id;
},
changeAmountSymbol(val){//
if(val==''){
this.$set(this.searchStr, 'compensationAmount', '')
}
},
changeBalanceSymbol(val){//
console.log(val,'zhi')
if(val==''||!val){
this.$set(this.searchStr, 'compensatoryBalance', '')
}
},
},
}
@ -256,4 +278,7 @@ export default{
/deep/ .el-date-editor .el-range-separator{
min-width: 30px;
}
/deep/ .el-tooltip__popper{
max-width: 600px;
}
</style>

@ -25,6 +25,7 @@ const state = {
isFgJl: '',
fileList: [],
imgListT: [],
businessId:'',// 新的
// //参数保存-贷审会
// loansDepartment:{
@ -58,6 +59,9 @@ const getters = {
}
const mutations = {
businessId(s,v){
s.businessId = v
},
loansData (state, payload) {
state.loans = payload.loans
},

@ -31,6 +31,8 @@ const state = {
liquidateSearch:{},
liquidWatch:false,// 清收统计是否进入查看界面
source:'',// 判断是否为系统流转,且需要判断是否已编辑
fromOne:false,// 来自第一页的还款录入
records:false,// 催收记录进入详情
}
const getters = {
@ -38,6 +40,10 @@ const getters = {
}
const mutations = {
records(s,v){
s.records = v
},
leftSidebarData (state, payload) {
state.leftStatus = payload.leftStatus
},
@ -54,6 +60,9 @@ const mutations = {
state.hisidId = payload.hisidId,
state.guaranteeAmount = payload.guaranteeAmount
},
hisId(s,val){
s.hisidId = val
},
hispaymentStatusData (state, payload) {
state.hispaymentStatus = payload.hispaymentStatus
},
@ -110,7 +119,9 @@ const mutations = {
source(s,val){
s.source = val
},
fromOne(s,val){
s.fromOne = val
}
}
const actions = {

@ -105,7 +105,11 @@ export const annualStatisticsList = p => post('/api-guarantee/al-collection-stat
export const collection = p => post('/api-guarantee/al-collection/collection', p);
export const collectionList = p => get('/api-guarantee/al-collection/list', p);
export const collectionListDetail = p => get('/api-guarantee/al-collection/overdue/detail', p);
export const modifyReimbursement = p => get('/api-guarantee/al-reimbursement/modifyReimbursement', p);// 查清收组人员
export const collectionHisList = p => post('/api-guarantee/al-collection/collection/list', p);
export const updateCollection = p => post('/api-guarantee/al-collection/updateCollection', p);// 编辑催收记录
export const delCollection = p => post('/api-guarantee/al-collection/delCollection?id='+p);// 删除催收记录
export const collectionHisListDetail = p => get('/api-guarantee/al-collection/examine/detail', p);
export const excelInsurance = `${host}/api-guarantee/al-insurance-list/excelExport`;
export const excelHis = `${host}/api-guarantee/al-repayment-entry/excelExport`;

@ -42,11 +42,12 @@ export default {
// 数字转换大写中文
fMoney3:function (money) {
if(!money) return ''
//汉字的数字
let cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
let cnIntRadice = new Array('', '拾', '佰', '仟'); //基本单位
let cnIntUnits = new Array('', '万', '亿', '兆'); //对应整数部分扩展单位
let cnDecUnits = new Array('仟', '佰', '拾', ''); //对应小数部分单位
let cnDecUnits = new Array('仟', '佰', '拾', '元', '角' , '分'); //对应小数部分单位
let cnInteger = '元整'; //整数金额时后面跟的字符
let cnIntLast = '万'; //整数无小数点的单位
let int; //金额整数部分
@ -64,7 +65,8 @@ export default {
} else {
parts = money.split('.'); //整数小数分离
int = parts[0];
dot = parts[1].substr(0, 4); //最多四位小数
// dot = parts[1].substr(0, 4); //最多四位小数
dot = parts[1].substr(0, 6); //最多六位小数,计算到 角,分
}
//十进制转换,处理整数部分单位
if (parseInt(int, 10) > 0) {
@ -110,6 +112,81 @@ export default {
// }
return chineseStr;
},
// 保后专用
fMoney4:function (money) {
if(!money) return ''
//汉字的数字
let cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
let cnIntRadice = new Array('', '拾', '佰', '仟'); //基本单位
let cnIntUnits = new Array('', '万', '亿', '兆'); //对应整数部分扩展单位
let cnDecUnits = new Array('仟', '佰', '拾', '元', '角' , '分'); //对应小数部分单位
let cnInteger = '元'; //整数金额时后面跟的字符
let cnIntLast = '万'; //整数无小数点的单位
let int; //金额整数部分
let dot; //金额小数部分
let chineseStr = ''; //输出的中文金额字符串
let parts; //分离金额后用的数组,预定义
if (money == '') {
return '';
}
//转换为字符串,获取小数点后的值与整数分离
money = money.toString();
if (money.indexOf('.') == -1) {// 取得小树点后面的值
int = money;
dot = '';
} else {
parts = money.split('.'); //整数小数分离
int = parts[0];
// dot = parts[1].substr(0, 4); //最多四位小数
dot = parts[1].substr(0, 6); //最多六位小数,计算到 角,分
}
//十进制转换,处理整数部分单位
if (parseInt(int, 10) > 0) {
let zeroCount = 0;
let IntLen = int.length;
for (let i = 0; i < IntLen; i++) {
//循环整数部分,给每个位赋值,且判断是否整除4,添加额外赋值
let n = int.substr(i, 1);
let p = IntLen - i - 1; // 长度 -i -1 取得
let q = p / 4;
let m = p % 4;
console.log(q,m,"q,m")
if (n == '0') {
zeroCount++;
} else {
if (zeroCount > 0) {
chineseStr += cnNums[0];
}
//归零
zeroCount = 0;
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
//
if (m == 0 && zeroCount < 4) {
chineseStr += cnIntUnits[q];
}
}
chineseStr += cnIntLast;
}
//小数部分
if (dot != '') {
let decLen = dot.length;
for (let i = 0; i < decLen; i++) {
let n = dot.substr(i, 1);
if (n != '0') {
chineseStr += cnNums[Number(n)] + cnDecUnits[i];
}
}
}
// if (chineseStr == '') {// 为0时,
// chineseStr += cnNums[0] + cnIntLast + cnInteger;
// }
// else if (dot == '') {//小数点为空值时
chineseStr += cnInteger; // 加上元
// }
return chineseStr;
},
orderreleaseType:function (sts) {
const status = {

@ -5,8 +5,8 @@ import { Message } from 'element-ui'
import router from '../router/index'
// 服务器的切换
export const Url = 'https://test.feifanhitech.com'// 测试服务器地址
// export const Url = 'https://www.feifanhitech.com';// 非凡(正式服)
// export const Url = 'https://test.feifanhitech.com'// 测试服务器地址
export const Url = 'https://www.feifanhitech.com';// 非凡(正式服)
// export const Url = 'http://192.168.31.137:8080';//陈赓
axios.defaults.baseURL = Url;
const baseurl = Url

Loading…
Cancel
Save