保后和遗留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. 313
      src/components/page/afterLoan/afterInsurance.vue
  15. 8
      src/components/page/afterLoan/afterLoan.vue
  16. 110
      src/components/page/afterLoan/collection.vue
  17. 485
      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=", "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=",
"dev": true "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": { "duplexer": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.2.tgz", "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", "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=" "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": { "vue-loader": {
"version": "15.9.3", "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", "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; color: #00B9FF;
text-decoration: underline; text-decoration: underline;
} }
.el-tooltip__popper{
max-width: 700px;
}

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

@ -140,9 +140,9 @@
</div> </div>
</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> <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"> <div class="df fj-end mgt30 mgb30">
<!-- <el-button v-if="sendShow" class="mgr20" @click="toImage($refs.imageTofile)">抄送</el-button> --> <!-- <el-button v-if="sendShow" class="mgr20" @click="toImage($refs.imageTofile)">抄送</el-button> -->
@ -236,8 +236,15 @@ export default {
if(data.btn==='确认'){ if(data.btn==='确认'){
this.operationType = 3 this.operationType = 3
this.loanNoticeDetail(data)// this.loanNoticeDetail(data)//
this.operationType = operationType // this.operationType = this.operationType //
this.$store.commit("loansData", { loans: this.loans }); 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 }); this.$store.commit("letterData", { operationType: this.operationType, letterValue: this.letterValue });
} }
sessionStorage.removeItem('decideJump') sessionStorage.removeItem('decideJump')
@ -409,7 +416,7 @@ export default {
} }
let params = { let params = {
auditOpinion: this.letterValue.auditOpinion, auditOpinion: this.letterValue.auditOpinion,
businessId: this.letterValue.businessId, businessId: this.letterValue.businessId||this.$store.state.guarantee.businessId,
status: type status: type
} }
updateLoanNotice(params).then(res => { updateLoanNotice(params).then(res => {

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

@ -117,7 +117,7 @@ export default {
watch:{ watch:{
$route(to,from){ $route(to,from){
this.notice() this.notice()
this.handleSelect(this.activeIndex)// if(to!=this.activeIndex) this.handleSelect(this.activeIndex)//
}, },
pop(now,before){ pop(now,before){
// this // this
@ -135,7 +135,6 @@ export default {
// if( this.$store.state.login.headerImg){ // if( this.$store.state.login.headerImg){
// this.headerImg = this.$store.state.login.headerImg // this.headerImg = this.$store.state.login.headerImg
// } // }
// Event Bus
bus.$on('collapse', msg => { bus.$on('collapse', msg => {
this.collapse = msg; this.collapse = msg;
bus.$emit('collapse-content', msg); bus.$emit('collapse-content', msg);
@ -151,7 +150,11 @@ export default {
this.activeIndex = index this.activeIndex = index
sessionStorage.setItem('sideBar',index) sessionStorage.setItem('sideBar',index)
if(val!=='start') sessionStorage.removeItem('fromCopyTo') // beforeeach 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) { goto(path) {
this.$router.push('/' + path); this.$router.push('/' + path);

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

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

@ -477,6 +477,13 @@ export default {
decide(item){ decide(item){
if(item.operatingStatus===1){// if(item.operatingStatus===1){//
sessionStorage.setItem('decideJump',JSON.stringify(item)) 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) this.jumpToFrom(item.taskNode)
// switch (item.taskNode) { // switch (item.taskNode) {
// // // //
@ -1041,11 +1048,9 @@ export default {
break; break;
case '财务确认': case '财务确认':
nodeCode = 9 nodeCode = 9
//
break; break;
case '放款通知': case '放款通知':
nodeCode = 10 nodeCode = 10
//
break; break;
default: default:
break; break;

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

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

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

@ -5,7 +5,14 @@
<div class="flex-center pdt40 border-b pdb30" > <div class="flex-center pdt40 border-b pdb30" >
<img src="../../assets/img/Basics-icon.png" alt class="mgr10 icon-size" /> <img src="../../assets/img/Basics-icon.png" alt class="mgr10 icon-size" />
<p class="fz-16">基础应用</p> <p class="fz-16">基础应用</p>
</div> </div>
<!-- <br/>
10.22的输出
<el-input v-model="test"></el-input>
<br/>
{{fMoney4(test/10000)}}
{{ChinaCost(test)}} -->
<div class="flex-center"> <div class="flex-center">
<!-- v-if="$router.currentRoute.meta.btn.includes('人力资源管理系统')" --> <!-- v-if="$router.currentRoute.meta.btn.includes('人力资源管理系统')" -->
<div class="card mgr40 manpower" @click="goto('workbench-manpower')"> <div class="card mgr40 manpower" @click="goto('workbench-manpower')">
@ -32,7 +39,7 @@ export default {
data(){ data(){
return{ return{
url:false, url:false,
test:10.22,
} }
}, },
watch:{ watch:{
@ -54,6 +61,94 @@ export default {
if(this.$route.fullPath!=='/workbench')this.url = true if(this.$route.fullPath!=='/workbench')this.url = true
}, },
methods:{ 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) { goto(path) {
this.$router.push('/' + path); this.$router.push('/' + path);

@ -150,7 +150,9 @@
<el-form-item label="担保额度/贷款金额(元):" prop="guaranteeAmount"> <el-form-item label="担保额度/贷款金额(元):" prop="guaranteeAmount">
<div class="cashChinese"> <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> </div>
</el-form-item> </el-form-item>
@ -184,13 +186,13 @@
<el-form label-width="160px" ref="comp" :disabled="disabledAll" :model="comp" :rules="compRule"> <el-form label-width="160px" ref="comp" :disabled="disabledAll" :model="comp" :rules="compRule">
<el-col :span="12" > <el-col :span="12" >
<el-form-item label="代偿金额(元):"> <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>
<el-form-item label="代偿时间 :"> <el-form-item label="代偿时间 :">
<el-date-picker <el-date-picker
v-model="comp.compensatoryTime" v-model="comp.compensatoryTime"
@change="compensatoryTimeChange"
type="date" type="date"
class="wd100" class="wd100"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
@ -199,10 +201,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<!-- 代偿金额 - 代偿日后 还款的金额 - 每一次的利息总额每一笔还款都在这里减去 --> <!-- 转为后端计算 -->
<!-- TODO 此处的代偿未计算完善后端缺字段 -->
<el-form-item label="代偿余额(元):"> <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-form-item>
</el-col> </el-col>
</el-form> </el-form>
@ -224,7 +227,7 @@
</el-form-item> </el-form-item>
<el-form-item label="所属清收组:" style="width:35%" prop="collectionGroupId"> <el-form-item label="所属清收组:" style="width:35%" prop="collectionGroupId">
<div class="df"> <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-option v-for="(item, index) in organizationArrs" :key="index" :label="item.groupName" :value="item.id"></el-option>
</el-select> </el-select>
<el-button @click="organization=true" type="text" class="mgl10">自定义</el-button> <el-button @click="organization=true" type="text" class="mgl10">自定义</el-button>
@ -237,14 +240,16 @@
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="经营情况:"> <el-form-item label="经营情况:">
<!-- 未完成 --> <!-- 未完成 :disabled="!wanderEdit"
<el-select :disabled="!wanderEdit" v-model="liquidate.operation" placeholder="请选择" prop="operation"> :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-option v-for="(item, index) in circumstance" :key="index" :label="item.name" :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="诉讼情况:" > <el-form-item label="诉讼情况:" >
<el-input <el-input
:disabled="!wanderEdit"
type="textarea" type="textarea"
:rows="2" :rows="2"
placeholder="请输入1000字符以内" placeholder="请输入1000字符以内"
@ -253,7 +258,7 @@
</el-form-item> </el-form-item>
<el-form-item label="抵押情况:"> <el-form-item label="抵押情况:">
<el-input <el-input
:disabled="!wanderEdit"
type="textarea" type="textarea"
:rows="2" :rows="2"
placeholder="请输入1000字符以内" placeholder="请输入1000字符以内"
@ -460,7 +465,8 @@
<el-table-column prop="actualRepaymentDate" label="实际还款日" align="center"></el-table-column> <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="guaranteeAmount" label="担保额度(元)" align="center"></el-table-column>
<el-table-column prop="currentRepayment" 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="otherExpenses" label="其他费用(元)" align="center"></el-table-column>
<el-table-column prop="totalRepayment" 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> <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="repaymentStatus" label="状态" align="center"></el-table-column>
<el-table-column prop="submitterName" 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="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"> <el-table-column label="操作" width="200" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$router.currentRoute.meta.btn.includes('保后查看')" type="text" @click="goRepaymentDetail(scope.row,'查看')">查看</el-button> <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"> <el-dialog title="导入" :visible.sync="upLoadPop" width="24%" center :close-on-click-modal="false">
<div class="flex-start-around"> <div class="flex-start-around">
<el-button type="primary" round <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-button>
<el-upload <el-upload
accept=".xls,.xlsx" accept=".xls,.xlsx"
@ -551,10 +565,9 @@
<script> <script>
import { mapState } from 'vuex'; 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 { 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';// fMoney3 import core from '../../../utils/core'
// 使 // 使 import { create, all } from 'mathjs/number'
// import { create, all } from 'mathjs/number'
// const math = create(all) // const math = create(all)
let math = require('mathjs'); let math = require('mathjs');
export default { export default {
@ -656,12 +669,12 @@ export default {
value1:'', value1:'',
area:[// area:[//
{name:'萨尔图区',id:0}, {name:'萨尔图区',id:'0'},
{name:'高新区',id:1}, {name:'高新区',id:'1'},
{name:'龙凤区',id:2}, {name:'龙凤区',id:'2'},
{name:'让胡同路区',id:3}, {name:'让胡同路区',id:'3'},
{name:'大同区',id:4}, {name:'大同区',id:'4'},
{name:'肇县区',id:5}, {name:'肇县区',id:'5'},
], ],
circumstance:[// circumstance:[//
{name:'停产',value:'停产'}, {name:'停产',value:'停产'},
@ -740,11 +753,15 @@ export default {
btns:{}, btns:{},
ids:[], ids:[],
interest:'',// interest:'',//
selectObj:{
personLiable:'',
personLiableId:''
},
}; };
}, },
computed:{ computed:{
computedCompensatoryBalance(){// computedCompensatoryBalance(){//
/* TODO 未完成状态判断 */ /* 转为后端计算 */
// if(this.status){} // count // if(this.status){} // count
// console.log(this.repaymentForm,'this.repaymentForm') // console.log(this.repaymentForm,'this.repaymentForm')
// if(!this.repaymentForm.currentRepayment)this.repaymentForm.currentRepayment = 0 // if(!this.repaymentForm.currentRepayment)this.repaymentForm.currentRepayment = 0
@ -825,13 +842,16 @@ export default {
} }
} }
}, },
fromOne(){//
return this.$store.state.loan.fromOne
},
// //
reimbursement(){ reimbursement(){
return this.repaymentForm.repaymentCash||0+this.repaymentForm.repaymentAssetsAmount||0+this.repaymentForm.repaymentOtherAmount||0 return this.repaymentForm.repaymentCash||0+this.repaymentForm.repaymentAssetsAmount||0+this.repaymentForm.repaymentOtherAmount||0
} }
}, },
watch: { watch: {
"$store.state.loan.loanStatus":function(val){ "$store.state.loan.loanStatus":async function(val){
if(val!=2){ if(val!=2){
this.comp.compensatoryBalance = 0 this.comp.compensatoryBalance = 0
this.cash = 0 this.cash = 0
@ -846,14 +866,22 @@ export default {
this.$forceUpdate(); this.$forceUpdate();
this.getData() this.getData()
this.loanbackStatus = '' this.loanbackStatus = ''
this.repaymentForm = {
currentRepayment:0,
interest: 0,
otherExpenses:0,
overdueDays: 0
} }
if(val == 2){ }
console.log(this.souce,'判断是否系统流转--0') if(val == 2){//
/* TODO 未完成 */
// if(this.source === 0&&this.status==="oldLoans"){//
// }
console.log(this.RepaymentId,this.id,'RepaymentId,进入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.id = this.$store.state.loan.id || this.$store.state.loan.RepaymentId
this.RepaymentId = this.$store.state.loan.RepaymentId this.RepaymentId = this.$store.state.loan.RepaymentId
this.loanbackStatus = this.$store.state.loan.loanbackStatus this.loanbackStatus = this.$store.state.loan.loanbackStatus
@ -864,12 +892,29 @@ export default {
otherExpenses: '', otherExpenses: '',
overdueDays: 0 overdueDays: 0
} }
console.log(this.loanbackStatus,'什么状态')
// //
if(this.status!=='newLoans'||this.discernEdit) this.getDetail() if(this.status!=='newLoans'||this.discernEdit) this.getDetail()
if(this.loanbackStatus == '查看' || this.loanbackStatus == '编辑'){ if(this.loanbackStatus == '查看' || this.loanbackStatus == '编辑'){
console.log(this.loanbackStatus,'什么状态') await this.getRepaymentDetail()
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){ if(val == 3){
this.hisidId = this.$store.state.loan.hisidId this.hisidId = this.$store.state.loan.hisidId
@ -881,6 +926,7 @@ export default {
}, },
principal:function(val){// principal:function(val){//
this.$forceUpdate();
this.designateEmpTrees() this.designateEmpTrees()
this.clearNodeArr = true this.clearNodeArr = true
this.$nextTick(()=>{ this.$nextTick(()=>{
@ -895,11 +941,25 @@ export default {
this.starEndDate = [] this.starEndDate = []
this.guaranteeForm = {} this.guaranteeForm = {}
this.mainbank = '' this.mainbank = ''
this.elsebank = ''
}
},
organization(val){
if(val){//
this.liquidateList()
}else{
this.organizationArrs = []
} }
} }
}, },
created(){ async created(){
console.log(math.format(math.chain(math.bignumber(0.1)).add(math.bignumber(0.2)).done()),'计算数据') 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') console.log(this.loanbackStatus,'this.loanbackStatus')
this.liquidateList() this.liquidateList()
if(this.bankSelect.length===0){// if(this.bankSelect.length===0){//
@ -931,8 +991,21 @@ export default {
console.log(this.status,'处于什么状态') console.log(this.status,'处于什么状态')
if(this.status!=='newLoans'||this.discernEdit) this.getDetail() if(this.status!=='newLoans'||this.discernEdit) this.getDetail()
if(this.loanbackStatus == '查看' || this.loanbackStatus == '编辑'){ 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){ if(this.loanStatus == 3){
@ -991,6 +1064,7 @@ export default {
// if(this.insMultipleSelection.length != ''){ // if(this.insMultipleSelection.length != ''){
let exportIds = this.insMultipleSelection.map(e => e.id).join() let exportIds = this.insMultipleSelection.map(e => e.id).join()
let url = `${excelInsurance}?ids=${exportIds}` let url = `${excelInsurance}?ids=${exportIds}`
console.log(url,'导出的URL')
window.location.href = url window.location.href = url
// }else{ // }else{
// this.$message.error(' '); // this.$message.error(' ');
@ -1001,13 +1075,14 @@ export default {
edit(row,val){ edit(row,val){
this.$store.commit('disabledAll',false)// this.$store.commit('disabledAll',false)//
if(!row){// row-- if(!row){// row--
console.log('进入新建业务') console.log('进入新建业务',val)
this.loanStatus = 2 this.loanStatus = 2
this.$store.commit("loanbackStatusData", { loanbackStatus: '' });// this.$store.commit("loanbackStatusData", { loanbackStatus: '' });//
this.$store.commit("loanStatusData", { loanStatus: 2 }); this.$store.commit("loanStatusData", { loanStatus: 2 });
this.$store.commit('setNewOrOld','newLoans') this.$store.commit('setNewOrOld','newLoans')
this.$store.commit('entering',false) this.$store.commit('entering',false)
this.$store.commit('wanderEdit',true) this.$store.commit('wanderEdit',true)
if(val) this.$store.commit("source",val.source);//
if(val){// -- if(val){// --
this.$store.commit('setNewOrOld','oldLoansEdit')// this.$store.commit('setNewOrOld','oldLoansEdit')//
// //
@ -1024,32 +1099,37 @@ export default {
this.loanbackStatus = '录入' // 退 this.loanbackStatus = '录入' // 退
this.$store.commit("loanbackStatusData", { loanbackStatus: '录入' }); this.$store.commit("loanbackStatusData", { loanbackStatus: '录入' });
this.$store.commit('fromOne',false)// 退
}else{ }else{
console.log('进入录入界面') console.log('进入录入界面')
// , // ,
this.$store.commit('wanderEdit',true) this.$store.commit('wanderEdit',true)
this.$store.commit('entering',false) // - this.$store.commit('entering',false) // -
this.$store.commit('discernEdit',true)// this.$store.commit('discernEdit',true)//
this.$store.commit('setNewOrOld','oldLoans')// this.$store.commit('setNewOrOld','oldLoans')//
this.loanStatus = 2 this.loanStatus = 2
this.$store.commit("loanStatusData", { loanStatus: 2 });// this.$store.commit("loanStatusData", { loanStatus: 2 });//
this.id = row.id this.id = row.id
this.$store.commit("idData", { id: row.id });// 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.RepaymentId = ''
this.$store.commit("RepaymentIdData", { RepaymentId: '' });// this.$store.commit("RepaymentIdData", { RepaymentId: '' });//
this.loanbackStatus = '录入' this.loanbackStatus = '录入'
this.$store.commit("loanbackStatusData", { loanbackStatus: '录入' });// this.$store.commit("loanbackStatusData", { loanbackStatus: '录入' });//
this.$store.commit('fromOne',true)// 退
} }
}, },
// //
history(row){ history(row){
this.loanStatus = 3 this.loanStatus = 3
this.$store.commit("loanStatusData", { loanStatus: 3 }); this.$store.commit("loanStatusData", { loanStatus: 3 });
this.hisId = row.id this.hisId = row.id
this.$store.commit("hisidIdData", { hisidId: row.id, guaranteeAmount: row.guaranteeAmount }); 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.hispaymentStatus = row.paymentStatus
this.$store.commit("hispaymentStatusData", { hispaymentStatus: row.paymentStatus }); this.$store.commit("hispaymentStatusData", { hispaymentStatus: row.paymentStatus });
this.$store.commit('fromOne',false)// 退
}, },
// //
conclusion(row){ conclusion(row){
@ -1071,7 +1151,7 @@ export default {
async getDetail(){ async getDetail(){
this.guaranteeLoading = true this.guaranteeLoading = true
try { try {
let res = await insuranceDetail({ let res = await insuranceDetail({//
id: this.id id: this.id
}); });
this.guaranteeLoading = false this.guaranteeLoading = false
@ -1102,13 +1182,14 @@ export default {
// //
this.liquidate = { this.liquidate = {
personLiable:reimbursement.personLiable, personLiable:reimbursement.personLiable,
personLiableId:reimbursement.personLiableId,
collectionGroupId:reimbursement.collectionGroupId, collectionGroupId:reimbursement.collectionGroupId,
area:+reimbursement.area, area:reimbursement.area,
operation:reimbursement.operation, operation:reimbursement.operation,
litigation:reimbursement.litigation, litigation:reimbursement.litigation,
mortgage:reimbursement.mortgage, mortgage:reimbursement.mortgage,
} }
this.qszId = reimbursement.id
} catch (error) { } catch (error) {
this.guaranteeLoading = false this.guaranteeLoading = false
} }
@ -1196,6 +1277,7 @@ export default {
if(that.RepaymentId == ''){// if(that.RepaymentId == ''){//
console.log('新增录入') console.log('新增录入')
that.repaymentForm.insuranceId = that.id that.repaymentForm.insuranceId = that.id
that.$store.commit('hisId',that.id)
console.log(that.id,'id') console.log(that.id,'id')
that.repaymentForm.totalRepayment = that.totalRepayment that.repaymentForm.totalRepayment = that.totalRepayment
that.repaymentForm.overdueDays = that.overdueDays that.repaymentForm.overdueDays = that.overdueDays
@ -1237,7 +1319,16 @@ export default {
} }
} }
console.log('正在执行录入') 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(()=>{ Promise.all([form1,form3,form2]).then(()=>{
if(!this.totalSame()){ if(!this.totalSame()){
return this.$confirm('清偿方式的金额之和与本次还款总额不符,可能会导致数据统计错误,是否继续?', '提示', { return this.$confirm('清偿方式的金额之和与本次还款总额不符,可能会导致数据统计错误,是否继续?', '提示', {
type: 'warning' type: 'warning'
@ -1258,9 +1349,8 @@ export default {
}, },
// //
cancel(){ cancel(){
// 退
if(this.status=="newLoans"||this.status=="oldLoansEdit"||this.fromOne){
if(this.status=="newLoans"||this.status=="oldLoansEdit"){
this.loanStatus = 1 this.loanStatus = 1
this.$store.commit("loanStatusData", { loanStatus: 1 }); this.$store.commit("loanStatusData", { loanStatus: 1 });
}else{ }else{
@ -1293,6 +1383,7 @@ export default {
}, },
// //
async repaymentList(){ async repaymentList(){
console.log(this.hisidId,'当前传的id值')
let res = await repaymentList({ let res = await repaymentList({
page: this.hisPage, page: this.hisPage,
size: this.pageNumber, size: this.pageNumber,
@ -1370,12 +1461,14 @@ export default {
}, },
// / // /
goRepaymentDetail(row,type){ goRepaymentDetail(row,type){
console.log(row,type,'点击查看业务,')
this.loanStatus = 2 this.loanStatus = 2
this.$store.commit("loanStatusData", { loanStatus: 2 }); this.$store.commit("loanStatusData", { loanStatus: 2 });//
this.RepaymentId = row.id this.RepaymentId = row.id
this.$store.commit("RepaymentIdData", { RepaymentId: row.id }); this.$store.commit("RepaymentIdData", { RepaymentId: row.id });// ID
this.id = row.insuranceId 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 this.loanbackStatus = type
@ -1393,7 +1486,7 @@ export default {
}, },
// //
async getRepaymentDetail(){ async getRepaymentDetail(){
console.log(this.RepaymentId,'调用详情接口') console.log(this.RepaymentId,'调用详情接口使用的id')
let res = await repaymentDetail({ let res = await repaymentDetail({
id: this.RepaymentId id: this.RepaymentId
}); });
@ -1448,12 +1541,16 @@ export default {
}) })
}, },
principalNode(val){// principalNode(val){//
this.$set(this.liquidate,'personLiable',val[0].name) this.selectObj = {
this.liquidate.personLiableId = val[0].id personLiable:val[0].name,
personLiableId:val[0].id
}
}, },
principalSeleted(){// principalSeleted(){//
this.principal = false this.principal = false
this.$set(this.liquidate,'personLiable',this.selectObj.personLiable)
this.liquidate.personLiableId = this.selectObj.personLiableId
this.modifyReimbursement()
}, },
searchClientChange(val,state){// searchClientChange(val,state){//
companyInfoBySth({name:val}).then(res=>{ companyInfoBySth({name:val}).then(res=>{
@ -1542,7 +1639,6 @@ export default {
}) })
}, },
saveInsurance(){// saveInsurance(){//
/* TODO 需要处理没有还款信息的编辑 */
let has = false let has = false
// //
const form1 = new Promise((resolve,reject)=>{ const form1 = new Promise((resolve,reject)=>{
@ -1575,6 +1671,7 @@ export default {
// //
if(this.discernEdit) obj.insuranceId = this.id if(this.discernEdit) obj.insuranceId = this.id
Object.assign(obj,this.comp,this.liquidate) Object.assign(obj,this.comp,this.liquidate)
this.guaranteeForm.paymentStatus = 1
let param = { let param = {
alInsuranceList:this.guaranteeForm,// alInsuranceList:this.guaranteeForm,//
alReimbursement:obj// alReimbursement:obj//
@ -1588,6 +1685,7 @@ export default {
}) })
}else{// }else{//
// param.source = 1 // param.source = 1
saveInsurance(param).then(res=>{ saveInsurance(param).then(res=>{
// //
if(this.status==='newLoans'){ if(this.status==='newLoans'){
@ -1635,7 +1733,7 @@ export default {
}, },
deleteInsurance(row){// -- deleteInsurance(row){// --
this.$confirm('此操作无法还原,确定要删除该业务?', '提示', { this.$confirm('确认删除?删除后与该业务相关的保后信息将会一并删除且不可恢复', '提示', {
type: 'error' type: 'error'
}).then(() => { }).then(() => {
deleteInsurance(row.id).then(res=>{ deleteInsurance(row.id).then(res=>{
@ -1647,9 +1745,6 @@ export default {
compensationSituation({data:val,insuranceId:this.id}).then(res=>{ compensationSituation({data:val,insuranceId:this.id}).then(res=>{
this.cash = res.data.amount this.cash = res.data.amount
console.log('取得当前的cash',this.cash) console.log('取得当前的cash',this.cash)
/* TODO 利息,其他,本次还款*/
//
// this.interest = res.data.xx
}) })
}, },
@ -1680,8 +1775,99 @@ export default {
}else{ }else{
return true 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{ /deep/ .el-upload-list{
display: none; display: none;
} }
.item{
max-width:300px;
}
.btn-custom-cancel{
display: none;
background: transparent;
color: turquoise;
}
</style> </style>

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

@ -247,7 +247,15 @@
<el-table-column prop="repaymentStatus" label="状态" align="center"></el-table-column> <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="submitterName" label="提交人" align="center"></el-table-column>
<el-table-column prop="createTime" 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"> <el-table-column label="操作" width="200" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$router.currentRoute.meta.btn.includes('催收查看')" type="text" @click="goRepaymentDetail(scope.row)">查看</el-button> <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="repaymentStatus" label="状态" align="center"></el-table-column>
<el-table-column prop="submitterName" 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="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> </el-table>
</div> </div>
</div> </div>
@ -392,8 +408,9 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="mab20 flex-start-around" v-if="logbackStatus == '提交'"> <div class="mab20 flex-start-around" v-if="logbackStatus === '提交'||logbackStatus === '编辑'">
<el-button type="primary" round class="mag" @click="collectionSave('collectionHandle')">提交</el-button> <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> <el-button type="primary" plain round class="mag" @click="collectionCancel">取消</el-button>
</div> </div>
</div> </div>
@ -453,10 +470,24 @@
<el-table-column prop="collectionTime" label="催收日期" align="center"></el-table-column> <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="collectionUserName" label="催收人" align="center"></el-table-column>
<el-table-column prop="collectionMethod" 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"> <el-table-column label="操作" width="200" align="center">
<template slot-scope="scope"> <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="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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -472,7 +503,7 @@
</template> </template>
<script> <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'; import axios from 'axios';
export default { export default {
@ -596,6 +627,12 @@
endTimeOptions: {} endTimeOptions: {}
}; };
}, },
computed:{
records(){
return this.$store.state.loan.records
}
},
watch: { watch: {
"$store.state.loan.logStatus":function(val) { "$store.state.loan.logStatus":function(val) {
this.logStatus = val this.logStatus = val
@ -745,6 +782,7 @@
this.$store.commit("logbackStatusData", { logbackStatus: '提交' }); this.$store.commit("logbackStatusData", { logbackStatus: '提交' });
this.logId = row.id this.logId = row.id
this.$store.commit("logIdData", { logId: row.id }); this.$store.commit("logIdData", { logId: row.id });
this.$store.commit("records", false);
}, },
// //
collectionHis(row){ collectionHis(row){
@ -920,8 +958,13 @@
this.collectionHandle.insuranceId = this.logId this.collectionHandle.insuranceId = this.logId
collection(this.collectionHandle).then(res=>{ collection(this.collectionHandle).then(res=>{
this.$message.success("提交成功!"); this.$message.success("提交成功!");
console.log(this.records,'recodes')
if(this.records){
this.logStatus = 5
}else{
this.logStatus = 1 this.logStatus = 1
this.$store.commit("logStatusData", { logStatus: 1 }); }
this.$store.commit("logStatusData", { logStatus: this.logStatus });
}).catch(err=>{ }).catch(err=>{
}) })
} }
@ -929,8 +972,13 @@
}, },
// //
collectionCancel(){ collectionCancel(){
console.log(this.records,'recodes')
if(this.records){
this.logStatus = 5
}else{
this.logStatus = 1 this.logStatus = 1
this.$store.commit("logStatusData", { logStatus: 1 }); }
this.$store.commit("logStatusData", { logStatus: this.logStatus });
}, },
//***** //*****
async collectionHisList(){ async collectionHisList(){
@ -992,6 +1040,9 @@
this.$store.commit("logbackStatusData", { logbackStatus: '查看' }); this.$store.commit("logbackStatusData", { logbackStatus: '查看' });
this.logbackId = row.id this.logbackId = row.id
this.$store.commit("logbackIdData", { logbackId: row.id }); this.$store.commit("logbackIdData", { logbackId: row.id });
this.$store.commit("records", true);
}, },
// //
async collectionHisListDetail(){ async collectionHisListDetail(){
@ -1023,7 +1074,47 @@
e.repaymentStatus = this.core.stcStatus(e.repaymentStatus) e.repaymentStatus = this.core.stcStatus(e.repaymentStatus)
}) })
this.collectionData = res.data.alRepaymentEntryList 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; outline: none;
width: 20rem; width: 20rem;
} }
/deep/ .el-tooltip__popper{
max-width: 600px;
}
</style> </style>

@ -46,7 +46,7 @@
<el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
<el-input <el-input
placeholder="请输入金额(元)" placeholder="请输入数值"
class="wd20 mglr10" class="wd20 mglr10"
style="min-width: 200px" style="min-width: 200px"
:disabled="!searchStr.proportionSymbol" :disabled="!searchStr.proportionSymbol"
@ -55,7 +55,7 @@
></el-input> ></el-input>
<p>%</p> <p>%</p>
<p class="fz-16 mgr10 font-blue mgl20 nowrap">已清收总额</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-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
<el-input :disabled="!searchStr.allAoumntSymbol" class="wd20 mglr10" placeholder="请输入金额(元)" style="min-width: 200px" v-model="searchStr.allAoumnt" clearable></el-input> <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" v-model="searchStr.queryCondition"
placeholder="工号/清收负责人" placeholder="工号/清收负责人"
clearable clearable
></el-input> ><i slot="suffix" class="el-input__icon el-icon-search" @click="annualStatisticsList"></i></el-input>
</div> </div>
</div> </div>
<!-- <!--
@ -107,8 +107,8 @@
:key="1" :key="1"
> >
<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"></el-table-column>
<el-table-column prop="companyRanks" 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="120px"></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="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="personLiable" label="清收负责人" align="center" width="150px"></el-table-column>
<el-table-column prop="jobNumber" label="工号" align="center"></el-table-column> <el-table-column prop="jobNumber" label="工号" align="center"></el-table-column>
@ -137,6 +137,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div class="backTime static multi-box" v-for="(item, index) in scope.row.collectionTime" :key="index"> <div class="backTime static multi-box" v-for="(item, index) in scope.row.collectionTime" :key="index">
<el-date-picker <el-date-picker
v-if="item.collectionTime"
style="width:180px" style="width:180px"
v-model="item.collectionTime" v-model="item.collectionTime"
type="date" type="date"
@ -144,6 +145,7 @@
:disabled="!scope.row.edit" :disabled="!scope.row.edit"
> >
</el-date-picker> </el-date-picker>
<div v-else>-</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -161,14 +163,19 @@
<el-input :disabled="!scope.row.edit" placeholder="输入年度金额指标" v-model="scope.row.proportion"></el-input> <el-input :disabled="!scope.row.edit" placeholder="输入年度金额指标" v-model="scope.row.proportion"></el-input>
</div> </div>
<div v-if="!scope.row.edit"> <div v-if="!scope.row.edit">
{{scope.row.percent}}% {{scope.row.percent==="未填写年度指标"?"未填写年度指标":scope.row.percent+"%"}}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="remark" label="备注" align="center" width="200px"> <el-table-column prop="remark" label="备注" align="center" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="backTime static multi-box" v-for="(item, index) in scope.row.description" :key="index"> <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-input :disabled="!scope.row.edit" v-model="item.description"></el-input>
</el-tooltip>
<div v-else>
-
</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -206,7 +213,7 @@
<div class="tree"> <div class="tree">
<div class="left-border fz-16 mgt20"><p class="c-black mgl10">参与本年度清收排名的人员</p></div> <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"> <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 <el-tree
:data="tree" :data="tree"
show-checkbox show-checkbox
@ -230,11 +237,14 @@
</div> </div>
</template> </template>
<script> <script>
import { json } from 'mathjs';
import {collectionGroupList ,generateAnnualStatistics,annualList,annualStatisticsList,editAnnualStatistics,personnelSelection ,annualStatisticsDeleted,annualStatisticsListExport,liquidateList } from '../../../utils/api' import {collectionGroupList ,generateAnnualStatistics,annualList,annualStatisticsList,editAnnualStatistics,personnelSelection ,annualStatisticsDeleted,annualStatisticsListExport,liquidateList } from '../../../utils/api'
import core from '../../../utils/core' import core from '../../../utils/core'
export default { export default {
name: '', name: '',
props: {}, props: {},
components:{
},
data() { data() {
return { return {
showRank: false, // showRank: false, //
@ -291,17 +301,21 @@ export default {
changeStaffYear:'', changeStaffYear:'',
changeStaffDisabled:false, changeStaffDisabled:false,
checked:false, checked:false,
}; };
}, },
watch: { watch: {
showRank(val){ showRank(val){
if(val){ if(val){
this.getTree() this.getTree()
}else{
this.tree = []
this.treeIds = []
} }
}, },
liquidate(val){ liquidate(val){
if(val==2){ if(val==2){
console.log('判断为2') // console.log('2')
this.liquidateList() this.liquidateList()
this.annualStatisticsList() this.annualStatisticsList()
}else{ }else{
@ -327,15 +341,15 @@ export default {
},set(){} },set(){}
}, },
percent(){ percent(){
console.log(this.statisticsData,'statisticsData') // console.log(this.statisticsData,'statisticsData')
console.log(this.statisticsData.totalAmount,this.statisticsData.proportion,'计算百分比的值') // console.log(this.statisticsData.totalAmount,this.statisticsData.proportion,'')
return (+this.statisticsData.totalAmount/+this.statisticsData.proportion).toFixed(2) return (+this.statisticsData.totalAmount/+this.statisticsData.proportion).toFixed(2)
} }
}, },
created() { created() {
this.searchStr = this.$store.state.loan.liquidateSearch this.searchStr = this.$store.state.loan.liquidateSearch
this.annualList() this.annualList()
console.log(this.liquidate,this.searchStr,'li') // console.log(this.liquidate,this.searchStr,'li')
if(this.liquidate=='2'){ if(this.liquidate=='2'){
this.annualStatisticsList() this.annualStatisticsList()
} }
@ -347,7 +361,7 @@ export default {
liquidateList(){// liquidateList(){//
liquidateList().then(res=>{ liquidateList().then(res=>{
this.liquidateSelectArr = res.data.groupList this.liquidateSelectArr = res.data.groupList
console.log(this.liquidateSelectArr,'arr') // console.log(this.liquidateSelectArr,'arr')
}) })
}, },
handleScroll:core.debounce(function(){ handleScroll:core.debounce(function(){
@ -395,7 +409,6 @@ export default {
if(!this.searchStr.year) { if(!this.searchStr.year) {
this.searchStr = this.$store.state.loan.liquidateSearch this.searchStr = this.$store.state.loan.liquidateSearch
} }
this.moreText = "点击加载更多数据"
let param = { let param = {
year:this.searchStr.year, year:this.searchStr.year,
groupId:this.searchStr.groupId, groupId:this.searchStr.groupId,
@ -405,10 +418,113 @@ export default {
} }
this.statisticsLoading = true this.statisticsLoading = true
annualStatisticsList(param).then(res=>{ annualStatisticsList(param).then(res=>{
// console.clear()
// console.log('')
this.statisticsLoading = false this.statisticsLoading = false
let arr = new Map() let arr = new Map() // map
let data = res.data.list 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)){ if(arr.has(e.jobNumber)){
let obj = arr.get(e.jobNumber) let obj = arr.get(e.jobNumber)
obj.enterprise.push({enterprise:e.enterprise,id:e.id}) obj.enterprise.push({enterprise:e.enterprise,id:e.id})
@ -421,12 +537,12 @@ export default {
// console.log(e.totalAmount,`${e.personLiable}`) // console.log(e.totalAmount,`${e.personLiable}`)
}else{ }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.totalAmount = (+e.cash||0)+(+e.assets)
e.cash = [{cash:e.cash,id:e.id}] e.cash = [{cash:e.cash||'-',id:e.id}]
e.assets = [{assets:e.assets,id:e.id}] e.assets = [{assets:e.assets||'-',id:e.id}]
e.collectionTime = [{collectionTime:e.collectionTime,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}`) // console.log(e.totalAmount,`${e.personLiable}`)
arr.set(e.jobNumber,e) arr.set(e.jobNumber,e)
} }
@ -434,21 +550,32 @@ export default {
// //
this.originalData = [] this.originalData = []
for(let [key,value] of arr){ for(let [key,value] of arr){
//
if(value.totalAmount&&value.proportion){ if(value.totalAmount&&value.proportion){
value.percent = ((value.totalAmount/value.proportion)*100).toFixed(2) value.percent = ((value.totalAmount/value.proportion)*100).toFixed(2)
}else{ }else{
value.percent = '未填写年度指标' value.percent = '未填写年度指标'
} }
// ,
overArr.forEach(e=>{
if(e.jobNumber==value.jobNumber){
value.groupName = e.groupName.join(",") //
value.TeamRanks = e.TeamRanks.join(",") //
}
})
this.originalData.push(value) this.originalData.push(value)
} }
console.log(this.originalData,'初始处理的数据') // console.log(this.originalData,'')
//
this.radioChange('依据小组排名') // this.radioChange('')
this.radioChange('依据公司排名') this.radioChange('依据公司排名')
//
if(this.radio==='依据小组排名'){ 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) { switch (this.searchStr.proportionSymbol) {
case '': case '':
break; break;
@ -495,7 +622,7 @@ export default {
default: default:
break; break;
} }
// //
switch (this.searchStr.allAoumntSymbol) { switch (this.searchStr.allAoumntSymbol) {
case '': case '':
break; break;
@ -527,13 +654,13 @@ export default {
default: default:
break; break;
} }
/* 分页改为无限滚动,暂时保留 */
// 10, // // 10,
if (this.statisticsData.length>10) { // if (this.statisticsData.length>10) {
this.recordArr = JSON.parse(JSON.stringify(this.statisticsData)) // this.recordArr = JSON.parse(JSON.stringify(this.statisticsData))
this.recordArr.splice(0,10) // this.recordArr.splice(0,10)
this.statisticsData.splice(10,this.statisticsData.length-1)// // this.statisticsData.splice(10,this.statisticsData.length-1)//
} // }
}).catch(err=>{ }).catch(err=>{
this.statisticsLoading = false this.statisticsLoading = false
}) })
@ -548,17 +675,60 @@ export default {
e.disabled = true e.disabled = true
} }
}) })
this.tree = data let allTree = [{
id:'全选group',
name:'全选',
personnel:[...data]
}]
this.tree = allTree
// console.log("")
}).catch(err=>{ }).catch(err=>{
this.treeLoading = false this.treeLoading = false
}) })
}, },
// //
checkBox(data, checked, indeterminate){ checkBox(data, checked, indeterminate){
// console.log(checked,'dianjiindeterminate')
this.treeIds = this.$refs.tree.getCheckedKeys() 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) {// async createList(val) {//
console.log(val,'val') // console.log(val,'val')
this.showRank = true; this.showRank = true;
if(val==='new'){// if(val==='new'){//
this.treeIds = [] this.treeIds = []
@ -574,14 +744,21 @@ export default {
if (this.treeStatus === 'new') { if (this.treeStatus === 'new') {
// //
if(!this.chooisYear)return this.$message.error('请先选择年份!') if(!this.chooisYear)return this.$message.error('请先选择年份!')
let arr = [] // let arr = []
this.treeIds.forEach((e,index)=>{ // this.treeIds.forEach((e,index)=>{
if(typeof(e)=='number'){ // if(e.includes(',')){
arr.push(e) // 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:this.treeIds,year:this.chooisYear,flag:1}).then(res=>{
generateAnnualStatistics({personLiableIds:arr,year:this.chooisYear,flag:1}).then(res=>{
this.showRank = false this.showRank = false
this.$message.success('操作成功!') this.$message.success('操作成功!')
this.annualList() this.annualList()
@ -589,18 +766,26 @@ export default {
}) })
}else{// }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=>{// this.ids.forEach(e=>{//
if(this.treeIds.includes(+e)){ if(this.treeIds.includes(e+"")){
this.treeIds.splice(this.treeIds.indexOf(+e),1) this.treeIds.splice(this.treeIds.indexOf(e+""),1)
} }
}) })
this.treeIds.forEach((e,index)=>{ this.treeIds.forEach((e)=>{
if(typeof(e)=='number'){ if(e=="全选group"){
arr.push(e) 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.showRank = false
this.$message.success('操作成功!') this.$message.success('操作成功!')
this.annualList() this.annualList()
@ -613,7 +798,7 @@ export default {
currentChange(val) { currentChange(val) {
// //
}, },
radioChange(val) {// radioChange(val,groups) {//
function compare(key){ function compare(key){
return function(value1,value2){ return function(value1,value2){
let val1=value1[key]; let val1=value1[key];
@ -622,46 +807,111 @@ export default {
} }
} }
if(val==='依据小组排名'){ if(val==='依据小组排名'){
let groupMap = new Map() let groupMap = new Map()//
this.originalData.forEach(e=>{ let sortGroups = []//
if(groupMap.has(e.groupName)){ // console.log('',groups,'groups')
let obj = groupMap.get(e.groupName) if(!groups){//
obj.totalAmount += e.totalAmount this.annualStatisticsList()
groupMap.set(e.groupName,obj)
}else{
let obj = {groupName:e.groupName,totalAmount:e.totalAmount}
groupMap.set(e.groupName,obj)
} }
}) if(groups){//
let group = [] for (let key in groups) {
for(let [key,value] of groupMap){ let group = JSON.parse(JSON.stringify(groups[key]))//
group.push(value) 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,'排序的组')
} }
group.sort(compare('totalAmount')) let sortGroup = []//
let newGroup = [] for (let [key,value] of groupMap) {
group.forEach(e=>{ sortGroup.push(value)
let arr = []
this.originalData.forEach(el=>{
if(e.groupName===el.groupName){
arr.push(el)
} }
console.log(sortGroup,'取得排序过的数组数据')
sortGroup.sort(compare('sum'))//
//
// push
sortGroup.forEach(e=>{
sortGroups.push(groups[e.id])//
}) })
newGroup.push(arr)
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)
}
//
}) })
newGroup.forEach(e=>{ let handelArr = []
e.sort(compare('totalAmount')) 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 =
}
}) })
let groupDown = [] if(e.totalAmount&&e.proportion){
newGroup.forEach((e)=>{ e.percent = ((e.totalAmount/e.proportion)*100).toFixed(2)
e.forEach((e,index)=>{ }else{
e.TeamRanks = index+1 e.percent = '未填写年度指标'
e.editStr = '编辑' }
e.edit = false
groupDown.push(e)
}) })
//
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==='依据公司排名'){ }else if(val==='依据公司排名'){
// this.annualStatisticsList()
// , // ,
this.originalData.sort(compare('totalAmount')) this.originalData.sort(compare('totalAmount'))
this.originalData.forEach((e,i)=>{ this.originalData.forEach((e,i)=>{
@ -689,7 +939,9 @@ export default {
statisticsSelection() { statisticsSelection() {
// console.log('',this.searchStr.year) // console.log('',this.searchStr.year)
// 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) { edit(row, val) {
// //
@ -700,7 +952,7 @@ export default {
this.$store.commit('liquidate','2') this.$store.commit('liquidate','2')
// //
this.$store.commit('liquidWatch',val) this.$store.commit('liquidWatch',val)
console.log(val,this.liquidWatch,'liquidWatch') // console.log(val,this.liquidWatch,'liquidWatch')
// this.annualStatisticsList() // this.annualStatisticsList()
}, },
yearEdit(row, val){// yearEdit(row, val){//
@ -731,12 +983,23 @@ export default {
}, },
personnelSelection(val){// personnelSelection(val){//
return personnelSelection({year:val}).then(res=>{ return personnelSelection({year:val}).then(res=>{
console.log(res.data.list,'list') this.treeIds = res.data.list
this.treeIds = res.data.list.map(e=>{ // const disabled = function(arr,ids){
return e.split(",").pop() // 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
}
}) })
this.$forceUpdate();
console.log(this.treeIds,'treeids') // console.log('treeIds',this.treeIds)
this.ids = res.data.list this.ids = res.data.list
}) })
}, },
@ -748,29 +1011,34 @@ export default {
}) })
}) })
}, },
allCheck(val){ // allCheck(val){
console.log(this.tree,'tree') // console.log(this.tree,'tree')
if(this.tree.length==0) return // if(this.tree.length==0) return
let that = this // let that = this
function recursion(arr){ // function recursion(arr){
if(arr&&arr.length>0){ // if(arr&&arr.length>0){
arr.forEach(e=>{ // arr.forEach(e=>{
that.treeIds.push(e.id) // that.treeIds.push(e.id)
if(e.personnel&&e.personnel.length>0){ // if(e.personnel&&e.personnel.length>0){
recursion(e.personnel) // 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 = ''
} }
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();
} }
} }
}; };
@ -845,4 +1113,5 @@ export default {
color:#606266; color:#606266;
background: transparent; background: transparent;
} }
</style> </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-option v-for="(item,index) in bankData" :key="item.index" :label="item.value" :value="item.value"></el-option>
</el-select> </el-select>
<p class="fz-16 mgr10 font-blue mgl20 nowrap">代偿金额</p> <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-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
<el-input <el-input
:disabled="!searchStr.amountSymbol" :disabled="!searchStr.amountSymbol"
placeholder="请输入金额(万)" placeholder="请输入金额(元)"
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
class="wd20 mglr10" class="wd20 mglr10"
style="width: 200px" style="width: 200px"
v-model="searchStr.compensationAmount" v-model="searchStr.compensationAmount"
@ -32,13 +33,14 @@
<div class="flex-between mgtb20"> <div class="flex-between mgtb20">
<div class="flex-center"> <div class="flex-center">
<p style="margin-right:15px" class="fz-16 font-blue mgl20 nowrap">代偿余额</p> <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-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select> </el-select>
<el-input <el-input
:disabled="!searchStr.balanceSymbol" :disabled="!searchStr.balanceSymbol"
placeholder="请输入金额()" placeholder="请输入金额()"
class="mglr10" class="mglr10"
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"
style="width:200px" style="width:200px"
v-model="searchStr.compensatoryBalance" v-model="searchStr.compensatoryBalance"
clearable clearable
@ -83,8 +85,8 @@
v-model="searchStr.queryCondition" v-model="searchStr.queryCondition"
placeholder="企业名称/清收负责人/业务编号" placeholder="企业名称/清收负责人/业务编号"
clearable clearable
></el-input> ><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> <!-- <el-button v-preventReClick type="primary" round @click="quryCollectionProgress">搜索</el-button> -->
</div> </div>
</div> </div>
@ -115,7 +117,15 @@
<el-table-column prop="area" label="所在区域" align="center" min-width="100px"></el-table-column> <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="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="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> </el-table>
<div class="pagination"> <div class="pagination">
@ -248,6 +258,18 @@ export default{
getRowKey(row){ getRowKey(row){
return row.id; 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{ /deep/ .el-date-editor .el-range-separator{
min-width: 30px; min-width: 30px;
} }
/deep/ .el-tooltip__popper{
max-width: 600px;
}
</style> </style>

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

@ -31,6 +31,8 @@ const state = {
liquidateSearch:{}, liquidateSearch:{},
liquidWatch:false,// 清收统计是否进入查看界面 liquidWatch:false,// 清收统计是否进入查看界面
source:'',// 判断是否为系统流转,且需要判断是否已编辑 source:'',// 判断是否为系统流转,且需要判断是否已编辑
fromOne:false,// 来自第一页的还款录入
records:false,// 催收记录进入详情
} }
const getters = { const getters = {
@ -38,6 +40,10 @@ const getters = {
} }
const mutations = { const mutations = {
records(s,v){
s.records = v
},
leftSidebarData (state, payload) { leftSidebarData (state, payload) {
state.leftStatus = payload.leftStatus state.leftStatus = payload.leftStatus
}, },
@ -54,6 +60,9 @@ const mutations = {
state.hisidId = payload.hisidId, state.hisidId = payload.hisidId,
state.guaranteeAmount = payload.guaranteeAmount state.guaranteeAmount = payload.guaranteeAmount
}, },
hisId(s,val){
s.hisidId = val
},
hispaymentStatusData (state, payload) { hispaymentStatusData (state, payload) {
state.hispaymentStatus = payload.hispaymentStatus state.hispaymentStatus = payload.hispaymentStatus
}, },
@ -110,7 +119,9 @@ const mutations = {
source(s,val){ source(s,val){
s.source = val s.source = val
}, },
fromOne(s,val){
s.fromOne = val
}
} }
const actions = { 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 collection = p => post('/api-guarantee/al-collection/collection', p);
export const collectionList = p => get('/api-guarantee/al-collection/list', 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 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 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 collectionHisListDetail = p => get('/api-guarantee/al-collection/examine/detail', p);
export const excelInsurance = `${host}/api-guarantee/al-insurance-list/excelExport`; export const excelInsurance = `${host}/api-guarantee/al-insurance-list/excelExport`;
export const excelHis = `${host}/api-guarantee/al-repayment-entry/excelExport`; export const excelHis = `${host}/api-guarantee/al-repayment-entry/excelExport`;

@ -42,11 +42,12 @@ export default {
// 数字转换大写中文 // 数字转换大写中文
fMoney3:function (money) { fMoney3:function (money) {
if(!money) return ''
//汉字的数字 //汉字的数字
let cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); let cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
let cnIntRadice = new Array('', '拾', '佰', '仟'); //基本单位 let cnIntRadice = new Array('', '拾', '佰', '仟'); //基本单位
let cnIntUnits = new Array('', '万', '亿', '兆'); //对应整数部分扩展单位 let cnIntUnits = new Array('', '万', '亿', '兆'); //对应整数部分扩展单位
let cnDecUnits = new Array('仟', '佰', '拾', ''); //对应小数部分单位 let cnDecUnits = new Array('仟', '佰', '拾', '元', '角' , '分'); //对应小数部分单位
let cnInteger = '元整'; //整数金额时后面跟的字符 let cnInteger = '元整'; //整数金额时后面跟的字符
let cnIntLast = '万'; //整数无小数点的单位 let cnIntLast = '万'; //整数无小数点的单位
let int; //金额整数部分 let int; //金额整数部分
@ -64,7 +65,8 @@ export default {
} else { } else {
parts = money.split('.'); //整数小数分离 parts = money.split('.'); //整数小数分离
int = parts[0]; 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) { if (parseInt(int, 10) > 0) {
@ -110,6 +112,81 @@ export default {
// } // }
return chineseStr; 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) { orderreleaseType:function (sts) {
const status = { const status = {

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

Loading…
Cancel
Save