基本完成新需求

master
e 3 years ago
parent 3258ccaf6d
commit e91c7f28f0
  1. 1
      README.md
  2. 1
      src/App.vue
  3. 2
      src/components/common/BindPhone.vue
  4. 6
      src/components/common/Sidebar.vue
  5. 5
      src/components/common/Tags.vue
  6. 110
      src/components/common/assetDesign.vue
  7. 2
      src/components/common/back.vue
  8. 28
      src/components/common/background-list.vue
  9. 8
      src/components/common/left-sidebar.vue
  10. 21
      src/components/common/noticeDesign.vue
  11. 6
      src/components/common/system-management.vue
  12. 2
      src/components/common/systemLog.vue
  13. 39
      src/components/common/systemTree.vue
  14. 5
      src/components/common/top_sidebar.vue
  15. 19
      src/components/common/tree.vue
  16. 10
      src/components/page/HomePage.vue
  17. 12
      src/components/page/Login.vue
  18. 6
      src/components/page/SystemManagement.vue
  19. 81
      src/components/page/afterLoan/afterInsurance.vue
  20. 44
      src/components/page/afterLoan/afterLoan.vue
  21. 2
      src/components/page/afterLoan/collection.vue
  22. 548
      src/components/page/afterLoan/complete.vue
  23. 164
      src/components/page/afterLoan/progress.vue
  24. 44
      src/router/index.js
  25. 4
      src/store/modules/loan.js
  26. 408
      src/utils/api.js
  27. 139
      src/utils/core.js
  28. 24
      src/utils/http.js

@ -1,2 +1,3 @@
# dq_webcode # dq_webcode
大庆智慧金融前端代码PC端---2021 大庆智慧金融前端代码PC端---2021

@ -15,6 +15,7 @@ export default {
//vuexsessionStorage //vuexsessionStorage
window.addEventListener('beforeunload', () => { window.addEventListener('beforeunload', () => {
sessionStorage.removeItem('success')
sessionStorage.setItem('store', JSON.stringify(this.$store.state)); sessionStorage.setItem('store', JSON.stringify(this.$store.state));
}); });

@ -1,6 +1,5 @@
<template> <template>
<div> <div>
<!-- 绑定手机号card -->
<div class="Login_view bindphone_view"> <div class="Login_view bindphone_view">
<div class="flex-between login_title"> <div class="flex-between login_title">
<span>绑定手机号码</span> <span>绑定手机号码</span>
@ -55,7 +54,6 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
//Steps
@mixin Steps_node { @mixin Steps_node {
width: 16px; width: 16px;
height: 16px; height: 16px;

@ -160,6 +160,7 @@ export default {
handleCommand(command) { handleCommand(command) {
if(command == 'loginout'){ if(command == 'loginout'){
// sessionStorage.removeItem('ms_username') // sessionStorage.removeItem('ms_username')
console.log('触发用户名下拉菜单')
this.$router.push('/login'); this.$router.push('/login');
this.$store.getters.clear this.$store.getters.clear
resetRouter()// resetRouter()//
@ -169,6 +170,7 @@ export default {
sessionStorage.clear() sessionStorage.clear()
localStorage.clear() localStorage.clear()
// 退token // 退token
sessionStorage.removeItem('success')
} }
@ -180,6 +182,7 @@ export default {
let homeMenu = this.$store.state.homeMenu, let homeMenu = this.$store.state.homeMenu,
len = homeMenu.length, len = homeMenu.length,
items = [] items = []
console.log(homeMenu,'homeMenu')
for(let i=0;i<len;i++){ for(let i=0;i<len;i++){
let obj ={},index let obj ={},index
switch (homeMenu[i]) { switch (homeMenu[i]) {
@ -201,6 +204,7 @@ export default {
items.splice(0,0,{title:'首页',index:'homePage'}) items.splice(0,0,{title:'首页',index:'homePage'})
items.splice(1,0,{title:'工作台',index:'workbench'}) items.splice(1,0,{title:'工作台',index:'workbench'})
} }
console.log(items,'items')
return items return items
}, },
filterHandler(value, row, column) { filterHandler(value, row, column) {
@ -225,8 +229,6 @@ export default {
jumpTo(data){// jumpTo(data){//
// sessionStorage.setItem('message-data',JSON.stringify(data)) // sessionStorage.setItem('message-data',JSON.stringify(data))
this.$store.commit('messageData',{messageData:data}) this.$store.commit('messageData',{messageData:data})
//
//
if(this.$route.path!=="/workbench-guarantee") this.$router.push('/workbench-guarantee') if(this.$route.path!=="/workbench-guarantee") this.$router.push('/workbench-guarantee')
this.pop = false this.pop = false
} }

@ -34,7 +34,6 @@
isActive(path) { isActive(path) {
return path === this.$route.fullPath; return path === this.$route.fullPath;
}, },
//
closeTags(index) { closeTags(index) {
const delItem = this.tagsList.splice(index, 1)[0]; const delItem = this.tagsList.splice(index, 1)[0];
const item = this.tagsList[index] ? this.tagsList[index] : this.tagsList[index - 1]; const item = this.tagsList[index] ? this.tagsList[index] : this.tagsList[index - 1];
@ -44,19 +43,16 @@
this.$router.push('/'); this.$router.push('/');
} }
}, },
//
closeAll(){ closeAll(){
this.tagsList = []; this.tagsList = [];
this.$router.push('/'); this.$router.push('/');
}, },
//
closeOther(){ closeOther(){
const curItem = this.tagsList.filter(item => { const curItem = this.tagsList.filter(item => {
return item.path === this.$route.fullPath; return item.path === this.$route.fullPath;
}) })
this.tagsList = curItem; this.tagsList = curItem;
}, },
//
setTags(route){ setTags(route){
const isExist = this.tagsList.some(item => { const isExist = this.tagsList.some(item => {
return item.path === route.fullPath; return item.path === route.fullPath;
@ -89,7 +85,6 @@
}, },
created(){ created(){
this.setTags(this.$route); this.setTags(this.$route);
//
bus.$on('close_current_tags', () => { bus.$on('close_current_tags', () => {
for (let i = 0, len = this.tagsList.length; i < len; i++) { for (let i = 0, len = this.tagsList.length; i < len; i++) {
const item = this.tagsList[i]; const item = this.tagsList[i];

@ -3,7 +3,6 @@
<div class="border-b flex-between ht50 self"> <div class="border-b flex-between ht50 self">
<div></div> <div></div>
<p class="title">资产部调查</p> <p class="title">资产部调查</p>
<!-- 这是一个后退按钮组件 -->
<back @click.native="backTo()"></back> <back @click.native="backTo()"></back>
</div> </div>
<div class="mgt20 top-btn"> <div class="mgt20 top-btn">
@ -38,7 +37,6 @@
<el-input disabled :placeholder="fromData[5]&&fromData[5].prompt?fromData[5].prompt:'系统读取'" clearable></el-input> <el-input disabled :placeholder="fromData[5]&&fromData[5].prompt?fromData[5].prompt:'系统读取'" clearable></el-input>
</div> </div>
</div> </div>
<!-- 第二列 -->
<div class="flex1 mgl40"> <div class="flex1 mgl40">
<div class="df-ac mgt20"> <div class="df-ac mgt20">
<el-button @click="changeName(fromData[2])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[2]&&!fromData[2].ifOperation?false:true">{{fromData[2]&&fromData[2].name?fromData[2].name:'客户名称'}}</el-button> <el-button @click="changeName(fromData[2])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[2]&&!fromData[2].ifOperation?false:true">{{fromData[2]&&fromData[2].name?fromData[2].name:'客户名称'}}</el-button>
@ -54,7 +52,6 @@
</div> </div>
</div> </div>
</div> </div>
<!-- <el-form label-width="150px" :model="assetFromData" > -->
<div class="df bgw "> <div class="df bgw ">
<div class="flex1 "> <div class="flex1 ">
<div class="df-ac mgt20"> <div class="df-ac mgt20">
@ -85,7 +82,6 @@
<el-input disabled :placeholder="fromData[15]&&fromData[15].prompt?fromData[15].prompt:'系统读取'" clearable></el-input> <el-input disabled :placeholder="fromData[15]&&fromData[15].prompt?fromData[15].prompt:'系统读取'" clearable></el-input>
</div> </div>
</div> </div>
<!-- 第二列 -->
<div class="flex1 mgl40"> <div class="flex1 mgl40">
<div class="df-ac mgtb20"> <div class="df-ac mgtb20">
<el-button @click="changeName(fromData[9])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[9]&&!fromData[9].ifOperation?false:true">{{fromData[9]&&fromData[9].name?fromData[9].name:'资产评估报告编号'}}</el-button> <el-button @click="changeName(fromData[9])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[9]&&!fromData[9].ifOperation?false:true">{{fromData[9]&&fromData[9].name?fromData[9].name:'资产评估报告编号'}}</el-button>
@ -94,14 +90,6 @@
<div class="df-ac mgtb20"> <div class="df-ac mgtb20">
<el-button @click="changeName(fromData[11])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[11]&&fromData[11].ifOperation==0?false:true">{{fromData[11]&&fromData[11].name?fromData[11].name:'资产评估报告编号'}}</el-button> <el-button @click="changeName(fromData[11])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[11]&&fromData[11].ifOperation==0?false:true">{{fromData[11]&&fromData[11].name?fromData[11].name:'资产评估报告编号'}}</el-button>
<el-input disabled :placeholder="fromData[11]&&fromData[11].prompt?fromData[11].prompt:'系统读取'" clearable></el-input> <el-input disabled :placeholder="fromData[11]&&fromData[11].prompt?fromData[11].prompt:'系统读取'" clearable></el-input>
<!-- <el-date-picker
disabled
class="wd100"
v-model="assetFromData.assetsTime"
type="date"
:placeholder="fromData[11]&&fromData[11].prompt?fromData[11].prompt:''">
</el-date-picker> -->
</div> </div>
<div class="df-ac mgtb20"> <div class="df-ac mgtb20">
<el-button @click="changeName(fromData[12])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[12]&&fromData[12].ifOperation==0?false:true">{{fromData[12]&&fromData[12].name?fromData[12].name:'资产评估报告编号'}}</el-button> <el-button @click="changeName(fromData[12])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[12]&&fromData[12].ifOperation==0?false:true">{{fromData[12]&&fromData[12].name?fromData[12].name:'资产评估报告编号'}}</el-button>
@ -111,19 +99,10 @@
<el-button @click="changeName(fromData[13])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[13]&&fromData[13].ifOperation==0?false:true">{{fromData[13]&&fromData[13].name?fromData[13].name:'资产评估报告编号'}}</el-button> <el-button @click="changeName(fromData[13])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[13]&&fromData[13].ifOperation==0?false:true">{{fromData[13]&&fromData[13].name?fromData[13].name:'资产评估报告编号'}}</el-button>
<el-input disabled :placeholder="fromData[13]&&fromData[13].prompt?fromData[13].prompt:'系统读取'" clearable></el-input> <el-input disabled :placeholder="fromData[13]&&fromData[13].prompt?fromData[13].prompt:'系统读取'" clearable></el-input>
</div> </div>
<!-- <el-form-item label="审计日期" prop="auditTime" class="date">
<el-date-picker
class="wd100"
v-model="assetFromData.auditTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item> -->
</div> </div>
</div> </div>
<div class="df"> <div class="df">
<div class="flex1 mgt0"> <div class="flex1 mgt0">
<!-- <el-form-item label="反担保措施" class="guarantee mgr20" prop="enGuaranteeMeasures"> -->
<div class="df-ac"> <div class="df-ac">
<el-button @click="changeName(fromData[7])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[7]&&fromData[7].ifOperation==0?false:true">{{fromData[7]&&fromData[7].name?fromData[7].name:'资产评估报告编号'}}</el-button> <el-button @click="changeName(fromData[7])" class=" mglr20" style="width:120px" type="text" :disabled="fromData[7]&&fromData[7].ifOperation==0?false:true">{{fromData[7]&&fromData[7].name?fromData[7].name:'资产评估报告编号'}}</el-button>
<el-checkbox-group v-model="arr" disabled> <el-checkbox-group v-model="arr" disabled>
@ -134,7 +113,6 @@
<el-checkbox label="其他" ></el-checkbox> <el-checkbox label="其他" ></el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>
<!-- </el-form-item> -->
</div> </div>
<div class="flex1 mgt0"> <div class="flex1 mgt0">
<el-input <el-input
@ -147,7 +125,6 @@
</el-input> </el-input>
</div> </div>
</div> </div>
<!-- </el-form> -->
</div> </div>
</div> </div>
</div> </div>
@ -180,16 +157,11 @@
<el-form-item v-if="hintMessage" label="修改提示信息" prop="address"> <el-form-item v-if="hintMessage" label="修改提示信息" prop="address">
<el-input class="ht40 wd80" v-model="changeFromMessage.prompt" placeholder="请输入" clearable></el-input> <el-input class="ht40 wd80" v-model="changeFromMessage.prompt" placeholder="请输入" clearable></el-input>
</el-form-item> </el-form-item>
<!-- ||hidden -->
<el-form-item v-if="need" label="修改功能" class="guarantee mgtb20" > <el-form-item v-if="need" label="修改功能" class="guarantee mgtb20" >
<el-select v-if="need" v-model="changeFromMessage.ifRequired" class="wd80" :placeholder="'是否必填'" > <el-select v-if="need" v-model="changeFromMessage.ifRequired" class="wd80" :placeholder="'是否必填'" >
<el-option label="必填" :value="0"></el-option> <el-option label="必填" :value="0"></el-option>
<el-option label="非必填" :value="1"></el-option> <el-option label="非必填" :value="1"></el-option>
</el-select> </el-select>
<!-- <el-select v-if="hidden" v-model="changeFromMessage.ifConceal" class="wd80" :placeholder="'是否隐藏'" >
<el-option label="隐藏" :value="0"></el-option>
<el-option label="不隐藏" :value="1"></el-option>
</el-select> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -230,7 +202,6 @@
</template> </template>
<script> <script>
import {designFrom,designateEmpTrees,queryCopySendUser,addCopySendUser,getEmployeesByRoleId,updateUserRole, updateFrom} from '../../utils/api' import {designFrom,designateEmpTrees,queryCopySendUser,addCopySendUser,getEmployeesByRoleId,updateUserRole, updateFrom} from '../../utils/api'
export default { export default {
props: {}, props: {},
data() { data() {
@ -297,31 +268,30 @@ export default {
assetFromData:{remark:[]}, assetFromData:{remark:[]},
arr:[], arr:[],
assetAuditFrom:{}, assetAuditFrom:{},
//
showPop:false,// showPop:false,
changedName:'',// changedName:'',
originalName:'', originalName:'',
fromData:[],// fromData:[],
treesData:[], treesData:[],
clearNodeArr:false, clearNodeArr:false,
checkedData:[], checkedData:[],
survey:false, survey:false,
roleID:'',// roleID:'',
checkedIDS:[],//ids checkedIDS:[],
title:'',// title:'',
hidden:false,// hidden:false,
need:false,// need:false,
formerName:'',// formerName:'',
hintMessage:true,// hintMessage:true,
changeFromMessage:{// changeFromMessage:{
id: '', id: '',
ifConceal: '',// 012 ifConceal: '',
ifRequired: '',// 01 ifRequired: '',
name: '',// name: '',
prompt: ''// prompt: ''
} }
}; };
@ -354,38 +324,38 @@ export default {
handleSelect(key, keyPath) { handleSelect(key, keyPath) {
this.change = key this.change = key
}, },
changeName(data){// changeName(data){
this.showPop = true this.showPop = true
//
if(data.ifConceal===1){ if(data.ifConceal===1){
this.$set(this.changeFromMessage,'ifConceal',1) this.$set(this.changeFromMessage,'ifConceal',1)
this.hidden = false this.hidden = false
}else{ }else{
this.hidden = true this.hidden = true
} }
//
if(data.formerName==='上传营业执照'||data.formerName==='上传法定代表人夫妻及企业实际经营者身份证附件'||data.formerName==='上传法定代表人夫妻户口本、结婚证(离婚证)'||data.formerName==='上传法定代表人身份证证明'||data.formerName==='上传公司章程'||data.formerName==='上传由会计师事务所审计的上一年度及本年度审计报告'||data.formerName==='上传企业信用报告'||data.formerName==='上传企业法人夫妇信用报告、实际经营者信用报告'||data.formerName==='上传征信业务授权书、承诺书'||data.formerName==='上传增值税纳税报表首表/完税证明'||data.formerName==='上传股东会会议纪要'||data.formerName==='上传反担保资料和评估报告'){// if(data.formerName==='上传营业执照'||data.formerName==='上传法定代表人夫妻及企业实际经营者身份证附件'||data.formerName==='上传法定代表人夫妻户口本、结婚证(离婚证)'||data.formerName==='上传法定代表人身份证证明'||data.formerName==='上传公司章程'||data.formerName==='上传由会计师事务所审计的上一年度及本年度审计报告'||data.formerName==='上传企业信用报告'||data.formerName==='上传企业法人夫妇信用报告、实际经营者信用报告'||data.formerName==='上传征信业务授权书、承诺书'||data.formerName==='上传增值税纳税报表首表/完税证明'||data.formerName==='上传股东会会议纪要'||data.formerName==='上传反担保资料和评估报告'){
this.hintMessage = false // this.hintMessage = false
this.need = true // this.need = true
}else{ }else{
this.need = false // this.need = false
this.hintMessage = true // this.hintMessage = true
} }
if(data.formerName==="评估价值(万元)") {this.hintMessage = false} else this.hintMessage = true if(data.formerName==="评估价值(万元)") {this.hintMessage = false} else this.hintMessage = true
this.formerName = data.formerName// --title this.formerName = data.formerName
this.originalName = data.name // this.originalName = data.name
this.$set(this.changeFromMessage,"prompt",data.prompt)// this.$set(this.changeFromMessage,"prompt",data.prompt)
this.$set(this.changeFromMessage,'name',data.name) this.$set(this.changeFromMessage,'name',data.name)
this.$set(this.changeFromMessage,'id',data.id) this.$set(this.changeFromMessage,'id',data.id)
this.$set(this.changeFromMessage,'ifRequired',data.ifRequired) // this.$set(this.changeFromMessage,'ifRequired',data.ifRequired)
}, },
clickNode(node) {// clickNode(node) {
this.designateEmpTrees() this.designateEmpTrees()
this.survey = true this.survey = true
this.roleID = '' this.roleID = ''
this.title = node.title this.title = node.title
// if(node.title===''&&node.content==="")this.roleID = 62
switch (node.content) { switch (node.content) {
case "资产部专员": case "资产部专员":
this.roleID = 63 this.roleID = 63
@ -402,20 +372,20 @@ export default {
} }
if(this.roleID) this.getEmployeesByRoleId(this.roleID) if(this.roleID) this.getEmployeesByRoleId(this.roleID)
}, },
compare(key){ // compare(key){
return function(value1,value2){ return function(value1,value2){
let val1=value1[key]; let val1=value1[key];
let val2=value2[key]; let val2=value2[key];
return val1-val2; return val1-val2;
} }
}, },
designFrom(){// designFrom(){
designFrom({processId:3}).then(res=>{ designFrom({processId:3}).then(res=>{
this.fromData = res.data this.fromData = res.data
this.fromData.sort(this.compare('id')) this.fromData.sort(this.compare('id'))
}) })
}, },
updateFrom(){// updateFrom(){
if(!this.changeFromMessage.name) return this.$message.error("表单名称不可为空!") if(!this.changeFromMessage.name) return this.$message.error("表单名称不可为空!")
updateFrom(this.changeFromMessage).then(res=>{ updateFrom(this.changeFromMessage).then(res=>{
if(res.code===10000){ if(res.code===10000){
@ -425,22 +395,22 @@ export default {
} }
}) })
}, },
assetDesignateCnode(val){// assetDesignateCnode(val){
this.checkedIDS = [] this.checkedIDS = []
this.checkedIDS = val.map(e=>{ this.checkedIDS = val.map(e=>{
return e.id return e.id
}) })
}, },
changeChecked(val){// changeChecked(val){
this.checkedData = val this.checkedData = val
}, },
designateEmpTrees(){// designateEmpTrees(){
designateEmpTrees().then(res=>{ designateEmpTrees().then(res=>{
this.treesData = res.data this.treesData = res.data
// this.processVisualList(this.iconData.id)
}) })
}, },
updateUserRole(){// updateUserRole(){
let old = [] let old = []
if(this.checkedData.length!==0){ if(this.checkedData.length!==0){
old = this.checkedData.map(e=>{ old = this.checkedData.map(e=>{
@ -458,7 +428,7 @@ export default {
} }
}) })
}, },
getEmployeesByRoleId(id){// --id getEmployeesByRoleId(id){
getEmployeesByRoleId({roleId:id}).then(res=>{ getEmployeesByRoleId({roleId:id}).then(res=>{
if(!res.data) return if(!res.data) return
let data = res.data, let data = res.data,
@ -472,7 +442,7 @@ export default {
} }
}) })
}, },
addCopySendUser(){// addCopySendUser(){
let old = [] let old = []
if(this.checkedData.length!==0){ if(this.checkedData.length!==0){
old = this.checkedData.map(e=>{ old = this.checkedData.map(e=>{
@ -489,7 +459,7 @@ export default {
} }
}) })
}, },
queryCopySendUser(){// queryCopySendUser(){
queryCopySendUser({processId:3}).then(res=>{ queryCopySendUser({processId:3}).then(res=>{
if(!res.data.userList) return if(!res.data.userList) return
let data = res.data.userList, let data = res.data.userList,

@ -1,5 +1,3 @@
//退
<template> <template>
<div class="flex-center cursor"> <div class="flex-center cursor">
<svg class="icon text-color" aria-hidden="true"> <svg class="icon text-color" aria-hidden="true">

@ -1,17 +1,11 @@
//
<template> <template>
<div class="pdlr20 wrap self"> <div class="pdlr20 wrap self">
<!-- 传入数据 -->
<el-table :row-key="rowkey" ref="multipleTable" :data="tableData" stripe tooltip-effect="dark" style="width: 100%" @selection-change="getCheck" header-align="center"> <el-table :row-key="rowkey" ref="multipleTable" :data="tableData" stripe tooltip-effect="dark" style="width: 100%" @selection-change="getCheck" header-align="center">
<!-- 不要勾选框,则传入一个check -->
<el-table-column v-if="check" type="selection" width="40" class="flex-center"></el-table-column> <el-table-column v-if="check" type="selection" width="40" class="flex-center"></el-table-column>
<el-table-column label="序号" width="45" type="index"></el-table-column> <el-table-column label="序号" width="45" type="index"></el-table-column>
<!-- 具槽带出作用域自定义化内容 -->
<slot name="tableData"> </slot> <slot name="tableData"> </slot>
</el-table> </el-table>
<div class="sorter self" v-if="show()"> <div class="sorter self" v-if="show()">
<!-- 不想要分页传一个disabled -->
<!-- 渲染根据传的数据来total当前页 -->
<p v-if="tableData.length!==0">{{ page }}/{{ totalPage }}</p> <p v-if="tableData.length!==0">{{ page }}/{{ totalPage }}</p>
<el-pagination <el-pagination
:hide-on-single-page="tableData.length===0" :hide-on-single-page="tableData.length===0"
@ -33,10 +27,9 @@ export default {
tableData: Array, tableData: Array,
disabled: Boolean, disabled: Boolean,
totalPage: { type: Number, default: 1 }, totalPage: { type: Number, default: 1 },
check: { type: Boolean, default: true }, //false check: { type: Boolean, default: true },
nowPage: { type: Number, default: 1 }, // nowPage: { type: Number, default: 1 },
totalCount: { type: Number, default: 10 },// totalCount: { type: Number, default: 10 },
// size:Number,
}, },
data() { data() {
return { return {
@ -46,16 +39,13 @@ export default {
}; };
}, },
methods: { methods: {
//
getCheck(val) { getCheck(val) {
this.$emit('getCheckbox', val); this.$emit('getCheckbox', val);
}, },
//
handleCurrentChange(val) { handleCurrentChange(val) {
this.$emit('getPaging', val); this.$emit('getPaging', val);
this.page = +val; this.page = +val;
}, },
//
show() { show() {
if (this.disabled) { if (this.disabled) {
return false; return false;
@ -81,9 +71,6 @@ export default {
<style lang='scss' scoped> <style lang='scss' scoped>
@import url('../../assets/css/common.scss'); @import url('../../assets/css/common.scss');
.sorter { .sorter {
// position: absolute;
// bottom: 5%;
// right: 3%;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin-top: 50px; margin-top: 50px;
@ -91,8 +78,6 @@ export default {
p { p {
color: #cccccc; color: #cccccc;
position: absolute; position: absolute;
// right: 25px;
// top: -29px;
left: 50%; left: 50%;
top: 28%; top: 28%;
transform: translate(-50%,-50%); transform: translate(-50%,-50%);
@ -100,7 +85,6 @@ export default {
} }
} }
.wrap { .wrap {
// min-height: 664px;
min-height: 100%; min-height: 100%;
} }
/deep/.el-table .cell { /deep/.el-table .cell {
@ -146,8 +130,6 @@ export default {
transition: none; transition: none;
} }
//
/deep/ .el-checkbox__input.is-checked .el-checkbox__inner { /deep/ .el-checkbox__input.is-checked .el-checkbox__inner {
background-color: transparent; background-color: transparent;
transition: none; transition: none;
@ -171,9 +153,6 @@ export default {
text-align: center; text-align: center;
text-overflow: clip; text-overflow: clip;
} }
//
/deep/ .el-pager li { /deep/ .el-pager li {
border-radius: 50% !important; border-radius: 50% !important;
height: 30px; height: 30px;
@ -197,7 +176,6 @@ export default {
} }
/deep/ .el-input__inner { /deep/ .el-input__inner {
border-radius: 20px; border-radius: 20px;
// background: #fafafa;
} }
/deep/ .el-pagination .btn-next .el-icon { /deep/ .el-pagination .btn-next .el-icon {
color: #00b9ff; color: #00b9ff;

@ -39,14 +39,6 @@ export default {
return [] return []
} }
}, },
/*
menus:{
head:['name1','name2'],
body:{
name1:[{name:xxx,index:1},...]
}
}
*/
menus:{ menus:{
type:Object, type:Object,
default:function(){ default:function(){

@ -1,10 +1,8 @@
//
<template> <template>
<div class="container_bg"> <div class="container_bg">
<div class="border-b flex-between ht50 self"> <div class="border-b flex-between ht50 self">
<div></div> <div></div>
<p class="title">放款通知</p> <p class="title">放款通知</p>
<!-- 这是一个后退按钮组件 -->
<back @click.native="backTo()"></back> <back @click.native="backTo()"></back>
</div> </div>
<div class="mgt20 top-btn"> <div class="mgt20 top-btn">
@ -12,9 +10,6 @@
<el-menu-item index="2">流程设计</el-menu-item> <el-menu-item index="2">流程设计</el-menu-item>
</el-menu> </el-menu>
</div> </div>
<!-- 表单设计逻辑获取接口渲染每一个字段点击事件触发弹框修改对应的字段保存刷新 -->
<!-- 字段需要根据接口渲染那么只能使用对象定义好对应的字段 -->
<!-- 需要修改的地方还有是否禁用是否进行验证 -->
<div class="df df-jc"> <div class="df df-jc">
<div class="chart-warp"> <div class="chart-warp">
<FactoryDrawFlow <FactoryDrawFlow
@ -24,7 +19,6 @@
></FactoryDrawFlow> ></FactoryDrawFlow>
</div> </div>
</div> </div>
<!-- 表单设计弹框 -->
<el-dialog :visible.sync="showPop" style="margin-top:-7vh"> <el-dialog :visible.sync="showPop" style="margin-top:-7vh">
<div class=" tx-center"> <div class=" tx-center">
<div class="pop-top container_bg fj-center border-b"> <div class="pop-top container_bg fj-center border-b">
@ -64,7 +58,6 @@
<Cancel_btn @click.native="showPop=false"></Cancel_btn> <Cancel_btn @click.native="showPop=false"></Cancel_btn>
</div> </div>
</el-dialog> </el-dialog>
<!-- 修改业务申请人员弹框 -->
<el-dialog :visible.sync="survey" width="70%" style="margin-top: -7vh"> <el-dialog :visible.sync="survey" width="70%" style="margin-top: -7vh">
<div class="pop-top container_bg fj-center border-b"> <div class="pop-top container_bg fj-center border-b">
<strong class="mgb20 fz-18">设置{{title}}</strong> <strong class="mgb20 fz-18">设置{{title}}</strong>
@ -90,11 +83,6 @@
<cancel_btn @click.native="survey=false"></Cancel_btn> <cancel_btn @click.native="survey=false"></Cancel_btn>
</div> </div>
</el-dialog> </el-dialog>
<!-- <el-dialog :visible.sync="showPreviewImg" style="margin-top:-7vh">
<div class=" tx-center">
<img :src="previewImg" class="el-image-viewer__img" style="transform: scale(1) rotate(0deg);margin-top: -1px; max-height: 100%; max-width: 100%;">
</div>
</el-dialog> -->
</div> </div>
</template> </template>
<script> <script>
@ -129,9 +117,6 @@ export default {
showPop:false,// showPop:false,//
changedName:'',// changedName:'',//
originalName:'', originalName:'',
// applyer:'',//
// manneger:'',//
// copy:'',//
FlowConfig: [// FlowConfig: [//
{ {
content: "法规部经理", content: "法规部经理",
@ -178,14 +163,8 @@ export default {
}; };
}, },
created(){ created(){
// this.designFrom()
// this.getEmployeesByRoleId(57)//
// a.toString()
}, },
mounted(){ mounted(){
// this.flowImg()//
}, },
watch:{ watch:{
survey:function(now,before){ survey:function(now,before){

@ -30,23 +30,17 @@ export default {
}, },
data(){ data(){
return{ return{
//
defaultProps: { defaultProps: {
children: 'children', children: 'children',
label: 'permissionName' label: 'permissionName'
}, },
nodeArr:[]//
} }
}, },
methods:{ methods:{
//
checkBox(data, checked, indeterminate){ checkBox(data, checked, indeterminate){
// this.$emit('getNodeArr',data.permissionId,checked)
}, },
//
getNode(data) { getNode(data) {
//nodedata
}, },
} }

@ -82,7 +82,6 @@ export default {
this.getData(); this.getData();
}, },
methods: { methods: {
//
async getData() { async getData() {
let res = await systemLog({ let res = await systemLog({
page: this.pageNo, page: this.pageNo,
@ -94,7 +93,6 @@ export default {
this.systemLogData = res.data.list; this.systemLogData = res.data.list;
this.totals = res.data.totalCount; this.totals = res.data.totalCount;
}, },
//
selectTime(val) { selectTime(val) {
if (val) { if (val) {
this.searchForm.startTime = val[0]; this.searchForm.startTime = val[0];

@ -15,7 +15,7 @@ export default {
}, },
data() { data() {
return { return {
val:false,// val:false,
}; };
}, },
created() { created() {
@ -43,17 +43,14 @@ export default {
}, },
[ [
h('span', [ h('span', [
//
h('Icon', { h('Icon', {
style: { style: {
marginRight: '0px' marginRight: '0px'
} }
}), }),
//
h('span', data.name) h('span', data.name)
]), ]),
h('span', { h('span', {
//
style: { style: {
display: 'inline-block', display: 'inline-block',
float: 'right', float: 'right',
@ -64,34 +61,20 @@ export default {
); );
}, },
checkData(arr,val){ checkData(arr,val){
//
//
let checkarr = this.$refs.tree.getCheckedAndIndeterminateNodes() let checkarr = this.$refs.tree.getCheckedAndIndeterminateNodes()
//
if(checkarr.length!==0){ if(checkarr.length!==0){
// ,
for(let i=0;i<checkarr.length;i++){ for(let i=0;i<checkarr.length;i++){
this.$emit('getNode',checkarr[i].id,true) this.$emit('getNode',checkarr[i].id,true)
} }
} }
//
if(val.checked === false&&val.children&&val.children.length!==0){ if(val.checked === false&&val.children&&val.children.length!==0){
this.deleteIds(val.children) this.deleteIds(val.children)
} }
this.$emit('getNode',val.id,val.checked) this.$emit('getNode',val.id,val.checked)
//
if(val.checked===false){ if(val.checked===false){
//
// id,children0
//
this.searchFather(val.parentId,this.Treedata) this.searchFather(val.parentId,this.Treedata)
} }
//
// idchecked
// id
}, },
//
deleteIds(data){ deleteIds(data){
let that = this let that = this
if(data.length!==0){ if(data.length!==0){
@ -103,12 +86,10 @@ export default {
} }
} }
}, },
// id
searchFather(id,data){ searchFather(id,data){
let that = this let that = this
for(let i =0;i<data.length;i++){ for(let i =0;i<data.length;i++){
if(data[i].id==id){ if(data[i].id==id){
// id
if(data[i].children&&data[i].children.length===1){ if(data[i].children&&data[i].children.length===1){
that.$emit('getNode',data[i].id,false) that.$emit('getNode',data[i].id,false)
@ -117,8 +98,6 @@ export default {
} }
if(data[i].parentId==0){ if(data[i].parentId==0){
// children
// this.valtrue
that.searchDeep(data[i].children) that.searchDeep(data[i].children)
if(that.val){ if(that.val){
that.$emit('getNode',data[i].id,false) that.$emit('getNode',data[i].id,false)
@ -126,24 +105,20 @@ export default {
} }
}else{ }else{
if(data[i].children&&data[i].children.length!==0){ if(data[i].children&&data[i].children.length!==0){
//
that.searchFather(id,data[i].children) that.searchFather(id,data[i].children)
} }
} }
} }
}, },
//
searchDeep(data){ searchDeep(data){
if(data.length&&data.length!==0){ if(data.length&&data.length!==0){
let len = data.length let len = data.length
for(let i =0;i<len;i++){ for(let i =0;i<len;i++){
// falsetrue
if(data[i].checked===true){ if(data[i].checked===true){
this.val = false this.val = false
}else if(data[i].checked===false){ }else if(data[i].checked===false){
this.val =true this.val =true
} }
//
if(data[i].children&&data[i].children.length!==0){ if(data[i].children&&data[i].children.length!==0){
this.searchDeep(data[i].children) this.searchDeep(data[i].children)
} }
@ -156,39 +131,27 @@ export default {
}; };
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
//
/deep/ .ivu-checkbox-inner { /deep/ .ivu-checkbox-inner {
// background: url('../../assets/img/btn_per_un.png');
width: 20px; width: 20px;
height: 20px; height: 20px;
border: 1px solid #cecece; border: 1px solid #cecece;
// border-radius: 50%;
// background-size: contain;
&:hover{ &:hover{
border-color: #52b1ff; border-color: #52b1ff;
} }
} }
//
/deep/ .ivu-checkbox-checked .ivu-checkbox-inner { /deep/ .ivu-checkbox-checked .ivu-checkbox-inner {
// background: url('../../assets/img/btn_pre.png');
border: 1px solid #cecece; border: 1px solid #cecece;
width:20px; width:20px;
// background: #52b1ff;
height:20px; height:20px;
// border-radius: 50%;
background-size: contain; background-size: contain;
} }
//
/deep/ .ivu-checkbox-checked .ivu-checkbox-inner:after { /deep/ .ivu-checkbox-checked .ivu-checkbox-inner:after {
// display: none;
z-index: 2; z-index: 2;
width: 7px; width: 7px;
height: 10px; height: 10px;
} }
// //
/deep/ .ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner:after{ /deep/ .ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner:after{

@ -1,4 +1,3 @@
//
<template> <template>
<div class="top-sidebar not-zoom shadow"> <div class="top-sidebar not-zoom shadow">
<el-menu :default-active="pitchOn" class="wd100 bd0 flex-center"> <el-menu :default-active="pitchOn" class="wd100 bd0 flex-center">
@ -18,13 +17,12 @@
export default { export default {
props: { props: {
title: Array, title: Array,
pitchOn: String // pitchOn: String
}, },
data() { data() {
return {}; return {};
}, },
methods: { methods: {
//
setIndex(index) { setIndex(index) {
this.$emit('getSidebarVal', index); this.$emit('getSidebarVal', index);
} }
@ -42,7 +40,6 @@ export default {
border-radius: 10px; border-radius: 10px;
} }
} }
//
/deep/ .el-menu-item { /deep/ .el-menu-item {
box-sizing: border-box; box-sizing: border-box;
padding: 0 !important; padding: 0 !important;

@ -9,10 +9,8 @@
alt alt
/> />
</div> </div>
<!-- 改为label -->
{{item.name}} {{item.name}}
</div> </div>
<!-- -->
<div v-show="item.ifVisible" v-if="item.children&&item.children.length!=0"> <div v-show="item.ifVisible" v-if="item.children&&item.children.length!=0">
<div v-for="(item1,index1) in item.children" :key="index1"> <div v-for="(item1,index1) in item.children" :key="index1">
<div class="item1" @click.stop="open(item1)"> <div class="item1" @click.stop="open(item1)">
@ -86,12 +84,10 @@ export default {
} }
}, },
methods: { methods: {
//
open(item) { open(item) {
item.ifVisible = !item.ifVisible; item.ifVisible = !item.ifVisible;
}, },
//removeByvaluemain.js
choose(item) { choose(item) {
item.ifVisible = !item.ifVisible; item.ifVisible = !item.ifVisible;
if (item.ifVisible) { if (item.ifVisible) {
@ -100,9 +96,8 @@ export default {
this.chooseList.removeByValue(item); this.chooseList.removeByValue(item);
} }
}, },
//
isHasObj(arr, val) { isHasObj(arr, val) {
var flag = 0; //1 0 var flag = 0;
for (var i = 0; i < arr.length; i++) { for (var i = 0; i < arr.length; i++) {
if (JSON.stringify(arr[i]).indexOf(JSON.stringify(val)) != -1) { if (JSON.stringify(arr[i]).indexOf(JSON.stringify(val)) != -1) {
flag = 1; flag = 1;
@ -119,10 +114,9 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
$insideColor: rgba(245, 242, 255, 0.8); // $insideColor: rgba(245, 242, 255, 0.8);
$outColor: rgba(255, 255, 255, 0.8); // $outColor: rgba(255, 255, 255, 0.8);
//,item
@mixin public { @mixin public {
height: 50px; height: 50px;
line-height: 50px; line-height: 50px;
@ -176,7 +170,6 @@ $outColor: rgba(255, 255, 255, 0.8); //外部节点的边框颜色
background: rgba(255, 255, 255, 1); background: rgba(255, 255, 255, 1);
} }
//ul,li
ul, ul,
li { li {
padding: 0; padding: 0;
@ -184,7 +177,6 @@ li {
list-style: none; list-style: none;
} }
// 使
.arrowTransform { .arrowTransform {
transition: 0.2s; transition: 0.2s;
transform-origin: center; transform-origin: center;
@ -195,8 +187,6 @@ li {
transform-origin: center; transform-origin: center;
transform: rotateZ(90deg); transform: rotateZ(90deg);
} }
//
.checkBox { .checkBox {
width: 14px; width: 14px;
height: 14px; height: 14px;
@ -206,8 +196,7 @@ li {
border: 2px solid rgba(146, 120, 255, 1); border: 2px solid rgba(146, 120, 255, 1);
} }
//
.isActive { .isActive {
background-size: 14px 14px; /*按比例缩放*/ background-size: 14px 14px;
} }
</style> </style>

@ -101,11 +101,11 @@ export default {
}, },
async mounted(){ async mounted(){
this.getMounth() // await this.getMounth() //
this.queryAccessRecords() await this.queryAccessRecords()
this.getNewBusinessCount() await this.getNewBusinessCount()
this.queryLoginNum() await this.queryLoginNum()
this.queryLoginOnline2() await this.queryLoginOnline2()
await this.getTodayBusinessCount() await this.getTodayBusinessCount()
await this.queryAccessRecords() await this.queryAccessRecords()
await this.queryVisitNum() await this.queryVisitNum()

@ -12,7 +12,7 @@
<span class="aboutUs">关于我们</span> <span class="aboutUs">关于我们</span>
</div> </div>
<!-- 登录card --> <!-- 登录card -->
<div class="Login_view" v-show="cardType == 1"> <div class="Login_view" v-show="cardType == 1" v-loading="loading" >
<div class="flex-between login_title"> <div class="flex-between login_title">
<span>登录</span> <span>登录</span>
<router-link :to="{path:'beforeLogin'}"> <router-link :to="{path:'beforeLogin'}">
@ -92,6 +92,7 @@ export default {
// appid : 'wx3b7bca679da34921', // appid : 'wx3b7bca679da34921',
// scope : 'snsapi_login', // scope : 'snsapi_login',
// redirect_uri : encodeURIComponent("http://192.168.31.254:8080/#/Dashboard"), // redirect_uri : encodeURIComponent("http://192.168.31.254:8080/#/Dashboard"),
loading:false
}; };
}, },
beforeCreate(){ beforeCreate(){
@ -140,6 +141,7 @@ export default {
}else{ }else{
this.tenDayEffective = 2 this.tenDayEffective = 2
} }
this.loading = true
login({ login({
phone: this.param.username, phone: this.param.username,
type: this.loginType, type: this.loginType,
@ -147,11 +149,15 @@ export default {
password: this.param.password, password: this.param.password,
tenDayEffective: this.tenDayEffective tenDayEffective: this.tenDayEffective
}).then(res => { }).then(res => {
console.log('登录接口完成')
sessionStorage.setItem("token",res.data.token); sessionStorage.setItem("token",res.data.token);
sessionStorage.setItem("userID",res.data.id); sessionStorage.setItem("userID",res.data.id);
this.$store.commit("userNameData", { userName: res.data.account, userPhone: this.param.username,headerImg:res.data.headPortaritUrl }); this.$store.commit("userNameData", { userName: res.data.account, userPhone: this.param.username,headerImg:res.data.headPortaritUrl });
this.getNowRole()// id this.getNowRole()// id
}).catch(res => {}); this.loading = false
}).catch(res => {
this.loading = false
});
} }
}); });
}, },
@ -163,6 +169,7 @@ export default {
}, },
getNowRole(){ getNowRole(){
return getNowRole().then(res=>{ return getNowRole().then(res=>{
console.log('进行权限请求')
if(res.success){ if(res.success){
sessionStorage.setItem("now-roleBtn",res.data); sessionStorage.setItem("now-roleBtn",res.data);
this.$nextTick(()=>{ this.$nextTick(()=>{
@ -170,6 +177,7 @@ export default {
this.$router.push(this.$route.query.redirect) this.$router.push(this.$route.query.redirect)
}else{ }else{
this.$router.push('/homePage') this.$router.push('/homePage')
console.log(sessionStorage.getItem('token'))
} }
}) })
} }

@ -5,17 +5,12 @@
<img src="../../assets/img/manpower-icon.png" alt class="top-module-icon mgr10" /> <img src="../../assets/img/manpower-icon.png" alt class="top-module-icon mgr10" />
<p class="head-text">系统管理</p> <p class="head-text">系统管理</p>
</div> </div>
<!-- 这是一个后退按钮组件 -->
<!-- <back @click.native="goto('background')"></back> -->
</div> </div>
<div class="df mgt20 main self"> <div class="df mgt20 main self">
<Left-sidebar class="flex-column-end " :title="leftSidebarData" @getSidebarVal="getIndex" :pitchOn="active"></Left-sidebar> <Left-sidebar class="flex-column-end " :title="leftSidebarData" @getSidebarVal="getIndex" :pitchOn="active"></Left-sidebar>
<div class="right-main self"> <div class="right-main self">
<!-- 角色权限管理 -->
<Jurisdiction v-if="active === '1'"></Jurisdiction> <Jurisdiction v-if="active === '1'"></Jurisdiction>
<!-- 修改密码管理 -->
<SupertubePwd v-if="active === '2'"></SupertubePwd> <SupertubePwd v-if="active === '2'"></SupertubePwd>
<!-- 平台日志 -->
<PlatformLog v-if="active === '3'"></PlatformLog> <PlatformLog v-if="active === '3'"></PlatformLog>
</div> </div>
</div> </div>
@ -92,7 +87,6 @@
/deep/ .el-col-3 .el-card__body{ /deep/ .el-col-3 .el-card__body{
padding-right: 0; padding-right: 0;
// padding-left: 0;
} }
} }

@ -1,5 +1,6 @@
<template> <template>
<div> <div>
<div v-show="loanStatus == 1"> <div v-show="loanStatus == 1">
<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="mgt20 pdb20"> <div class="mgt20 pdb20">
@ -19,8 +20,8 @@
clearable clearable
></el-input> ></el-input>
<el-button v-preventReClick type="primary" size="small" round @click="search">查询</el-button> <el-button v-preventReClick type="primary" size="small" round @click="search">查询</el-button>
<el-button v-preventReClick type="primary" size="small" round @click="edit()">新建</el-button> <el-button v-preventReClick type="primary" size="small" v-if="$router.currentRoute.meta.btn.includes('担保新建')" round @click="edit()">新建</el-button>
<el-button v-preventReClick type="primary" plain size="small" round icon="el-icon-download" @click="upLoadPop=true">导入</el-button> <el-button v-preventReClick type="primary" plain size="small" round icon="el-icon-download" v-if="$router.currentRoute.meta.btn.includes('担保导入')" @click="upLoadPop=true">导入</el-button>
<el-button v-preventReClick type="primary" plain size="small" round icon="el-icon-upload2" @click="insExport">导出</el-button> <el-button v-preventReClick type="primary" plain size="small" round icon="el-icon-upload2" @click="insExport">导出</el-button>
</div> </div>
</div> </div>
@ -50,8 +51,8 @@
<el-table-column prop="sourceStr" label="来源" align="center"></el-table-column> <el-table-column prop="sourceStr" label="来源" align="center"></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="scope.row.source=='1'" type="text" @click="edit('',scope.row)">编辑</el-button> <el-button v-if="scope.row.source=='1'&&$router.currentRoute.meta.btn.includes('担保编辑')" type="text" @click="edit('',scope.row)">编辑</el-button>
<el-button v-if="scope.row.source=='1'" type="text" @click="deleteInsurance(scope.row)">删除</el-button> <el-button v-if="scope.row.source=='1'&&$router.currentRoute.meta.btn.includes('担保删除')" type="text" @click="deleteInsurance(scope.row)">删除</el-button>
<el-button v-if="$router.currentRoute.meta.btn.includes('办理结项') && scope.row.paymentStatus == '已还清'" type="text" @click="conclusion(scope.row)">办理结项</el-button> <el-button v-if="$router.currentRoute.meta.btn.includes('办理结项') && scope.row.paymentStatus == '已还清'" type="text" @click="conclusion(scope.row)">办理结项</el-button>
<el-button v-if="$router.currentRoute.meta.btn.includes('还款录入') && scope.row.paymentStatus != '已结项'" type="text" @click="edit(scope.row)">还款录入</el-button> <el-button v-if="$router.currentRoute.meta.btn.includes('还款录入') && scope.row.paymentStatus != '已结项'" type="text" @click="edit(scope.row)">还款录入</el-button>
<el-button v-if="$router.currentRoute.meta.btn.includes('保后还款记录')" type="text" @click="history(scope.row)">还款记录</el-button> <el-button v-if="$router.currentRoute.meta.btn.includes('保后还款记录')" type="text" @click="history(scope.row)">还款记录</el-button>
@ -229,7 +230,8 @@
</el-form-item> </el-form-item>
</div> </div>
<el-form-item label="经营情况:"> <el-form-item label="经营情况:">
<el-select v-model="liquidate.operation" placeholder="请选择"> <!-- 未完成 -->
<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>
@ -274,13 +276,11 @@
</el-form-item> </el-form-item>
<el-form-item label="本次还款(元)" prop="currentRepayment" > <el-form-item label="本次还款(元)" prop="currentRepayment" >
<el-input v-model="repaymentForm.currentRepayment" placeholder="请输入本次还款金额" <el-input v-model="repaymentForm.currentRepayment" placeholder="请输入本次还款金额" type="text" maxlength="10" oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"></el-input>
type="text" oninput="value=value.replace(/[^\d.]/g,'')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="其他费用(元)"> <el-form-item label="其他费用(元)">
<el-input v-model="repaymentForm.otherExpenses" placeholder="请输入其他费用" <el-input v-model="repaymentForm.otherExpenses" placeholder="请输入其他费用" type="text" maxlength="8" oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"></el-input>
type="text" oninput="value=value.replace(/[^\d.]/g,'')"></el-input>
</el-form-item> </el-form-item>
@ -300,19 +300,19 @@
</el-form-item> </el-form-item>
<el-form-item label="本次还款总额(元)"> <el-form-item label="本次还款总额(元)">
<el-input v-model="totalRepayment" oninput="value=value.replace(/[^\d.]/g,'')" disabled placeholder="还款总额" maxlength="10"></el-input> <el-input v-model="totalRepayment" disabled placeholder="还款总额" maxlength="8" oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="利息(元)" prop="interest"> <el-form-item label="利息(元)" prop="interest">
<el-input v-model="repaymentForm.interest" placeholder="请输入利息" type="text" oninput="value=value.replace(/[^\d.]/g,'')"></el-input> <el-input v-model="repaymentForm.interest" placeholder="请输入利息" type="text" maxlength="8" oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="减免金额(元)"> <el-form-item label="减免金额(元)">
<el-input v-model="repaymentForm.deductionAmount" oninput="value=value.replace(/[^\d.]/g,'')" placeholder="请输入减免金额"></el-input> <el-input v-model="repaymentForm.deductionAmount" maxlength="10" oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" placeholder="请输入减免金额"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="清偿方式" > <el-form-item label="清偿方式" required>
<div class="df"> <div class="df">
<span style="margin-right:20px">1现金</span> <span style="margin-right:20px">1现金</span>
<el-input style="width:20%;min-width:250px" oninput="value=value.replace(/[^\d.]/g,'')" v-model="repaymentForm.repaymentCash" placeholder="请输入金额"></el-input> <el-input style="width:20%;min-width:250px" oninput="value=value.replace(/[^\d.]/g,'')" v-model="repaymentForm.repaymentCash" placeholder="请输入金额"></el-input>
@ -470,17 +470,13 @@
<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="excelTemplate" style="color:#fff">模板下载<i class="el-icon-download el-icon--right"></i></a ><a href="https://www.feifanhitech.com/enclosureFile/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"
:on-remove="handleRemove"
:on-error="uploadError"
:on-success="uploadSuccess" :on-success="uploadSuccess"
:before-remove="beforeRemove"
:limit="1" :limit="1"
:on-exceed="handleExceed" :action="importInsurance"
:action="excelImport"
:file-list="uploadList" :file-list="uploadList"
name="file" name="file"
:headers="importHeaders" :headers="importHeaders"
@ -529,11 +525,14 @@
</template> </template>
<script> <script>
import { allBankName, insuranceList, insuranceDetail, repaymentEntry, repaymentList, repaymentStatistics, excelHis, delRepayment, repaymentDetail, excelInsurance, updateInsurance, updateRepayment, designateEmpTrees, getAllClient ,saveInsurance,companyInfoBySth,liquidateList,liquidateEdit,liquidateDel,deleteInsurance, editInsurance, compensationSituation,} 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} from '../../../utils/api';
import core from '../../../utils/core';
export default { export default {
data() { data() {
return { return {
importInsurance:importInsurance,
uploadList:[],
importHeaders: { token: sessionStorage.getItem('token') },
guaranteeLoading:false, guaranteeLoading:false,
keyword: '', keyword: '',
paymentStatus: '', paymentStatus: '',
@ -699,7 +698,7 @@
textarea:'', textarea:'',
guaranteeEditStatus:false,// guaranteeEditStatus:false,//
cash:0,// cash:0,//
btns:{}
}; };
}, },
computed:{ computed:{
@ -823,9 +822,8 @@
} }
}, },
created(){ created(){
console.log(this.discernEdit,'env-'); console.log(this.btn,'mate',this.$router.currentRoute.meta.btn)
this.liquidateList() this.liquidateList()
if(this.bankSelect.length===0){ if(this.bankSelect.length===0){
allBankName().then(res=>{ allBankName().then(res=>{
let arr = res.data.map(item=>{ let arr = res.data.map(item=>{
@ -1045,8 +1043,6 @@
if(this.status==='newLoans'){ if(this.status==='newLoans'){
this.saveInsurance() this.saveInsurance()
}else{// / }else{// /
let form2 = new Promise((resolve,reject)=>{ let form2 = new Promise((resolve,reject)=>{
this.$refs[repaymentForm].validate((valid) => { this.$refs[repaymentForm].validate((valid) => {
if (valid) { if (valid) {
@ -1361,11 +1357,13 @@
}) })
}, },
saveInsurance(){// saveInsurance(){//
let has = false
const form1 = new Promise((resolve,reject)=>{ const form1 = new Promise((resolve,reject)=>{
this.$refs['refGuaranteeForm'].validate((valid) => { this.$refs['refGuaranteeForm'].validate((valid) => {
if (valid) { if (valid) {
resolve() resolve()
}else{ }else{
has = true
return this.$message.error('请输入必填信息!') return this.$message.error('请输入必填信息!')
} }
@ -1376,13 +1374,14 @@
if (valid) { if (valid) {
resolve() resolve()
}else{ }else{
return this.$message.error('请输入必填信息!') if(!has) return this.$message.error('请输入必填信息!')
} }
}) })
}) })
// //
return Promise.all([form1,form3]).then(()=>{ return Promise.all([form1,form3]).then(()=>{
this.$confirm('确定保存该记录?', '提示', {type:"info"}).then(()=>{
let obj ={} let obj ={}
// //
if(this.discernEdit) obj.insuranceId = this.id if(this.discernEdit) obj.insuranceId = this.id
@ -1410,7 +1409,12 @@
} }
}) })
} }
}).catch(err=>{
}).catch(e=>{
console.log(e,'取消保存记录')
})
}).catch(()=>{
// alert('') // alert('')
console.log(err,'err') console.log(err,'err')
return false return false
@ -1432,6 +1436,24 @@
this.cash = res.data.amount this.cash = res.data.amount
}) })
}, },
uploadSuccess(response, file, fileList) { //
this.upLoadPop = false
this.uploadList = []
//
let data = response.data
if(data.import.exportCode){
core.exportFile(exportFailure(data.import.exportCode))
}
// if (response.code == 10000) {
// this.$message.success('');
// this.importVisible = false;
// this.getData();
// } else {
// this.$message.error(response.message);
// }
// this.uploadList.push({ name: file.name, url: response.message.fileUrl });
},
} }
@ -1490,4 +1512,7 @@
margin-top: 10px; margin-top: 10px;
text-align: center; text-align: center;
} }
/deep/ .el-upload-list{
display: none;
}
</style> </style>

@ -41,7 +41,10 @@ export default {
data() { data() {
return { return {
title:[], title:[],
menus:{}, menus:{
head:[],
body:[]
},
showValue: '0', // showValue: '0', //
loanStatusHome: 1, loanStatusHome: 1,
logStatusHome: 1, logStatusHome: 1,
@ -68,29 +71,31 @@ export default {
}, },
}, },
created(){ created(){
if(this.$router.currentRoute.meta.btn.includes('保后管理')){ let meta = this.$router.currentRoute.meta.btn
if(meta.includes('保后管理')){
this.title.push({ name: '保后管理', index: '0' }) this.title.push({ name: '保后管理', index: '0' })
} }
if(this.$router.currentRoute.meta.btn.includes('催收管理')){ if(meta.includes('催收管理')){
this.title.push({ name: '催收管理', index: '1' }) this.title.push({ name: '催收管理', index: '1' })
} }
this.menus = { // this.menus = {
head:['数据统计与查询'], // head:[''],
body:{ // body:{
'数据统计与查询':[{name: '清收完成统计', index: '2'},{name: '清收进度查询', index: '3'}] // '':[{name: '', index: '2'},{name: '', index: '3'}]
} // }
// }
console.log(this.$router.currentRoute,'陆游信息')
if(meta.includes('清收完成统计')||meta.includes('清收进度查询')){
this.menus.head.push('数据统计与查询')
this.menus.body['数据统计与查询'] = []
if(meta.includes('清收完成统计')){
this.menus.body['数据统计与查询'].push({ name: '清收完成统计', index: '2' })
} }
/* // 判断权限-- if(meta.includes('清收进度查询')){
// this.menus.body['数据统计与查询'].push({ name: '清收进度查询', index: '3' })
if(this.$router.currentRoute.meta.btn.includes('数据统计与查询')){
this.titlehead.push('数据统计与查询')
if(this.$router.currentRoute.meta.btn.includes('清收完成统计')){
this.title.body['数据统计与查询'].push({ name: '清收完成统计', index: '0' })
} }
if(this.$router.currentRoute.meta.btn.includes('清收进度查询')){
this.title.body['数据统计与查询'].push({ name: '清收进度查询', index: '1' })
} }
} */
this.showValue = this.$store.state.loan.leftStatus this.showValue = this.$store.state.loan.leftStatus
this.loanStatusHome = this.$store.state.loan.loanStatus this.loanStatusHome = this.$store.state.loan.loanStatus
this.logStatusHome = this.$store.state.loan.logStatus this.logStatusHome = this.$store.state.loan.logStatus
@ -188,7 +193,7 @@ export default {
}, },
// //
getIndex(index) { getIndex(index) {
if(index){ console.log(index,'ind')
switch (index) { switch (index) {
case '0': case '0':
this.$store.commit("loanStatusData", { loanStatus: 1 }); this.$store.commit("loanStatusData", { loanStatus: 1 });
@ -200,7 +205,7 @@ export default {
this.$store.commit("liquidate", '1'); this.$store.commit("liquidate", '1');
break; break;
case '3': case '3':
// this.$store.commit("logStatusData", { logStatus: 1 }); this.$store.commit("liquidate", '2');
break; break;
default: default:
break; break;
@ -208,7 +213,6 @@ export default {
this.showValue = index; this.showValue = index;
this.$store.commit("leftSidebarData", { leftStatus: this.showValue }); this.$store.commit("leftSidebarData", { leftStatus: this.showValue });
} }
}
}, },
}; };
</script> </script>

@ -946,8 +946,10 @@
}) })
this.collectionHisData = res.data.list this.collectionHisData = res.data.list
this.collectionHisTotals = res.data.totalCount this.collectionHisTotals = res.data.totalCount
}, },
collectionHisSearch(){ collectionHisSearch(){
this.collectionHisPage = 1 this.collectionHisPage = 1
this.collectionHisList() this.collectionHisList()
}, },

@ -7,23 +7,27 @@
<div class="mgt20 pdb20"> <div class="mgt20 pdb20">
<div class="mgtb20"> <div class="mgtb20">
<div class="flex-center"> <div class="flex-center">
<el-button v-preventReClick type="primary" round @click="createList('new')">生成年度统计表</el-button> <el-button type="primary" v-if="$router.currentRoute.meta.btn.includes('生成年度统计表')" round @click="createList('new')">生成年度统计表</el-button>
</div> </div>
</div> </div>
<div class="shadow radius10 pdt20"> <div class="shadow radius10 pdt20">
<el-table :data="data" stripe header-align="center" class="mat20"> <el-table :data="data" stripe header-align="center" class="mat20">
<el-table-column type="index" width="200" label="序号" align="center"></el-table-column> <el-table-column type="index" width="200" label="序号" align="center"></el-table-column>
<el-table-column prop="businessCode" label="年度" align="center"></el-table-column> <el-table-column label="年度" align="center">
<template slot-scope="scope">
{{scope.row}}
</template>
</el-table-column>
<el-table-column label="操作" width="300" align="center"> <el-table-column label="操作" width="300" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="createList(scope.row)">人员选择</el-button> <el-button type="text" v-if="$router.currentRoute.meta.btn.includes('人员选择')" @click="createList(scope.row)">人员选择</el-button>
<el-button type="text" @click="[(liquidate = '2'), edit(scope.row, 'watch')]">查看</el-button> <el-button type="text" v-if="$router.currentRoute.meta.btn.includes('统计查看')" @click="[(liquidate = '2'), edit(scope.row, 'watch')]">查看</el-button>
<el-button type="text" @click="edit(scope.row)">编辑</el-button> <el-button type="text" v-if="$router.currentRoute.meta.btn.includes('统计编辑')" @click="edit(scope.row)">编辑</el-button>
<el-button type="text" @click="del(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>
<div class="pagination"> <!-- <div class="pagination">
<el-pagination <el-pagination
background background
@current-change="currentChange" @current-change="currentChange"
@ -32,7 +36,7 @@
:total="totals" :total="totals"
> >
</el-pagination> </el-pagination>
</div> </div> -->
</div> </div>
</div> </div>
</div> </div>
@ -43,48 +47,44 @@
<div class="flex-between mgtb20"> <div class="flex-between mgtb20">
<div class="flex-center"> <div class="flex-center">
<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.liquidate" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.groupId" placeholder="请选择" clearable @change="search">
<el-option v-for="item in liquidateSelectArr" :key="item.id" :label="item.label" :value="item.id"></el-option> <el-option v-for="item in liquidateSelectArr" :key="item.id" :label="item.label" :value="item.id"></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 v-model="searchStr.paymentStatus" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.proportionSymbol" placeholder="请选择" clearable @change="search">
<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"
v-model="keyword" v-model="searchStr.proportion"
clearable clearable
></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-input placeholder="搜索业务编号/客户名称" style="min-width: 200px" v-model="keyword" clearable></el-input> <el-select v-model="searchStr.allAoumntSymbol" placeholder="请选择" clearable @change="search">
<el-option v-for="item in proportion" :key="item.id" :label="item.label" :value="item.id"></el-option>
</el-select>
<el-input class="wd20 mglr10" placeholder="搜索业务编号/客户名称" style="min-width: 200px" v-model="searchStr.allAoumnt" clearable></el-input>
</div> </div>
<div class="flex-center"> <div class="flex-center">
<!-- <el-input
placeholder="搜索业务编号/客户名称"
class="mgr20"
v-model="keyword"
clearable
></el-input> -->
<el-button v-preventReClick type="primary" size="small" round @click="clearOption">清空选项</el-button> <el-button v-preventReClick type="primary" size="small" round @click="clearOption">清空选项</el-button>
<!-- <el-button v-preventReClick type="primary" size="small" round @click="edit()">新建</el-button> --> <el-button v-preventReClick type="primary" size="small" round @click="annualStatisticsList">搜索</el-button>
</div> </div>
</div> </div>
<div class="shadow radius10 pdt20"> <div class="shadow radius10 pdt20">
<div class="flex-between mab20 mgl10"> <div class="flex-between mab20 mgl10">
<div class="flex-center"> <div class="flex-center">
<p class="hr_tag"></p> <p class="hr_tag"></p>
<span class="hr_text">2021年度清收工作完成情况统计表</span> <span class="hr_text">{{liquidateSearch.year}}年度清收工作完成情况统计表</span>
</div> </div>
</div> </div>
<div class="flex-between"> <div class="flex-between">
<div class="flex-center"> <div class="flex-center">
<el-button class="mgl20" v-preventReClick type="primary" size="small" round @click="search">导出列表</el-button> <el-button class="mgl20" v-if="$router.currentRoute.meta.btn.includes('统计导出')" v-preventReClick type="primary" size="small" round @click="statisticsSelection">导出列表</el-button>
<el-radio-group v-model="radio" class="mgl30" @change="radioChange"> <el-radio-group v-model="radio" class="mgl30" @change="radioChange">
<el-radio-button class="ht40" label="依据公司排名"></el-radio-button> <el-radio-button class="ht40" label="依据公司排名"></el-radio-button>
<el-radio-button class="ht40" label="依据小组排名"></el-radio-button> <el-radio-button class="ht40" label="依据小组排名"></el-radio-button>
@ -94,56 +94,60 @@
<el-input <el-input
style="min-width: 250px" style="min-width: 250px"
class="ht40 mgl10 mgr10" class="ht40 mgl10 mgr10"
@keyup.enter.native="getBusinessApply('search')" @keyup.enter.native="annualStatisticsList('search')"
v-model="searchStr.jobNum" v-model="searchStr.queryCondition"
placeholder="工号/清收负责人/清收企业" placeholder="工号/清收负责人/清收企业"
clearable clearable
></el-input> ></el-input>
</div> </div>
</div> </div>
<!--
前端查询
:data="data.filter(data => !search || data.businessCode.toLowerCase().includes(search.toLowerCase()))"
-->
<div class="dataList" ref="table" @scroll="handleScroll">
<el-table <el-table
:data="statisticsData" :data="statisticsData"
stripe stripe
header-align="center" header-align="center"
class="mat20" v-loading="statisticsLoading"
@selection-change="statisticsSelection" class="mat20 "
:row-key="getRowKeys" :row-key="getRowKeys"
: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="150px"></el-table-column> <el-table-column prop="companyRanks" label="公司排名" align="center" width="150px"></el-table-column>
<el-table-column prop="TeamRanks" label="小组排名" align="center" width="150px"></el-table-column> <el-table-column prop="TeamRanks" label="小组排名" align="center" width="150px"></el-table-column>
<el-table-column prop="liquidate" label="清收组" align="center"></el-table-column> <el-table-column prop="groupName" label="清收组" align="center"></el-table-column>
<el-table-column prop="principal" 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>
<el-table-column prop="enterprise" label="清收企业" align="center" width="150px"> <el-table-column prop="enterprise" label="清收企业" align="center" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="multi-box" v-for="(item, index) in scope.row.enterprise" :key="index"> <div class="multi-box" v-for="(item, index) in scope.row.enterprise" :key="index">
{{ item }} {{ item.enterprise }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="cash" label="清收现金(万元)" align="center" width="150px"> <el-table-column prop="cash" label="清收现金(万元)" align="center" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="multi-box" v-for="(item, index) in scope.row.cash" :key="index"> <div class="multi-box" v-for="(item, index) in scope.row.cash" :key="index">
{{ item }} {{ item.cash }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="asset" label="清收资产(万元)" align="center" width="150px"> <el-table-column prop="asset" label="清收资产(万元)" align="center" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="multi-box" v-for="(item, index) in scope.row.asset" :key="index"> <div class="multi-box" v-for="(item, index) in scope.row.assets" :key="index">
{{ item }} {{ item.asset }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="backTime" label="回款时间" align="center" width="200px"> <el-table-column prop="collectionTime" label="回款时间" align="center" width="200px">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="backTime" v-for="(item, index) in scope.row.backTime" :key="index"> <div class="backTime" v-for="(item, index) in scope.row.collectionTime" :key="index">
<el-date-picker <el-date-picker
style="width:180px" style="width:180px"
v-model="item.time" v-model="item.collectionTime"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
:disabled="!scope.row.edit" :disabled="!scope.row.edit"
@ -152,25 +156,25 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="repaymentTime" label="已清收总额(元)" align="center" width="150px"> <el-table-column prop="totalAmount" label="已清收总额(元)" align="center" width="150px">
<template slot-scope="scope" > <template slot-scope="scope" >
<div class="multi-box" > <div class="multi-box" >
{{ scope.row.repaymentTime }} {{ scope.row.totalAmount }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="ratio" label="完成比例" align="center" width="150px"> <el-table-column prop="ratio" label="完成比例" align="center" width="150px">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ratio"> <div class="ratio">
<div class="top">{{scope.row.repaymentTime}}</div> <div class="top">{{scope.row.totalAmount}}</div>
<el-input :disabled="!scope.row.edit" v-model="scope.row.ratio"></el-input> <el-input :disabled="!scope.row.edit" v-model="scope.row.proportion"></el-input>
</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" v-for="(item, index) in scope.row.remark" :key="index"> <div class="backTime" v-for="(item, index) in scope.row.description" :key="index">
<el-input :disabled="!scope.row.edit" v-model="item.remark"></el-input> <el-input :disabled="!scope.row.edit" v-model="item.description"></el-input>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -178,33 +182,25 @@
<el-table-column label="操作" width="300" align="center"> <el-table-column label="操作" width="300" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="yearEdit(scope.row)">{{scope.row.editStr}}</el-button> <el-button type="text" @click="yearEdit(scope.row)">{{scope.row.editStr}}</el-button>
<el-button type="text" @click="history(scope.row)">查看</el-button> <!-- <el-button type="text" @click="history(scope.row)">查看</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="pagination">
<el-pagination
background
@current-change="currentChange"
layout="total, prev, pager, next"
:current-page="pageNo"
:total="totals"
>
</el-pagination>
</div> </div>
<el-button class="more-btn" v-show="moreBtn" type="primary" round>向下滑动查看更多</el-button>
</div> </div>
</div> </div>
</div> </div>
<!-- 弹框--生成年度统计表 --> <!-- 弹框--生成年度统计表 -->
<el-dialog title="请选择" width="40%" :visible.sync="showRank" center> <el-dialog title="请选择" v-loading="treeLoading" width="40%" :visible.sync="showRank" center>
<div class="ranking"> <div class="ranking">
<div class="top"> <div class="top">
<div class="left-border fz-16"><p class="c-black mgl10">年份</p></div> <div class="left-border fz-16"><p class="c-black mgl10">年份</p></div>
<el-date-picker <el-date-picker
class="mgt10 mgl80" class="mgt10 mgl80"
v-model="chooisYear" v-model="chooisYear"
value-format="yyyy"
:picker-options="pickerOptions" :picker-options="pickerOptions"
type="year" type="year"
placeholder="选择年" placeholder="选择年"
@ -220,6 +216,8 @@
default-expand-all default-expand-all
node-key="id" node-key="id"
ref="tree" ref="tree"
@check-change="checkBox"
:default-checked-keys="treeIds"
highlight-current highlight-current
:props="defaultProps" :props="defaultProps"
> >
@ -227,128 +225,59 @@
</div> </div>
</div> </div>
<div class="flex-center fj-center mgt20"> <div class="flex-center fj-center mgt20">
<el-button type="primary" round class="mgr20">确定</el-button> <el-button type="primary" v-preventReClick round class="mgr20" @click="treeSure">确定</el-button>
<el-button type="primary" round class="mgl20">取消</el-button> <el-button round class="mgl20" @click="[chooisYear='',showRank=false]">取消</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {collectionGroupList ,generateAnnualStatistics,annualList,annualStatisticsList,editAnnualStatistics,personnelSelection ,annualStatisticsDeleted,annualStatisticsListExport } from '../../../utils/api'
import core from '../../../utils/core'
export default { export default {
name: '', name: '',
props: {}, props: {},
data() { data() {
return { return {
showRank: false, // showRank: false, //
treeLoading:false,//
loading:false,//
statisticsLoading:false,//
defaultProps: { defaultProps: {
children: 'children', children: 'personnel',
label: 'label' label: "name"
},
data: [{}],
tree: [
{
id: 1,
label: '一级 1',
children: [
{
id: 4,
label: '二级 1-1',
children: [
{
id: 9,
label: '三级 1-1-1'
},
{
id: 10,
label: '三级 1-1-2'
}
]
}
]
},
{
id: 2,
label: '一级 2',
children: [
{
id: 5,
label: '二级 2-1'
}, },
{ data: [],
id: 6, tree: [],
label: '二级 2-2' treeIds:[],
} treeStatus:'',
]
},
{
id: 3,
label: '一级 3',
children: [
{
id: 7,
label: '二级 3-1'
},
{
id: 8,
label: '二级 3-2'
}
]
}
],
chooisYear: '', chooisYear: '',
pageNo: 0, pageNo: 0,
totals: 0, totals: 0,
liquidateSelectArr: [{ label: '不限', id: '' }], liquidateSelectArr: [{ label: '不限', id: '' }],
proportion: [ proportion: [
// //
{ label: '不限', id: '0' }, { label: '不限', id: '' },
{ label: '>', id: '1' }, { label: '>', id: '>' },
{ label: '<', id: '2' }, { label: '<', id: '<' },
{ label: '>=', id: '3' }, { label: '>=', id: '>=' },
{ label: '<=', id: '4' }, { label: '<=', id: '<=' },
{ label: '=', id: '5' } { label: '=', id: '=' }
], ],
searchStr: { searchStr: {
// //
liquidate: '', // year:'',
ratio: '', // groupId: '', //
proportion: '', //
percent: '', // percent: '', //
paymentStatus: '' // proportionSymbol: '', //
}, },
radio: '依据公司排名', radio: '依据公司排名',
liquidateSelect: '0', // liquidateSelect: '0', //
originalData:[],// data
statisticsData: [// statisticsData: [//
{
selection: '1',
companyRanks: '1',
TeamRanks: '1',
liquidate: '1',
principal: '1',
jobNumber: '1',
enterprise: [//
'蒙牛',
'腾讯',
'腾讯',
],
cash: [123456, 2345678,96354],
asset: [123, 456, 23],
backTime: [
{ time: '2021-12-11' },
{ time: '2021-12-12' },
{ time: '2021-12-12' },
],
repaymentTime:12321342315621789,
ratio: '25525225',
remark: [
{ remark: '我是备注1' },
{ remark: '我是备注2' },
{ remark: '我是备注2' }
],
edit:false,
editStr:'编辑'
}
], ],
keyword: '', // keyword: '', //
pickerOptions: { pickerOptions: {
@ -358,37 +287,280 @@ export default {
let year = date.getFullYear(); let year = date.getFullYear();
return time.getFullYear() > year; return time.getFullYear() > year;
} }
} },
moreBtn:false,
moreText:'向下滚动查看更多',
recordArr:[],// ,
}; };
}, },
watch: {
showRank(val){
if(val){
this.getTree()
}
},
},
computed: { computed: {
liquidate:{ liquidate:{
get(){ get(){
return this.$store.state.loan.liquidate return this.$store.state.loan.liquidate
},set(){} },set(){}
}, },
liquidateSearch:{
get(){
this.searchStr = this.$store.state.loan.liquidateSearch
return this.$store.state.loan.liquidateSearch
},set(){}
}
},
created() {
this.searchStr = this.$store.state.loan.liquidateSearch
this.annualList()
if(this.liquidate=='2'){
this.annualStatisticsList()
}
},
mounted() {
}, },
methods: { methods: {
createList(val) { handleScroll:core.debounce(function(){
// let box = this.$refs.table
if(box.scrollTop+box.clientHeight+180>box.scrollHeight){
this.moreBtn = true
}else{
this.moreBtn = false
}
if(box.scrollTop+box.clientHeight+50>=box.scrollHeight){
let st = box.scrollTop
this.moreBtn = false
//
this.statisticsData.push(...this.recordArr.slice(0,10))
this.recordArr.splice(0,10)
if(this.recordArr.length===0){
this.moreText = "没有更多数据了!"
}else{
this.moreText = "向下滚动查看更多"
box.scrollTop = st
this.statisticsLoading = true
setTimeout(() => {
this.statisticsLoading = false
}, 1000);
}
}
},20),
annualList(){
annualList().then(res=>{
this.data = res.data.list
})
},
annualStatisticsList(){
if(this.searchStr.proportionSymbol&&!this.searchStr.proportion) return this.$message('请输入完成比例整数!')
if(this.searchStr.allAoumntSymbol&&!this.searchStr.allAoumnt) return this.$message('请输入已清收总额!')
this.moreText = "向下滑动查看更多"
let param = {
year:this.searchStr.year,
groupId:this.searchStr.groupId,
proportionSymbol:this.searchStr.proportionSymbol,
proportion:this.searchStr.proportion,
queryCondition:this.searchStr.queryCondition,
}
this.statisticsLoading = true
annualStatisticsList(param).then(res=>{
this.statisticsLoading = false
let arr = new Map()
let data = res.data.list
data.forEach(e=>{
if(arr.has(e.jobNumber)){
let obj = arr.get(e.jobNumber)
obj.enterprise.push({enterprise:e.enterprise,id:e.id})
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})
obj.totalAmount += e.totalAmount
arr.set(e.jobNumber,obj)
}else{
e.enterprise = [{enterprise:e.enterprise,id:e.id}]
e.cash = [{cash:e.cash,id:e.id}]
e.assets = [{assets:e.assets,id:e.id}]
e.collectionTime = [{collectionTime:e.collectionTime,id:e.id}]
e.description = [{description:e.description,id:e.id}]
e.totalAmount += e.totalAmount
arr.set(e.jobNumber,e)
}
})
//
this.originalData = []
for(let [key,value] of arr){
this.originalData.push(value)
}
this.radioChange('依据小组排名')
this.radioChange('依据公司排名')
if(this.radio==='依据小组排名'){
this.radioChange('依据小组排名')
}
switch (this.searchStr.allAoumntSymbol) {
case '':
break;
case ">":
this.statisticsData = this.statisticsData.filter(e=>{
return e.totalAmount > this.searchStr.allAoumnt
})
break;
case "<":
this.statisticsData = this.statisticsData.filter(e=>{
return e.totalAmount < this.searchStr.allAoumnt
})
break;
case ">=":
this.statisticsData = this.statisticsData.filter(e=>{
return e.totalAmount >= this.searchStr.allAoumnt
})
break;
case "<=":
this.statisticsData = this.statisticsData.filter(e=>{
return e.totalAmount <= this.searchStr.allAoumnt
})
break;
case "=":
this.statisticsData = this.statisticsData.filter(e=>{
return e.totalAmount == this.searchStr.allAoumnt
})
break;
default:
break;
}
while (this.statisticsData.length<20) {
this.statisticsData.push({})
}
// 10,
if (this.statisticsData.length>10) {
this.recordArr = JSON.parse(JSON.stringify(this.statisticsData))
this.recordArr.splice(0,10)
this.statisticsData.splice(10,this.statisticsData.length-1)//
}
}).catch(err=>{
this.statisticsLoading = false
})
},
getTree(){//
this.treeLoading = true
collectionGroupList().then(res=>{
this.treeLoading = false
let data = res.data.list
data.forEach((e,index)=>{
if(e.id.includes('group')&&e.personnel.length===0){
e.disabled = true
}
})
this.tree = data
}).catch(err=>{
this.treeLoading = false
})
},
//
checkBox(data, checked, indeterminate){
this.treeIds = this.$refs.tree.getCheckedKeys()
},
async createList(val) {//
this.showRank = true; this.showRank = true;
if (val === 'new') { if(val==='new'){//
this.treeIds = []
}else{
await this.personnelSelection(val)
}
this.treeStatus = val
},
treeSure(){//
if (this.treeStatus === 'new') {
// //
} else { if(!this.chooisYear)return this.$message.error('请先选择年份!')
// let arr = []
// idid this.treeIds.forEach((e,index)=>{
if(typeof(e)=='number'){
arr.push(e)
}
})
if(arr.length===0) return this.$message.warning('请先选择人员后再生成列表!')
generateAnnualStatistics({personLiableIds:arr,year:this.chooisYear}).then(res=>{
this.showRank = false
this.$message.success('操作成功!')
this.annualList()
}).catch(err=>{
})
} }
}, },
currentChange(val) { currentChange(val) {
// //
}, },
radioChange(val) { radioChange(val) {//
// function compare(key){
console.log(val, 'val'); return function(value1,value2){
let val1=value1[key];
let val2=value2[key];
return val2-val1;
}
}
if(val==='依据小组排名'){
let groupMap = new Map()
this.originalData.forEach(e=>{
if(groupMap.has(e.groupName)){
let obj = groupMap.get(e.groupName)
obj.totalAmount += e.totalAmount
groupMap.set(e.groupName,obj)
}else{
let obj = {groupName:e.groupName,totalAmount:e.totalAmount}
groupMap.set(e.groupName,obj)
}
})
let group = []
for(let [key,value] of groupMap){
group.push(value)
}
group.sort(compare('totalAmount'))
let newGroup = []
group.forEach(e=>{
let arr = []
this.originalData.forEach(el=>{
if(e.groupName===el.groupName){
arr.push(el)
}
})
newGroup.push(arr)
})
newGroup.forEach(e=>{
e.sort(compare('totalAmount'))
})
let groupDown = []
newGroup.forEach((e)=>{
e.forEach((e,index)=>{
e.TeamRanks = index+1
e.editStr = '编辑'
e.edit = false
groupDown.push(e)
})
})
this.statisticsData = JSON.parse(JSON.stringify(groupDown))
}else if(val==='依据公司排名'){
// ,
this.originalData.sort(compare('totalAmount'))
this.originalData.forEach((e,i)=>{
e.companyRanks = i+1
e.editStr = '编辑'
e.edit = false
})
this.statisticsData = JSON.parse(JSON.stringify(this.originalData))
}
}, },
clearOption() { clearOption() {
// //
this.searchStr = {}; this.$store.commit('liquidateSearch',{})
}, },
search() { search() {
// //
@ -397,24 +569,58 @@ export default {
// Key // Key
return row.Id; return row.Id;
}, },
statisticsSelection(val) { statisticsSelection() {
// console.log('发',this.searchStr.year)
console.log(val,'勾选') console.log(this.searchStr.year+`年度清收工作完成进度表`)
core.exportFile(annualStatisticsListExport(this.searchStr.year),this.searchStr.year+"年度清收工作完成进度表")
}, },
edit(row, val) { edit(row, val) {
// //
this.liquidate ='2'; this.liquidate ='2';
this.$store.commit('liquidateSearch',{
year:row
})
this.$store.commit('liquidate','2') this.$store.commit('liquidate','2')
this.annualStatisticsList()
}, },
yearEdit(row, val){// yearEdit(row, val){//
if(row.edit != false){ if(row.edit != false){
row.edit = false row.edit = false
row.editStr = '编辑' row.editStr = '编辑'
//
let param = []
row.enterprise.forEach((e,index)=>{
let obj = {
collectionTime:row.collectionTime[index].collectionTime,
id:e.id,
description:row.description[index].description,
proportion:row.proportion
}
param.push(obj)
})
editAnnualStatistics({collectionStatistics:param}).then(res=>{
this.$message.success('编辑成功!')
setTimeout(() => {
this.annualStatisticsList()
}, 1000);
})
}else{ }else{
row.editStr = '保存' row.editStr = '保存'
row.edit = true row.edit = true
//
} }
},
personnelSelection(val){//
return personnelSelection({year:val}).then(res=>{
this.treeIds = res.data.list
})
},
del(row){
this.$confirm('确定要删除该年度统计数据吗?').then(()=>{
annualStatisticsDeleted(row).then(res=>{
this.annualList()
})
})
} }
} }
}; };
@ -436,7 +642,9 @@ export default {
.backTime{ .backTime{
min-height: 50px; min-height: 50px;
line-height: 50px; line-height: 50px;
/deep/ .el-input__inner{
text-align: center;
}
} }
.ratio{ .ratio{
@ -447,4 +655,18 @@ export default {
margin-bottom: 15px; margin-bottom: 15px;
} }
} }
.dataList{
height: 550px;
overflow: auto;
position: relative;
}
/deep/ .el-table::before{
background-color: transparent;
}
.more-btn{
position: absolute;
bottom: 10px;
left: 50%;
transform: translate(-50%,0);
}
</style> </style>

@ -5,65 +5,61 @@
<div class="mgt20 pdb20"> <div class="mgt20 pdb20">
<div class="flex-between mgtb20"> <div class="flex-between mgtb20">
<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.liquidate" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.area" placeholder="请选择" clearable @change="search">
<el-option v-for="item in area" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in area" :key="item.id" :label="item.name" :value="item.id"></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 v-model="searchStr.liquidate" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.operation" placeholder="请选择" clearable @change="search">
<el-option v-for="item in circumstance" :key="item.id" :label="item.name" :value="item.id"></el-option> <el-option v-for="item in circumstance" :key="item.id" :label="item.name" :value="item.id"></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 v-model="searchStr.liquidate" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.bank" placeholder="请选择" clearable @change="search">
<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 v-model="searchStr.paymentStatus" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.amountSymbol" placeholder="请选择" clearable @change="search">
<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"
placeholder="请输入金额(万)" placeholder="请输入金额(万)"
class="wd20 mglr10" class="wd20 mglr10"
style="max-width: 200px" style="max-width: 200px"
v-model="keyword" v-model="searchStr.compensationAmount"
clearable clearable
></el-input> ></el-input>
</div> </div>
<div class="flex-between mgtb20"> <div class="flex-between mgtb20">
<div class="flex-center"> <div class="flex-center">
<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.paymentStatus" placeholder="请选择" clearable @change="search"> <el-select v-model="searchStr.balanceSymbol" placeholder="请选择" clearable @change="search">
<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"
placeholder="请输入整数" placeholder="请输入整数"
class="wd20 mglr10" class="wd20 mglr10"
style="min-width: 200px" style="min-width: 200px"
v-model="keyword" v-model="searchStr.compensatoryBalance"
clearable clearable
></el-input> ></el-input>
<p class="fz-16 mgr10 font-blue mgl20 nowrap">代偿时间</p> <p class="fz-16 mgr10 font-blue mgl20 nowrap">代偿时间</p>
<!-- <el-date-picker
style="width:180px"
v-model="searchStr.time"
type="date"
value-format="yyyy-MM-dd"
>
</el-date-picker> -->
<el-date-picker <el-date-picker
class="ht40 mgl10" class="ht40 mgl10"
v-model="searchStr.time" v-model="startToEndTime"
@change="getDates($event,parameter.startTime,parameter.endTime,'flowTeam')" @change="getDates($event)"
type="daterange" type="daterange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
format="yyyy-MM-dd" format="yyyy-MM-dd"
value-format="timestamp" value-format="yyyy-MM-dd"
> >
</el-date-picker> </el-date-picker>
</div> </div>
<div class="flex-center mgr10"> <div class="flex-center mgr10">
<el-button v-preventReClick type="primary" round @click="quryCollectionProgress">搜索</el-button>
<el-button v-preventReClick type="primary" round @click="clearOption">清空选项</el-button> <el-button v-preventReClick type="primary" round @click="clearOption">清空选项</el-button>
</div> </div>
</div> </div>
@ -77,14 +73,14 @@
<div class="flex-between"> <div class="flex-between">
<div class="flex-center"> <div class="flex-center">
<el-button class="mgl20" v-preventReClick type="primary" size="small" round @click="search">导出列表</el-button> <el-button class="mgl20" v-if="$router.currentRoute.meta.btn.includes('清收进度导出列表')" v-preventReClick type="primary" size="small" round @click="collectionProgressExport">导出列表</el-button>
</div> </div>
<div class="df"> <div class="df">
<el-input <el-input
style="min-width: 250px" style="min-width: 250px"
class="ht40 mgl10 mgr10" class="ht40 mgl10 mgr10"
@keyup.enter.native="getBusinessApply('search')" @keyup.enter.native="quryCollectionProgress()"
v-model="searchStr.jobNum" v-model="searchStr.queryCondition"
placeholder="企业名称/清收负责人/业务编号" placeholder="企业名称/清收负责人/业务编号"
clearable clearable
></el-input> ></el-input>
@ -97,29 +93,28 @@
stripe stripe
header-align="center" header-align="center"
class="mat20" class="mat20"
:row-key="getRowKey"
@selection-change="statisticsSelection" @selection-change="statisticsSelection"
:row-key="getRowKeys"
: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 type="index" width="60" label="序号" align="center"></el-table-column> <el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
<el-table-column prop="companyRanks" label="业务编号" align="center" min-width="100px"></el-table-column> <el-table-column prop="businessCode" label="业务编号" align="center" min-width="100px"></el-table-column>
<el-table-column prop="TeamRanks" label="企业名称" align="center" min-width="100px"></el-table-column> <el-table-column prop="customerName" label="企业名称" align="center" min-width="100px"></el-table-column>
<el-table-column prop="liquidate" label="法定代表人" align="center"></el-table-column> <el-table-column prop="legalName" label="法定代表人" align="center"></el-table-column>
<el-table-column prop="principal" label="联系电话" align="center" min-width="100px"></el-table-column> <el-table-column prop="phone" label="联系电话" align="center" min-width="100px"></el-table-column>
<el-table-column prop="jobNumber" label="贷款银行" align="center"></el-table-column> <el-table-column prop="bank" label="贷款银行" align="center"></el-table-column>
<el-table-column prop="enterprise" label="贷款金额(元)" align="center" min-width="100px"></el-table-column> <el-table-column prop="guaranteeAmount" label="贷款金额(元)" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="贷款期限" align="center" min-width="100px"></el-table-column> <el-table-column prop="guaranteeTime" label="贷款期限" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="代偿时间" align="center" min-width="100px"></el-table-column> <el-table-column prop="compensatoryTime" label="代偿时间" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="代偿金额(元)" align="center" min-width="100px"></el-table-column> <el-table-column prop="compensationAmount" label="代偿金额(元)" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="代偿余额(元)" align="center" min-width="100px"></el-table-column> <el-table-column prop="compensatoryBalance" label="代偿余额(元)" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="抵押情况" align="center" min-width="100px"></el-table-column> <el-table-column prop="mortgage" label="抵押情况" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="诉讼情况" align="center" min-width="100px"></el-table-column> <el-table-column prop="litigation" label="诉讼情况" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" label="经营情况" align="center" min-width="100px"></el-table-column> <el-table-column prop="operation" label="经营情况" align="center" min-width="100px"></el-table-column>
<el-table-column prop="enterprise" 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="enterprise" 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="enterprise" 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="enterprise" 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> </el-table>
<div class="pagination"> <div class="pagination">
@ -137,6 +132,8 @@
</div> </div>
</template> </template>
<script> <script>
import {queryCollectionProgress , collectionProgressExport} from '../../../utils/api'
import core from '../../../utils/core'
export default{ export default{
name:'', name:'',
props:{}, props:{},
@ -144,17 +141,32 @@ export default{
return{ return{
loading:false, loading:false,
statisticsData:[], statisticsData:[],
searchStr:{},
pageNo:1, pageNo:1,
searchStr:{
amountSymbol:'',
area:'',
balanceSymbol:'',
bank:'',
compensationAmount:'',
compensatoryBalance:'',
compensatoryEndTime:'',
compensatoryStartTime:'',
operation:'',
page:this.pageNo||1,
queryCondition:'',//
size:10
},
startToEndTime:[],
totals:0, totals:0,
ids:[],
proportion: [ proportion: [
// //
{ label: '不限', id: '0' }, { label: '不限', id: '' },
{ label: '>', id: '1' }, { label: '>', id: '>' },
{ label: '<', id: '2' }, { label: '<', id: '<' },
{ label: '>=', id: '3' }, { label: '>=', id: '>=' },
{ label: '<=', id: '4' }, { label: '<=', id: '<=' },
{ label: '=', id: '5' } { label: '=', id: '=' }
], ],
area:[// area:[//
{name:'萨尔图区',id:0}, {name:'萨尔图区',id:0},
@ -178,6 +190,7 @@ export default{
console.clear() console.clear()
console.log('初始化') console.log('初始化')
console.log(this.bankData) console.log(this.bankData)
this.quryCollectionProgress()
}, },
computed: { computed: {
bankData(){ bankData(){
@ -185,16 +198,65 @@ export default{
} }
}, },
methods:{ methods:{
search(){ search(){},
quryCollectionProgress:core.throttle(function(){//
let strObj = this.searchStr
if(strObj.amountSymbol&&!strObj.compensationAmount||strObj.balanceSymbol&&!strObj.compensatoryBalance){
return this.$message.warning('选择符号后请输入金额!')
}
this.loading = true
console.log('触发')
queryCollectionProgress(this.searchStr).then(res=>{
this.loading = false
this.totals
let data = res.data.list
data.map(e=>{
e.area = core.areaStr(e.area)
e.repaymentMethod = e.repaymentMethod.slice(1,e.repaymentMethod.length-1)
})
this.statisticsData = res.data.list
this.totals = res.data.total
console.log(res,'列表数据')
console.log(this.totals,'yo')
}).catch(err=>{
console.log(err,'报错-列表')
this.loading = false
})
}),
collectionProgressExport(){//
if(this.ids.length===0) return this.$message.warning('请先勾选数据后再导出')
console.log(collectionProgressExport(this.ids),'url')
core.exportFile(collectionProgressExport(this.ids),'清收工作进度表')
}, },
clearOption(){ getDates(val){//
this.searchStr = {} console.log(val,'val')
if(val.length===2){
this.searchStr.compensatoryStartTime = val[0]
this.searchStr.compensatoryEndTime = val[1]
}else{
this.searchStr.compensatoryEndTime = ''
this.searchStr.compensatoryStartTime = ''
}
}, },
currentChange(val){ statisticsSelection(val){//
console.log(val,'勾选')
this.ids = val.map(e=>e.id)
},
clearOption(){//
this.startToEndTime = []
this.searchStr = {
size:10,page:1
}
this.quryCollectionProgress()
},
currentChange(val){//
this.pageNo = val this.pageNo = val
this.quryCollectionProgress()
},
getRowKey(row){
return row.id;
}, },
}, },
} }

@ -22,7 +22,6 @@ Router.prototype.replace = function push(location, onResolve, onReject) {
const Home = () => import('../components/common/Home.vue') const Home = () => import('../components/common/Home.vue')
// 首页 // 首页
const HomePage = () => import('../components/page/HomePage.vue') const HomePage = () => import('../components/page/HomePage.vue')
// 个人中心 // 个人中心
const Dashboard = () => import('../components/page/Dashboard.vue') const Dashboard = () => import('../components/page/Dashboard.vue')
// 工作台 // 工作台
@ -244,15 +243,13 @@ function createdRouter(item,val) {// 处理成路由接受对象的方法
return obj return obj
}else return }else return
} }
// 路由前置导航守卫
router.beforeEach(function(to,from,next){ router.beforeEach(function(to,from,next){
if(to.path == '/login'){// 退出,则删除token,避免影响到下面的判断 if(to.path == '/login'){
sessionStorage.removeItem('token') sessionStorage.removeItem('token')
} }
// if(sessionStorage.getItem('getRouter')&&sessionStorage.getItem('token')) return if(sessionStorage.getItem('token')){
if(sessionStorage.getItem('token')){//判断是否登录,是否以及处理过路由 if(!sessionStorage.getItem('success')){
// 如果要完善,需要优化:文件名称和路由path对应,循环把本地文件匹配上去,得改本地文件的名称,需要时间。 getPermission().then(res=>{
getPermission().then(res=>{// 路由接口获取路由
if(res.success){ if(res.success){
sessionStorage.setItem('getRouter','true') sessionStorage.setItem('getRouter','true')
let permissions = { let permissions = {
@ -286,18 +283,18 @@ router.beforeEach(function(to,from,next){
}, },
len = res.data.length, len = res.data.length,
homeMenu = [] homeMenu = []
console.log(res.data,'路由处理,工作台和非工作台路由匹配')
for(let i=0;i<len;i++){ for(let i=0;i<len;i++){
//匹配非工作台的路由 //匹配非工作台的路由
if(res.data[i].name!=='客户资源管理系统'&&res.data[i].name!=='担保业务管理系统'&&res.data[i].name!=='保后业务管理系统'){ if(res.data[i].name!=='客户资源管理系统'&&res.data[i].name!=='担保业务管理系统'&&res.data[i].name!=='保后业务管理系统'){
permissions.children.push(createdRouter(res.data[i])) permissions.children.push(createdRouter(res.data[i]))
homeMenu.push(res.data[i].name) homeMenu.push(res.data[i].name)
}else{ }else{
// 匹配工作台的路由,塞进工作台里
permissions.children[1].meta.btn.push(res.data[i].name) permissions.children[1].meta.btn.push(res.data[i].name)
permissions.children[1].children.push(createdRouter(res.data[i])) permissions.children[1].children.push(createdRouter(res.data[i]))
} }
} }
router.app.$options.store.commit("homeMenuData", { homeMenu: homeMenu });// 顶部四个按钮 router.app.$options.store.commit("homeMenuData", { homeMenu: homeMenu });
let errPage = [ let errPage = [
{ {
path: '*', path: '*',
@ -312,38 +309,19 @@ router.beforeEach(function(to,from,next){
router.addRoutes([permissions]) router.addRoutes([permissions])
router.addRoutes(errPage) router.addRoutes(errPage)
sessionStorage.setItem('routerData',JSON.stringify([permissions])) sessionStorage.setItem('routerData',JSON.stringify([permissions]))
// console.log(router.app.$options.store.state.router,'成功处理路由否'); // 测试处理过路由否
sessionStorage.setItem('success',true)
} }
}).catch(err=>{ }).catch(err=>{
console.log(err,'路由处理出错')
let errPage = { let errPage = {
path: '*', path: '*',
redirect: '/login' redirect: '/login'
} }
router.addRoutes([errPage]) router.addRoutes([errPage])
}) })
// }else {// 处理过路由的情况下,还原路由操作---权限新增/修改的时候,删除掉保存的路由数据 }
// console.log('处理过路由,直接还原',router); }else{
// let errPage = [
// {
// path: '*',
// redirect: '/404'
// },
// {
// path: '/404',
// component: notFind,
// meta: { title: '找不到页面', btn:[]}
// }
// ],
// // 踩坑,路由刷新后直接session拿的时候,会丢失component,此处不可取,待完善,一一匹配本地文件。
// old = JSON.parse(sessionStorage.getItem('routerData'))
// // router.addRoutes(old)
// // router.addRoutes(errPage)
// console.log('处理过路由,不进行二次处理',router,old,to.path);
// // next({
// // path:to.path
// // })
// }
}else{// 当没有token的情况下---处理重定向操作,储存重定向路由
if (to.path !== '/login'&&to.path !=="/beforeLogin"&&to.path !=='/bind-phone') { if (to.path !== '/login'&&to.path !=="/beforeLogin"&&to.path !=='/bind-phone') {
next({ path: '/login', next({ path: '/login',
query:{redirect:to.path} query:{redirect:to.path}

@ -26,6 +26,7 @@ const state = {
entering:false,// 是否为录入业务 entering:false,// 是否为录入业务
disabledAll:false,//禁用全部 disabledAll:false,//禁用全部
liquidate:'1',// 控制清收统计页面切换 liquidate:'1',// 控制清收统计页面切换
liquidateSearch:{},
} }
@ -94,6 +95,9 @@ const mutations = {
liquidate(state,val){ liquidate(state,val){
state.liquidate = val state.liquidate = val
}, },
liquidateSearch(s,obj){
s.liquidateSearch = obj
}
} }

@ -1,452 +1,242 @@
import { get, post, put, del,Url } from './http'; import {
// let host = 'http://192.168.31.137:8080';//陈赓 get,
post,
put,
del,
Url
} from './http';
let host = Url; let host = Url;
export const login = p => post('/apiHrmsAuth/hrms/auth/userlogin/login', p);
export const login = p => post('/apiHrmsAuth/hrms/auth/userlogin/login', p); //登录 export const phoneCode = p => get('/apiHrmsAuth/hrms/auth/userlogin/sendCode', p);
export const phoneCode = p => get('/apiHrmsAuth/hrms/auth/userlogin/sendCode', p); //找回密码验证码 export const verifyMobile = p => post('/apiHrmsAuth/hrms/auth/userlogin/verifyMobile', p);
export const getBackPwd = p => post('/apiHrmsAuth/hrms/auth/userlogin/getBackPwd', p);
export const verifyMobile = p => post('/apiHrmsAuth/hrms/auth/userlogin/verifyMobile', p); //忘记密码 export const querycustomerList = p => get('/api-crms/crms/customer/queryList', p);
export const getBackPwd = p => post('/apiHrmsAuth/hrms/auth/userlogin/getBackPwd', p); //设置新密码 export const deleteCustomer = p => del('/api-crms/crms/customer/deleteCustomer', p);
export const querycustomerList = p => get('/api-crms/crms/customer/queryList', p); //查询客户 export const queryDetails = p => get('/api-crms/crms/customer/queryDetails', p);
export const deleteCustomer = p => del('/api-crms/crms/customer/deleteCustomer', p); //删除客户 export const savePersonal = p => post('/api-crms/crms/customer/savePersonal', p);
export const queryDetails = p => get('/api-crms/crms/customer/queryDetails', p); //查询客户详情 export const saveCompany = p => post('/api-crms/crms/customer/saveCompany', p);
export const savePersonal = p => post('/api-crms/crms/customer/savePersonal', p); //添加个人客户 export const updateCompany = p => post('/api-crms/crms/customer/updateCompany', p);
export const saveCompany = p => post('/api-crms/crms/customer/saveCompany', p); //添加企业客户 export const updatePersonal = p => post('/api-crms/crms/customer/updatePersonal', p);
export const updateCompany = p => post('/api-crms/crms/customer/updateCompany', p); //编辑企业客户 export const listEmployeeName = p => get('/api-hrms/hrms/employee/listEmployeeName', p);
export const updatePersonal = p => post('/api-crms/crms/customer/updatePersonal', p); //编辑个人客户 export const updatePwd = p => post('/apiHrmsAuth/hrms/auth/userlogin/updatePwd', p);
export const listEmployeeName = p => get('/api-hrms/hrms/employee/listEmployeeName', p); //查询所有的客户经理 export const loginLogList = p => get('/apiHrmsAuth/hrms/auth/systemLog/loginLogList', p);
export const updatePwd = p => post('/apiHrmsAuth/hrms/auth/userlogin/updatePwd', p); //修改平台超管员密码 export const rolePermissionList = p => get('/apiHrmsAuth/hrms/auth/permission/rolePermissionList', p);
export const loginLogList = p => get('/apiHrmsAuth/hrms/auth/systemLog/loginLogList', p); //平台日志列表 export const queryPermission = p => get('/apiHrmsAuth/hrms/auth/permission/queryPermissionByRoleId', p);
export const rolePermissionList = p => get('/apiHrmsAuth/hrms/auth/permission/rolePermissionList', p); //角色权限列表 export const saveRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/saveRolePermission', p);
export const queryPermission = p => get('/apiHrmsAuth/hrms/auth/permission/queryPermissionByRoleId', p); //查看角色权限 export const updateRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/updateRolePermission', p);
export const saveRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/saveRolePermission', p); //新增角色权限 export const delRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/delRolePermission', p);
export const updateRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/updateRolePermission', p); //编辑角色权限 export const jurTree = p => get('/apiHrmsAuth/hrms/auth/permission/tree', p);
export const delRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/delRolePermission', p); //删除角色权限 export const departmentTree = p => get('/api-hrms/hrms/dept/tree', p);
export const jurTree = p => get('/apiHrmsAuth/hrms/auth/permission/tree', p); //查询所有权限树形结构 export const addDepartment = p => post('/api-hrms/hrms/dept/save', p);
export const deleteDepartment = p => del('/api-hrms/hrms/dept/delete', p);
// 后台-人资-部门 export const editDepartment = p => put('/api-hrms/hrms/dept/update', p);
export const departmentTree = p => get('/api-hrms/hrms/dept/tree',p); //部门树形结构数据(显示部门) export const dragDepartment = p => put('/api-hrms/hrms/dept/update/sort', p);
export const addDepartment = p => post('/api-hrms/hrms/dept/save', p); //新增一条部门信息 export const rulesAll = p => get('/api-hrms/hrms/position/listRoleIdAndName', p);
export const deleteDepartment = p => del('/api-hrms/hrms/dept/delete', p); //删除部门信息(树结构) export const postAll = p => post('/api-hrms/hrms/position/listPositionIdAndName', p);
export const editDepartment = p => put('/api-hrms/hrms/dept/update', p); //根据id修改部门信息(编辑) export const ruleJurisdiction = p => post('/api-hrms/hrms/employee/tree', p);
export const dragDepartment = p => put('/api-hrms/hrms/dept/update/sort', p); //修改部门的拖拽排序(传id和排序) export const clickDepartment = p => get('/api-hrms/hrms/dept/children', p);
export const rulesAll = p => get('/api-hrms/hrms/position/listRoleIdAndName', p); //所有角色id+名称 export const deleteStaff = p => del('/api-hrms/hrms/employee/delete', p);
export const postAll = p => post('/api-hrms/hrms/position/listPositionIdAndName', p); //所有职位id+名称 export const forbiddenStaff = p => get('/api-hrms/hrms/employee/forbidInfo', p);
export const ruleJurisdiction = p => post('/api-hrms/hrms/employee/tree', p); //新增员工-角色对应的权限 export const queryStaff = p => get('/api-hrms/hrms/employee/getEmployeeAndDeptById', p);
export const clickDepartment = p => get('/api-hrms/hrms/dept/children', p); //点击部门,搜索该部门名下的员工 export const queryStaffName = p => get('/api-hrms/hrms/employee/getEmployeeById', p);
// 后台-人资-员工列表 export const staffMessage = p => get('/api-hrms/hrms/employee/info', p);
export const deleteStaff = p => del('/api-hrms/hrms/employee/delete', p); //根据id删除员工 export const staffList = p => get('/api-hrms/hrms/employee/list', p);
export const forbiddenStaff = p => get('/api-hrms/hrms/employee/forbidInfo', p); //禁用详情(为啥禁用) export const staffResetPwd = p => get('/api-hrms/hrms/employee/reset', p);
export const queryStaff = p => get('/api-hrms/hrms/employee/getEmployeeAndDeptById', p); //根据id查询员工的基本信息 export const addStaff = p => post('/api-hrms/hrms/employee/save', p);
export const queryStaffName = p => get('/api-hrms/hrms/employee/getEmployeeById', p); //根据id查询员工姓名 export const startStaff = p => get('/api-hrms/hrms/employee/start', p);
export const staffMessage = p => get('/api-hrms/hrms/employee/info', p); //根据id查询员工详细信息 export const stopStaff = p => post('/api-hrms/hrms/employee/stop', p);
export const staffList = p => get('/api-hrms/hrms/employee/list', p); //查询列表 export const roleStaff = p => post('/api-hrms/hrms/employee/tree', p);
export const staffResetPwd = p => get('/api-hrms/hrms/employee/reset', p); //员工重置密码 export const editStaff = p => post('/api-hrms/hrms/employee/update', p);
export const addStaff = p => post('/api-hrms/hrms/employee/save', p); //新增员工 export const importStaff = p => post('/api-hrms/hrms/employee/excelImport', p);
export const startStaff = p => get('/api-hrms/hrms/employee/start', p); //启用员工 export const excelStaffFile = `${host}/api-hrms/hrms/employee/excelExport`;
export const stopStaff = p => post('/api-hrms/hrms/employee/stop', p); //禁用员工 export const excelTemplateStaff = `${host}/api-hrms/hrms/employee/excelTemplate`;
export const roleStaff = p => post('/api-hrms/hrms/employee/tree', p); //角色对应权限 export const deletePost = p => del('/api-hrms/hrms/position/delete', p);
export const editStaff = p => post('/api-hrms/hrms/employee/update', p); //修改员工 export const searchPostId = p => get('/api-hrms/hrms/position/info', p);
// 后台-员工-导入 export const postList = p => get('/api-hrms/hrms/position/list', p);
export const importStaff = p => post('/api-hrms/hrms/employee/excelImport',p); //导入员工(上传) export const addPostMessage = p => post('/api-hrms/hrms/position/save', p);
// 后台-员工-导出 export const editPostMessage = p => put('/api-hrms/hrms/position/update', p);
export const excelStaffFile = `${host}/api-hrms/hrms/employee/excelExport`; //导出员工文件
export const excelTemplateStaff = `${host}/api-hrms/hrms/employee/excelTemplate`; //导出员工模板
// 后台-人资-职位
export const deletePost = p => del('/api-hrms/hrms/position/delete', p); //删除职位信息
export const searchPostId = p => get('/api-hrms/hrms/position/info', p); //职位id查询职位信息详情
export const postList = p => get('/api-hrms/hrms/position/list', p); //职位列表+查询
export const addPostMessage = p => post('/api-hrms/hrms/position/save', p); //新增职位信息
export const editPostMessage = p => put('/api-hrms/hrms/position/update', p); //修改职位信息
// 后台担保系统
// 表单设计--公用接口
export const designFrom = p => get('/api-guarantee/form/design/list', p); export const designFrom = p => get('/api-guarantee/form/design/list', p);
// 修改表单
export const updateFrom = p => post('/api-guarantee/form/design/update', p); export const updateFrom = p => post('/api-guarantee/form/design/update', p);
// 担保模块选择
export const processManageList = p => get('/api-guarantee/dg-process-manage/processManageList', p); export const processManageList = p => get('/api-guarantee/dg-process-manage/processManageList', p);
// 修改图标 export const updateProcessManage = p => post('/api-guarantee/dg-process-manage/updateProcessManage', p);
export const updateProcessManage = p => post('/api-guarantee/dg-process-manage/updateProcessManage', p); //新增职位信息
// 修改可见范围
export const updateUserVisual = p => post('/api-guarantee/dg-process-manage/updateUserVisual', p); export const updateUserVisual = p => post('/api-guarantee/dg-process-manage/updateUserVisual', p);
// 查询可见范围
export const processVisualList = p => get('/api-guarantee/dg-process-manage/processVisualList', p); export const processVisualList = p => get('/api-guarantee/dg-process-manage/processVisualList', p);
// 查询超管用户--用于避免超管在表单可见范围被删除
export const superManager = p => get('/api-hrms/hrms/employee/getUserIdByRoleId', p); export const superManager = p => get('/api-hrms/hrms/employee/getUserIdByRoleId', p);
// 查询抄送用户
export const queryCopySendUser = p => get('/api-guarantee/dg-process-user/queryCopySendUser', p); export const queryCopySendUser = p => get('/api-guarantee/dg-process-user/queryCopySendUser', p);
// 添加抄送的用户
export const addCopySendUser = p => post('/api-guarantee/dg-process-user/updateCopySendUser', p); export const addCopySendUser = p => post('/api-guarantee/dg-process-user/updateCopySendUser', p);
// 查添加进流程的员工
export const getEmployeesByRoleId = p => get('/api-hrms/hrms/role/getEmployeesByRoleId', p); export const getEmployeesByRoleId = p => get('/api-hrms/hrms/role/getEmployeesByRoleId', p);
// 修改用户角色
export const updateUserRole = p => post('/api-hrms/hrms/role/updateUserRole', p); export const updateUserRole = p => post('/api-hrms/hrms/role/updateUserRole', p);
// 查询日志列表
export const systemLog = p => get('/apiHrmsAuth/hrms/auth/systemLog/list', p); export const systemLog = p => get('/apiHrmsAuth/hrms/auth/systemLog/list', p);
export const newAddRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/saveRolePermission', p);
export const editRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/updateRolePermission', p);
// 系统-新增角色权限 export const getPermissionIds = p => get('/apiHrmsAuth/hrms/auth/permission/queryPermissionArrById', p);
export const newAddRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/saveRolePermission', p); //新增角色权限
export const editRolePermission = p => post('/apiHrmsAuth/hrms/auth/permission/updateRolePermission', p); //修改角色权限
export const getPermissionIds = p => get('/apiHrmsAuth/hrms/auth/permission/queryPermissionArrById', p); //已有权限的ids
// 工作台--人力资源
// 绑定手机号
export const workBindPhone = p => get('/api-hrms/hrms/user/binding', p); export const workBindPhone = p => get('/api-hrms/hrms/user/binding', p);
// 微信解绑
export const wxUnbundle = p => get('/api-hrms/hrms/user/cancel', p); export const wxUnbundle = p => get('/api-hrms/hrms/user/cancel', p);
// 验证码
export const workPhoneAuthCord = p => get('/api-hrms/hrms/user/code', p); export const workPhoneAuthCord = p => get('/api-hrms/hrms/user/code', p);
// 用户信息
export const workUserMsg = p => get('/api-hrms/hrms/user/info', p); export const workUserMsg = p => get('/api-hrms/hrms/user/info', p);
// 修改用户信息9
export const woreEditUserMsg = p => post('/api-hrms/hrms/user/update', p); export const woreEditUserMsg = p => post('/api-hrms/hrms/user/update', p);
// 修改密码
export const workEditPwd = p => get('/api-hrms/hrms/user/updatePassword', p); export const workEditPwd = p => get('/api-hrms/hrms/user/updatePassword', p);
// 头像上传
export const headImgUp = p => post('/api-hrms/hrms/user/uploadFile', p); export const headImgUp = p => post('/api-hrms/hrms/user/uploadFile', p);
//工作台--保后管理
// 查询保后列表
export const insuranceList = p => get('/api-guarantee/al-insurance-list/insuranceList', p); export const insuranceList = p => get('/api-guarantee/al-insurance-list/insuranceList', p);
// 查询保后详情
export const insuranceDetail = p => get('/api-guarantee/al-insurance-list/insuranceDetail', p); export const insuranceDetail = p => get('/api-guarantee/al-insurance-list/insuranceDetail', p);
//办理结项
export const updateInsurance = p => get('/api-guarantee/al-insurance-list/updateStatus', p); export const updateInsurance = p => get('/api-guarantee/al-insurance-list/updateStatus', p);
//还款录入
export const repaymentEntry = p => post('/api-guarantee/al-repayment-entry/repaymentEntry', p); export const repaymentEntry = p => post('/api-guarantee/al-repayment-entry/repaymentEntry', p);
//还款记录列表
export const repaymentList = p => get('/api-guarantee/al-repayment-entry/repaymentList', p); export const repaymentList = p => get('/api-guarantee/al-repayment-entry/repaymentList', p);
//还款记录统计
export const repaymentStatistics = p => get('/api-guarantee/al-repayment-entry/repaymentStatistics', p); export const repaymentStatistics = p => get('/api-guarantee/al-repayment-entry/repaymentStatistics', p);
//批量删除还款记录
export const delRepayment = p => post('/api-guarantee/al-repayment-entry/delRepayment', p); export const delRepayment = p => post('/api-guarantee/al-repayment-entry/delRepayment', p);
// 查询还款记录详情
export const repaymentDetail = p => get('/api-guarantee/al-repayment-entry/repaymentDetail', p); export const repaymentDetail = p => get('/api-guarantee/al-repayment-entry/repaymentDetail', p);
// 编辑还款录入
export const updateRepayment = p => post('/api-guarantee/al-repayment-entry/updateRepayment', p); export const updateRepayment = p => post('/api-guarantee/al-repayment-entry/updateRepayment', p);
// 添加保后业务
export const saveInsurance = p => post('/api-guarantee/al-insurance-list/saveInsurance', p); export const saveInsurance = p => post('/api-guarantee/al-insurance-list/saveInsurance', p);
// 删除保后业务 export const deleteInsurance = p => post('/api-guarantee/al-insurance-list/deleteInsurance?insuranceId=' + p);
export const deleteInsurance = p => post('/api-guarantee/al-insurance-list/deleteInsurance?insuranceId='+p);
// 更新保后业务
export const editInsurance = p => post('/api-guarantee/al-insurance-list/updateInsurance', p); export const editInsurance = p => post('/api-guarantee/al-insurance-list/updateInsurance', p);
// 清收组列表
export const liquidateList = p => get('/api-guarantee/al-collection-group/list', p); export const liquidateList = p => get('/api-guarantee/al-collection-group/list', p);
// 清收组添加或修改
export const liquidateEdit = p => post('/api-guarantee/al-collection-group/saveOrUpdate', p); export const liquidateEdit = p => post('/api-guarantee/al-collection-group/saveOrUpdate', p);
// 清收组删除 export const liquidateDel = p => post('/api-guarantee/al-collection-group/delete?id=' + p);
export const liquidateDel = p => post('/api-guarantee/al-collection-group/delete?id='+p);
// 取得代偿金额
export const compensationSituation = p => get(`/api-guarantee/al-insurance-list/compensationSituation?date=${p.data}&insuranceId=${p.insuranceId}`); export const compensationSituation = p => get(`/api-guarantee/al-insurance-list/compensationSituation?date=${p.data}&insuranceId=${p.insuranceId}`);
export const queryCollectionProgress = p => post('/api-guarantee/al-collection-statistics/queryCollectionProgress', p);
export const collectionProgressExport = p => `${host}/api-guarantee/al-collection-statistics/collectionProgressExport?ids=${p}`
export const editAnnualStatistics = p => post('/api-guarantee/al-collection-statistics/editAnnualStatistics', p);
export const personnelSelection = p => get('/api-guarantee/al-collection-statistics/personnelSelection', p);
export const annualStatisticsDeleted = p => post(`/api-guarantee/al-collection-statistics/annualStatisticsDeleted?year=${p}`);
export const annualStatisticsListExport = p => `${host}/api-guarantee/al-collection-statistics/annualStatisticsListExport?year=${p}`
export const importInsurance = `${host}/api-guarantee/al-insurance-list/importInsurance`;
export const exportFailure = p=> `${host}/api-guarantee/al-insurance-list/exportFailure?exportCode=${p}`;
// 催收
export const collectionGroupList = p => post('/api-guarantee/al-collection-statistics/collectionGroupList', p);
export const generateAnnualStatistics = p => post('/api-guarantee/al-collection-statistics/generateAnnualStatistics', p);
export const annualList = p => get('/api-guarantee/al-collection-statistics/annualList', p);
export const annualStatisticsList = p => post('/api-guarantee/al-collection-statistics/annualStatisticsList', p);
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 collectionHisList = p => post('/api-guarantee/al-collection/collection/list', p); export const collectionHisList = p => post('/api-guarantee/al-collection/collection/list', 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`; //导出还款记录列表 export const excelCollection = `${host}/api-guarantee/al-collection/list/export/excel`;
export const excelCollection = `${host}/api-guarantee/al-collection/list/export/excel`; //导出催收管理列表 export const excelCollectionHis = `${host}/api-guarantee/al-collection/collection/list/export/excel`;
export const excelCollectionHis = `${host}/api-guarantee/al-collection/collection/list/export/excel`; //导出催收管理列表
// 工作台--客户资源管理
// 删除
export const workClientDel = p => post('/api-crms/crms/workbench/delete', p); export const workClientDel = p => post('/api-crms/crms/workbench/delete', p);
// 详情
export const workClientParticulars = p => get('/api-crms/crms/workbench/info', p); export const workClientParticulars = p => get('/api-crms/crms/workbench/info', p);
// 客户信息列表展示
export const workClientMsgList = p => get('/api-crms/crms/workbench/list', p); export const workClientMsgList = p => get('/api-crms/crms/workbench/list', p);
// 获取当前客户部门经理--下属客户经理 export const workClientManager = p => get('/api-crms/crms/workbench/manager', p);
export const workClientManager= p => get('/api-crms/crms/workbench/manager', p);
// 不通过
export const workClientNoPass = p => get('/api-crms/crms/workbench/noPass', p); export const workClientNoPass = p => get('/api-crms/crms/workbench/noPass', p);
// 通过审核
export const workClientPass = p => get('/api-crms/crms/workbench/pass', p); export const workClientPass = p => get('/api-crms/crms/workbench/pass', p);
// 新增企业类型客户
export const workClientAddEnterprise = p => post('/api-crms/crms/workbench/saveCompany', p); export const workClientAddEnterprise = p => post('/api-crms/crms/workbench/saveCompany', p);
// 新增企业类型客户新版接口
export const insertCompany = p => post('/api-crms/crms/workbench/insertCompany', p); export const insertCompany = p => post('/api-crms/crms/workbench/insertCompany', p);
// 新增个人类型客户
export const workClientMsg = p => post('/api-crms/crms/workbench/savePersonal', p); export const workClientMsg = p => post('/api-crms/crms/workbench/savePersonal', p);
// 修改企业类型客户
export const workEditClientEnterpriseMsg = p => post('/api-crms/crms/workbench/updateCompany', p); export const workEditClientEnterpriseMsg = p => post('/api-crms/crms/workbench/updateCompany', p);
// 修改企业类型客户新版接口
export const updateCompanyNew = p => post('/api-crms/crms/workbench/updateCompanyNew', p); export const updateCompanyNew = p => post('/api-crms/crms/workbench/updateCompanyNew', p);
// 修改个人类型客户
export const workEditClientMsg = p => post('/api-crms/crms/workbench/updatePersonal', p); export const workEditClientMsg = p => post('/api-crms/crms/workbench/updatePersonal', p);
// 后台和前台区分
// 新增个人类型客户
export const backClientMsg = p => post('/api-crms/crms/customer/savePersonal', p); export const backClientMsg = p => post('/api-crms/crms/customer/savePersonal', p);
// 新增企业类型客户
export const backSaveCompany = p => post('/api-crms/crms/customer/saveCompany', p); export const backSaveCompany = p => post('/api-crms/crms/customer/saveCompany', p);
// 修改企业类型客户
export const backupdateCompany = p => post('/api-crms/crms/customer/updateCompany', p); export const backupdateCompany = p => post('/api-crms/crms/customer/updateCompany', p);
// 修改个人类型客户
export const backupdatePersonal = p => post('/api-crms/crms/customer/updatePersonal', p); export const backupdatePersonal = p => post('/api-crms/crms/customer/updatePersonal', p);
// 登录微信扫码(图片)
// export const WXCordImg = p => get('/apiHrmsAuth/hrms/auth/userlogin/wxLoginUrl', p);
// 微信回调授权码(不用管)
export const WXAuthCord = p => get('/apiHrmsAuth/hrms/auth/userlogin/user/callback', p); export const WXAuthCord = p => get('/apiHrmsAuth/hrms/auth/userlogin/user/callback', p);
// 登录绑定手机号
export const bindPhone = p => post('/apiHrmsAuth/hrms/auth/userlogin/bindPhoneAndOpenId', p); export const bindPhone = p => post('/apiHrmsAuth/hrms/auth/userlogin/bindPhoneAndOpenId', p);
// 登录手机验证码
export const phoneAuthCord = p => get('/apiHrmsAuth/hrms/auth/userlogin/sendCode', p); export const phoneAuthCord = p => get('/apiHrmsAuth/hrms/auth/userlogin/sendCode', p);
// 判断手机是否存在
export const phoneExist = p => get('/apiHrmsAuth/hrms/auth/userlogin/isPhoneExist', p); export const phoneExist = p => get('/apiHrmsAuth/hrms/auth/userlogin/isPhoneExist', p);
// 工作台--担保业务
//业务申请列表
export const businessApplyList = p => get('/api-guarantee/dg-apply-amount-info/businessApplicationList', p); export const businessApplyList = p => get('/api-guarantee/dg-apply-amount-info/businessApplicationList', p);
//新建业务
export const businessApplication = p => post('/api-guarantee/dg-apply-amount-info/businessApplication', p); export const businessApplication = p => post('/api-guarantee/dg-apply-amount-info/businessApplication', p);
// 获取所有客户的信息
export const getAllClient = p => get('/api-crms/crms/customer/queryCompanyCodeAndName', p); export const getAllClient = p => get('/api-crms/crms/customer/queryCompanyCodeAndName', p);
//客户编号/取得信息
export const companyInfoBySth = p => post('/api-guarantee/dg-apply-amount-info/companyInfoBySth', p); export const companyInfoBySth = p => post('/api-guarantee/dg-apply-amount-info/companyInfoBySth', p);
// 业务申请-查看
export const businessApplyWatch = p => get('/api-guarantee/dg-apply-amount-info/businessApplicationDetail', p); export const businessApplyWatch = p => get('/api-guarantee/dg-apply-amount-info/businessApplicationDetail', p);
// 业务-修改
export const businessApplyEdit = p => post('/api-guarantee/dg-apply-amount-info/updateBusinessApplication', p); export const businessApplyEdit = p => post('/api-guarantee/dg-apply-amount-info/updateBusinessApplication', p);
// 业务申请-审核
export const businessApplyAudit = p => post('/api-guarantee/dg-apply-amount-info/approvalBusinessApplication', p); export const businessApplyAudit = p => post('/api-guarantee/dg-apply-amount-info/approvalBusinessApplication', p);
// 业务-撤销
export const businessApplyRepeal = p => get('/api-guarantee/dg-apply-amount-info/revokeBusinessApplication', p); export const businessApplyRepeal = p => get('/api-guarantee/dg-apply-amount-info/revokeBusinessApplication', p);
// 所有银行
export const allBankName = p => get('/api-guarantee/dg-bank/bankList', p); export const allBankName = p => get('/api-guarantee/dg-bank/bankList', p);
// 抄送功能截图--已修改为正常功能
export const copySend = p => post('/api-guarantee/dg-copy-for/copySend', p); export const copySend = p => post('/api-guarantee/dg-copy-for/copySend', p);
// 担保调查列表
export const guaranteeList = p => get('/api-guarantee/dg-guarantee-assign-user/guaranteeList', p); export const guaranteeList = p => get('/api-guarantee/dg-guarantee-assign-user/guaranteeList', p);
// 查看详情功能--领导/调查员
export const guaranteeDetails = p => get('/api-guarantee/dg-guarantee-assign-user/guaranteeDetail', p); export const guaranteeDetails = p => get('/api-guarantee/dg-guarantee-assign-user/guaranteeDetail', p);
// 调查功能
export const guaranteeSurvey = p => post('/api-guarantee/dg-guarantee-assign-user/investigateGuarantee', p); export const guaranteeSurvey = p => post('/api-guarantee/dg-guarantee-assign-user/investigateGuarantee', p);
// 领导审核
export const guaranteeleader = p => post('/api-guarantee/dg-guarantee-assign-user/approvalGuarantee', p); export const guaranteeleader = p => post('/api-guarantee/dg-guarantee-assign-user/approvalGuarantee', p);
// 指派A/B角
export const guaranteeDesignateAB = p => post('/api-guarantee/dg-guarantee-assign-user/assignCorners', p); export const guaranteeDesignateAB = p => post('/api-guarantee/dg-guarantee-assign-user/assignCorners', p);
// 团队效率-柱状图
export const efficiencyChart = p => post('/api-guarantee/guarantee/efficiency/team', p); export const efficiencyChart = p => post('/api-guarantee/guarantee/efficiency/team', p);
// 团队效率--搜索部门
export const listDepartment = p => get('/api-hrms/hrms/dept/listDepartment', p); export const listDepartment = p => get('/api-hrms/hrms/dept/listDepartment', p);
// 团队效率--业务数量状态栏
export const businessCount = p => get('/api-guarantee/guarantee/efficiency/businessCount', p); export const businessCount = p => get('/api-guarantee/guarantee/efficiency/businessCount', p);
// 个人效率--列表
export const personalEfficiencyList = p => post('/api-guarantee/guarantee/efficiency/personalEfficiencyList', p); export const personalEfficiencyList = p => post('/api-guarantee/guarantee/efficiency/personalEfficiencyList', p);
// 个人效率--抄送我的列表
export const queryCopyForMe = p => post('/api-guarantee/dg-copy-user/queryCopyForMe', p); export const queryCopyForMe = p => post('/api-guarantee/dg-copy-user/queryCopyForMe', p);
// 抄送导出
export const exportCopyForMe = `${host}/api-guarantee/dg-copy-user/exportCopyForMe`; export const exportCopyForMe = `${host}/api-guarantee/dg-copy-user/exportCopyForMe`;
// 个人效率--列表导出
export const personalEfficiencyListExport = `${host}/api-guarantee/guarantee/efficiency/personalEfficiencyListExport`; export const personalEfficiencyListExport = `${host}/api-guarantee/guarantee/efficiency/personalEfficiencyListExport`;
// 消息提示接口
export const notice = p => get('/api-guarantee/guarantee/efficiency/notice', p); export const notice = p => get('/api-guarantee/guarantee/efficiency/notice', p);
// 根据部门id查询员工
export const listEmployeeByDeptId = p => get('/api-hrms/hrms/dept/listEmployeeByDeptId', p); export const listEmployeeByDeptId = p => get('/api-hrms/hrms/dept/listEmployeeByDeptId', p);
// 暂时替代一下上面的接口,后续切换回去。这接口上面有过了,不管,后续删除
// export const listEmployeeName = p => get('/api-hrms/hrms/employee/listEmployeeName', p);
//
// 业务统计--
// 列表导出
export const excelExportPass = `${host}/api-guarantee/guarantee/statistics/excelExport`; export const excelExportPass = `${host}/api-guarantee/guarantee/statistics/excelExport`;
// 拒绝列表导出
export const excelExportRefuse = `${host}/api-guarantee/guarantee/statistics/excelExportRefuse`; export const excelExportRefuse = `${host}/api-guarantee/guarantee/statistics/excelExportRefuse`;
// 业务统计列表
export const listPass = p => get('/api-guarantee/guarantee/statistics/list', p); export const listPass = p => get('/api-guarantee/guarantee/statistics/list', p);
// 拒绝列表
export const listRefuse = p => get('/api-guarantee/guarantee/statistics/listRefuse', p); export const listRefuse = p => get('/api-guarantee/guarantee/statistics/listRefuse', p);
// 个人中心柱状图
export const approvalNum = p => get('/api-guarantee/guarantee/efficiency/approvalNum', p); export const approvalNum = p => get('/api-guarantee/guarantee/efficiency/approvalNum', p);
export const designateEmpTrees = p => get('/api-hrms/hrms/dept/empTrees', p);
// 指派树---不做限制版-仅工作会
export const designateEmpTrees = p => get('/api-hrms//hrms/dept/empTrees', p);
// 关联人列表
export const getLinkmanList = p => get('/api-crms/crms-company-personal/companyPersonalList', p); export const getLinkmanList = p => get('/api-crms/crms-company-personal/companyPersonalList', p);
// 查询关联人
export const searchLinkmanList = p => get('/api-crms/crms-company-personal/selectCompanyPersonal', p); export const searchLinkmanList = p => get('/api-crms/crms-company-personal/selectCompanyPersonal', p);
// 查询关联人新版
export const NewsearchLinkmanList = p => get('/api-crms/crms-company-personal/selectCompanyPersonal', p); export const NewsearchLinkmanList = p => get('/api-crms/crms-company-personal/selectCompanyPersonal', p);
// 删除关联人
export const delLinkmanList = p => post('/api-crms/crms-company-personal/deleteCompanyPersonal', p); export const delLinkmanList = p => post('/api-crms/crms-company-personal/deleteCompanyPersonal', p);
// 删除关联人新版
export const NewdelLinkmanList = p => post('/api-crms/crms-company-personal/deleteCompanyPersonal', p); export const NewdelLinkmanList = p => post('/api-crms/crms-company-personal/deleteCompanyPersonal', p);
// 新增关联人
export const newLinkmanList = p => post('/api-crms/crms-company-personal/insertCompanyPersonal', p); export const newLinkmanList = p => post('/api-crms/crms-company-personal/insertCompanyPersonal', p);
// 新增关联人新版
export const newLinkList = p => post('/api-crms/crms-company-personal/insertCompanyPersonal', p); export const newLinkList = p => post('/api-crms/crms-company-personal/insertCompanyPersonal', p);
// 编辑关联人
export const editLinkmanList = p => post('/api-crms/crms-company-personal/updateCompanyPersonal', p); export const editLinkmanList = p => post('/api-crms/crms-company-personal/updateCompanyPersonal', p);
// 编辑关联人新版
export const NeweditLinkmanList = p => post('/api-crms/crms-company-personal/updateCompanyPersonal', p); export const NeweditLinkmanList = p => post('/api-crms/crms-company-personal/updateCompanyPersonal', p);
// 资产部--审核
export const assetAudit = p => post('/api-guarantee/dg-assets-investigation/approvalAssets', p); export const assetAudit = p => post('/api-guarantee/dg-assets-investigation/approvalAssets', p);
// 资产部--查看
export const assetWatch = p => get('/api-guarantee/dg-assets-investigation/assetsDetail', p); export const assetWatch = p => get('/api-guarantee/dg-assets-investigation/assetsDetail', p);
// 资产部--列表
export const assetList = p => post('/api-guarantee/dg-assets-investigation/assetsList', p); export const assetList = p => post('/api-guarantee/dg-assets-investigation/assetsList', p);
// 资产部--指派
export const assetAssign = p => post('/api-guarantee/dg-assets-investigation/assignCorners', p); export const assetAssign = p => post('/api-guarantee/dg-assets-investigation/assignCorners', p);
// 资产部--调查
export const assetSurvey = p => post('/api-guarantee/dg-assets-investigation/investigateAssets', p); export const assetSurvey = p => post('/api-guarantee/dg-assets-investigation/investigateAssets', p);
// 信息部--列表
export const messageList = p => get('/api-guarantee/dg-message-investigation/messageList', p); export const messageList = p => get('/api-guarantee/dg-message-investigation/messageList', p);
// 信息部详情
export const messageDetail = p => get('/api-guarantee/dg-message-investigation/messageDetail', p); export const messageDetail = p => get('/api-guarantee/dg-message-investigation/messageDetail', p);
// 信息部--指派
export const messageAssign = p => post('/api-guarantee/dg-message-investigation/assignCorners', p); export const messageAssign = p => post('/api-guarantee/dg-message-investigation/assignCorners', p);
// 信息部--调查
export const messageSurvey = p => post('/api-guarantee/dg-message-investigation/investigateMessage', p); export const messageSurvey = p => post('/api-guarantee/dg-message-investigation/investigateMessage', p);
// 信息部审核
export const messageAudit = p => post('/api-guarantee/dg-message-investigation/approvalMessage', p); export const messageAudit = p => post('/api-guarantee/dg-message-investigation/approvalMessage', p);
// 合规调查-指派
export const complianceAssign = p => get('/api-guarantee/compliance/investigation/assign', p); export const complianceAssign = p => get('/api-guarantee/compliance/investigation/assign', p);
// 合规-审核
export const complianceAudit = p => post('/api-guarantee/compliance/investigation/check', p); export const complianceAudit = p => post('/api-guarantee/compliance/investigation/check', p);
// 合规-列表
export const complianceList = p => get('/api-guarantee/compliance/investigation/list', p); export const complianceList = p => get('/api-guarantee/compliance/investigation/list', p);
// 合规-查看详情
export const complianceDetail = p => get('/api-guarantee/compliance/investigation/query', p); export const complianceDetail = p => get('/api-guarantee/compliance/investigation/query', p);
// 合规-调查
export const complianceSurvey = p => post('/api-guarantee/compliance/investigation/survey', p); export const complianceSurvey = p => post('/api-guarantee/compliance/investigation/survey', p);
// 工作会-审议
export const workAudit = p => post('/api-guarantee/work/conference/check', p); export const workAudit = p => post('/api-guarantee/work/conference/check', p);
//工作会-所有审核意见
export const workOpinion = p => get('/api-guarantee/work/conference/getAuditOpinion', p); export const workOpinion = p => get('/api-guarantee/work/conference/getAuditOpinion', p);
// 工作会列表
export const workList = p => get('/api-guarantee/work/conference/list', p); export const workList = p => get('/api-guarantee/work/conference/list', p);
// 工作会-查看
export const workDetail = p => get('/api-guarantee/work/conference/query', p); export const workDetail = p => get('/api-guarantee/work/conference/query', p);
// 工作会-评委抽取
export const workExtract = p => post('/api-guarantee/work/conference/theJudgesDrawn', p); export const workExtract = p => post('/api-guarantee/work/conference/theJudgesDrawn', p);
// 贷审会-审议
export const loansAudit = p => post('/api-guarantee/committee/consider/check', p); export const loansAudit = p => post('/api-guarantee/committee/consider/check', p);
// 贷审会-列表
export const loansList = p => get('/api-guarantee/committee/consider/list', p); export const loansList = p => get('/api-guarantee/committee/consider/list', p);
// 贷审会-查看
export const loansDetail = p => get('/api-guarantee/committee/consider/query', p); export const loansDetail = p => get('/api-guarantee/committee/consider/query', p);
// 贷审会--获取抽取的评委
export const loansJudge = p => get('/api-guarantee/committee/consider/theJudgesDrawn', p); export const loansJudge = p => get('/api-guarantee/committee/consider/theJudgesDrawn', p);
/* 业务+担保 上传文件 */
export const guaranteeUploadFile = p => post('/api-guarantee/dg-apply-amount-info/uploadFile', p); export const guaranteeUploadFile = p => post('/api-guarantee/dg-apply-amount-info/uploadFile', p);
/* 业务+担保 删除文件 */
export const guaranteeDeleteFile = p => get('/api-guarantee/dg-apply-amount-info/deleteServerFile', p); export const guaranteeDeleteFile = p => get('/api-guarantee/dg-apply-amount-info/deleteServerFile', p);
//担保函的接口 export const guaranteeLetterList = p => post('/api-guarantee/dg-guarantee-letter-assign-user/guaranteeLetterList', p);
export const guaranteeLetterList = p => post('/api-guarantee/dg-guarantee-letter-assign-user/guaranteeLetterList', p); //担保函列表 export const updateStatus = p => post('/api-guarantee/dg-guarantee-letter-assign-user/updateStatus', p);
export const updateStatus = p => post('/api-guarantee/dg-guarantee-letter-assign-user/updateStatus', p); //用户提交审核意见
// 担保函详情--新增
export const letterDetail = p => get('/api-guarantee/dg-guarantee-letter-assign-user/guaranteeLetterDetail', p); export const letterDetail = p => get('/api-guarantee/dg-guarantee-letter-assign-user/guaranteeLetterDetail', p);
export const paymentList = p => post('/api-guarantee/dg-payment-confirmation-consider/paymentConfirmationList', p);
//回款确认 export const updatePayment = p => post('/api-guarantee/dg-payment-confirmation-consider/updatePaymentConfirmation', p);
export const paymentList = p => post('/api-guarantee/dg-payment-confirmation-consider/paymentConfirmationList', p); //回款确认列表
export const updatePayment = p => post('/api-guarantee/dg-payment-confirmation-consider/updatePaymentConfirmation', p); //更新回款确认
// 回款详情 --新增
export const paymentDetail = p => get('/api-guarantee/dg-payment-confirmation-consider/paymentConfirmationDetail', p); export const paymentDetail = p => get('/api-guarantee/dg-payment-confirmation-consider/paymentConfirmationDetail', p);
export const loanNoticeList = p => post('/api-guarantee/dg-loan-notice/loanNoticeList', p);
//放款通知 export const updateLoanNotice = p => post('/api-guarantee/dg-loan-notice/updateLoanNotice', p);
export const loanNoticeList = p => post('/api-guarantee/dg-loan-notice/loanNoticeList', p); //放款通知列表
export const updateLoanNotice = p => post('/api-guarantee/dg-loan-notice/updateLoanNotice', p); //放款通知确认
// 放款详情--新增
export const loanNoticeDetail = p => get('/api-guarantee/dg-loan-notice/loanNoticeDetail', p); export const loanNoticeDetail = p => get('/api-guarantee/dg-loan-notice/loanNoticeDetail', p);
export const auditProcessList = p => get('/api-guarantee/dg-audit-process/auditProcessList', p);
export const auditProcessPop = p => get('/api-guarantee/dg-audit-process/getProcessId', p);
export const auditProcessList = p => get('/api-guarantee/dg-audit-process/auditProcessList', p);//审核流程进程列表
export const auditProcessPop = p => get('/api-guarantee/dg-audit-process/getProcessId', p);//审核流程进程--弹框
//获取当前用户角色
export const getNowRole = p => get('/api-guarantee/dg-apply-amount-info/getRoles', p); export const getNowRole = p => get('/api-guarantee/dg-apply-amount-info/getRoles', p);
// 获取动态路由权限
export const getPermission = p => get('/api-hrms/hrms/permission/getPermission', p); export const getPermission = p => get('/api-hrms/hrms/permission/getPermission', p);
// 首页的接口
// 当月每天新建审批
export const getNewBusinessCount = p => get('/api-guarantee/guarantee/efficiency/getNewBusinessCount', p); export const getNewBusinessCount = p => get('/api-guarantee/guarantee/efficiency/getNewBusinessCount', p);
// 当天新建审批数量-客户员工区分
export const getTodayBusinessCount = p => get('/api-guarantee/guarantee/efficiency/getTodayBusinessCount', p); export const getTodayBusinessCount = p => get('/api-guarantee/guarantee/efficiency/getTodayBusinessCount', p);
// 今日审批记录--个人中心
export const todayApprovalRecord = p => get('/api-guarantee/dg-audit-process/todayApprovalRecord', p); export const todayApprovalRecord = p => get('/api-guarantee/dg-audit-process/todayApprovalRecord', p);
// 访问记录-列表
export const queryAccessRecords = p => get('/apiHrmsAuth/hrms-access-records-log/queryAccessRecords', p); export const queryAccessRecords = p => get('/apiHrmsAuth/hrms-access-records-log/queryAccessRecords', p);
// 访问次数
export const queryVisitNum = p => get('/apiHrmsAuth/hrms-access-records-log/queryVisitNum', p); export const queryVisitNum = p => get('/apiHrmsAuth/hrms-access-records-log/queryVisitNum', p);
// 今日登录用户总数
export const queryLoginNum = p => get('/apiHrmsAuth/hrms-access-records-log/queryLoginNum', p); export const queryLoginNum = p => get('/apiHrmsAuth/hrms-access-records-log/queryLoginNum', p);
// 登录趋势图
export const queryLoginOnline = p => get('/apiHrmsAuth/hrms-access-records-log/queryLoginOnline', p); export const queryLoginOnline = p => get('/apiHrmsAuth/hrms-access-records-log/queryLoginOnline', p);
// 登录时间段
export const queryLoginOnline2 = p => get('/apiHrmsAuth/hrms-access-records-log/queryLoginOnline2', p); export const queryLoginOnline2 = p => get('/apiHrmsAuth/hrms-access-records-log/queryLoginOnline2', p);
// 业务-导出
export const businessExportList = `${host}/api-guarantee/dg-apply-amount-info/excelExport`; export const businessExportList = `${host}/api-guarantee/dg-apply-amount-info/excelExport`;
// 担保-导出
export const guaranteeExportList = `${host}/api-guarantee/dg-guarantee-assign-user/excelExport`; export const guaranteeExportList = `${host}/api-guarantee/dg-guarantee-assign-user/excelExport`;
// 资产-导出
export const assetExportList = `${host}/api-guarantee/dg-assets-investigation/excelExport`; export const assetExportList = `${host}/api-guarantee/dg-assets-investigation/excelExport`;
// 信息-导出
export const messageExportList = `${host}/api-guarantee/dg-message-investigation/excelExport`; export const messageExportList = `${host}/api-guarantee/dg-message-investigation/excelExport`;
// 合规-导出
export const complianceExportList = `${host}/api-guarantee/compliance/investigation/excelExport`; export const complianceExportList = `${host}/api-guarantee/compliance/investigation/excelExport`;
// 工作会-导出
export const workExportList = `${host}/api-guarantee/work/conference/excelExport`; export const workExportList = `${host}/api-guarantee/work/conference/excelExport`;
// 贷审会-导出
export const loansExportList = `${host}/api-guarantee/committee/consider/excelExport`; export const loansExportList = `${host}/api-guarantee/committee/consider/excelExport`;
export const excelTemplate = `${host}/api-crms/crms/customer/excelTemplate`;
export const excelExport = `${host}/api-crms/crms/customer/excelExport`;
export const excelTemplate = `${host}/api-crms/crms/customer/excelTemplate`; //导出客户模板 export const excelImport = `${host}/api-crms/crms/customer/excelImport`;
export const excelExport = `${host}/api-crms/crms/customer/excelExport`; //导出客户 export const excelExportStaff = `${host}/api-crms/crms/customer/excelExport`;
export const excelImport = `${host}/api-crms/crms/customer/excelImport`; //导入excal export const excelImportStaff = `${host}/api-crms/crms/customer/excelImport`;
export const excelExportLetter = `${host}/api-guarantee/dg-guarantee-letter-assign-user/guaranteeLetterListExport`;
export const excelExportStaff = `${host}/api-crms/crms/customer/excelExport`; //导出客户 export const exportGuaranteeLetter = `${host}/api-guarantee/dg-guarantee-letter-assign-user/exportGuaranteeLetter`;
export const excelImportStaff = `${host}/api-crms/crms/customer/excelImport`; //导入员工excal export const excelExportPayment = `${host}/api-guarantee/dg-payment-confirmation-consider/paymentConfirmationListExport`;
export const loanNoticeListExport = `${host}/api-guarantee/dg-loan-notice/loanNoticeListExport`;
export const exportLoanNotice = `${host}/api-guarantee/dg-loan-notice/exportLoanNotice`;
export const excelExportLetter = `${host}/api-guarantee/dg-guarantee-letter-assign-user/guaranteeLetterListExport`; //导出担保函列表
export const exportGuaranteeLetter = `${host}/api-guarantee/dg-guarantee-letter-assign-user/exportGuaranteeLetter`; //导出担保函
export const excelExportPayment = `${host}/api-guarantee/dg-payment-confirmation-consider/paymentConfirmationListExport`; //导出回款确认列表数据
export const loanNoticeListExport = `${host}/api-guarantee/dg-loan-notice/loanNoticeListExport`; //导出放款通知列表数据
export const exportLoanNotice = `${host}/api-guarantee/dg-loan-notice/exportLoanNotice`; //导出放款通知

@ -1,4 +1,5 @@
function fMoney(s, n) { export default {
fMoney:function(s, n) {
n = n > 0 && n <= 20 ? n : 2; n = n > 0 && n <= 20 ? n : 2;
s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + ''; s = parseFloat((s + '').replace(/[^\d\.-]/g, '')).toFixed(n) + '';
let l = s let l = s
@ -18,9 +19,9 @@ function fMoney(s, n) {
'.' + '.' +
r r
); );
} },
function toDateTime(date, time) { toDateTime:function(date, time) {
if (!date) return ''; if (!date) return '';
date = date.toString(); date = date.toString();
time = time ? time.toString() : ''; time = time ? time.toString() : '';
@ -33,21 +34,20 @@ function toDateTime(date, time) {
str += ` ${time.substr(0, 2)}:${time.substr(2, 2)}:${time.substr(4, 2)}`; str += ` ${time.substr(0, 2)}:${time.substr(2, 2)}:${time.substr(4, 2)}`;
} }
return str; return str;
} },
function fMoney2(m) { fMoney2:function (m) {
return parseFloat(m).toFixed(2); return parseFloat(m).toFixed(2);
} },
// 数字转换大写中文 // 数字转换大写中文
function fMoney3(money) { fMoney3:function (money) {
//汉字的数字 //汉字的数字
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
let cnIntLast = '万'; //整数无小数点的单位 let cnIntLast = '万'; //整数无小数点的单位
let int; //金额整数部分 let int; //金额整数部分
let dot; //金额小数部分 let dot; //金额小数部分
@ -109,17 +109,17 @@ function fMoney3(money) {
chineseStr += cnInteger; chineseStr += cnInteger;
// } // }
return chineseStr; return chineseStr;
} },
function orderreleaseType(sts) { orderreleaseType:function (sts) {
const status = { const status = {
'0': '手动发布', '0': '手动发布',
'1': '定时发布' '1': '定时发布'
}; };
return status[sts] || '未知状态'; return status[sts] || '未知状态';
} },
function auditStatus(sts) { auditStatus:function (sts) {
const status = { const status = {
'1': { text: '审核中', color: '#FF9784' }, '1': { text: '审核中', color: '#FF9784' },
'2': { text: '已审核', color: '#46C435' }, '2': { text: '已审核', color: '#46C435' },
@ -127,9 +127,9 @@ function auditStatus(sts) {
'4': { text: '已驳回', color: '#FF9784' } '4': { text: '已驳回', color: '#FF9784' }
}; };
return status[sts] || { text: '未知状态', color: '#666' }; return status[sts] || { text: '未知状态', color: '#666' };
} },
function businessType(sts) { businessType:function (sts) {
const status = { const status = {
'0': { text:'已撤销', color: '#FF9784' }, '0': { text:'已撤销', color: '#FF9784' },
'1': { text:'进行中', color: '#FF9784' }, '1': { text:'进行中', color: '#FF9784' },
@ -137,9 +137,9 @@ function businessType(sts) {
'3': { text:'已否决', color: '#FF9784' } '3': { text:'已否决', color: '#FF9784' }
}; };
return status[sts] || { text: '未知状态', color: '#666' }; return status[sts] || { text: '未知状态', color: '#666' };
} },
function operationType(sts) { operationType:function (sts) {
const status = { const status = {
'0': { text:'已发起', color: '#46C435' }, '0': { text:'已发起', color: '#46C435' },
'1': { text:'待处理', color: '#FF9784' }, '1': { text:'待处理', color: '#FF9784' },
@ -148,18 +148,18 @@ function operationType(sts) {
'4': { text:'待定义', color: '#FF9784' } '4': { text:'待定义', color: '#FF9784' }
}; };
return status[sts] || { text: '未知状态', color: '#666' }; return status[sts] || { text: '未知状态', color: '#666' };
} },
function removeByValue(arr, val) { removeByValue:function (arr, val) {
for (var i = 0; i < arr.length; i++) { for (var i = 0; i < arr.length; i++) {
if (arr[i] == val) { if (arr[i] == val) {
arr.splice(i, 1); arr.splice(i, 1);
break; break;
} }
} }
} },
function paymentStatus(sts) { paymentStatus:function (sts) {
const status = { const status = {
'1': '还款中', '1': '还款中',
'2': '已逾期', '2': '已逾期',
@ -167,9 +167,9 @@ function paymentStatus(sts) {
'4': '已结项' '4': '已结项'
}; };
return status[sts] || '未知状态'; return status[sts] || '未知状态';
} },
function stcStatus(sts) { stcStatus:function (sts) {
const status = { const status = {
'1': '待还款', '1': '待还款',
'2': '已还款', '2': '已还款',
@ -177,10 +177,20 @@ function stcStatus(sts) {
'4': '未到期' '4': '未到期'
}; };
return status[sts] || '未知状态'; return status[sts] || '未知状态';
} },
areaStr:function(val){// 区域
// 判断对象值全为空 const str = {
function objectValueAllEmpty(object) { 0:"萨尔图区",
1:"高新区",
2:"龙凤区",
3:"让胡同路区",
4:"大同区",
5:"肇县区",
}
return str[+val]
},
// 判断对象值全为空
objectValueAllEmpty:function (object) {
var isEmpty = true; var isEmpty = true;
Object.keys(object).forEach(function(x) { Object.keys(object).forEach(function(x) {
if (object[x] != null && object[x] != '') { if (object[x] != null && object[x] != '') {
@ -192,10 +202,10 @@ function objectValueAllEmpty(object) {
return true; return true;
} }
return false; return false;
} },
// 防抖 // 防抖
function debounce(func, wait) { debounce:function (func, wait=500) {
let timer; let timer;
return function() { return function() {
let context = this; let context = this;
@ -207,9 +217,23 @@ function debounce(func, wait) {
}, wait); }, wait);
if (callNow) func.apply(context, args); if (callNow) func.apply(context, args);
}; };
} },
// 获取出生日期 // 节流函数
function getBirth(idCard) { throttle:function (fn,wait=500){
var timer = null;
return function(){
var context = this;
var args = arguments;
if(!timer){
timer = setTimeout(function(){
fn.apply(context,args);
timer = null;
},wait)
}
}
},
// 获取出生日期
getBirth:function(idCard) {
var birthday = ''; var birthday = '';
if (idCard != null && idCard != '') { if (idCard != null && idCard != '') {
if (idCard.length == 15) { if (idCard.length == 15) {
@ -221,9 +245,9 @@ function getBirth(idCard) {
//通过正则表达式来指定输出格式为:1990-01-01 //通过正则表达式来指定输出格式为:1990-01-01
} }
return birthday; return birthday;
} },
// 获取年龄 // 获取年龄
function getAge(idCard) { getAge:function (idCard) {
var birthday = ''; var birthday = '';
if (idCard != null && idCard != '') { if (idCard != null && idCard != '') {
if (idCard.length == 15) { if (idCard.length == 15) {
@ -235,10 +259,10 @@ function getAge(idCard) {
birthday = date.getFullYear() - birthday birthday = date.getFullYear() - birthday
} }
return birthday; return birthday;
} },
// 获取性别 // 获取性别
function getSex(idCard) { getSex:function (idCard) {
var sexStr = ''; var sexStr = '';
if (parseInt(idCard.slice(-2, -1)) % 2 == 1) { if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
sexStr = 1;//男 sexStr = 1;//男
@ -246,10 +270,10 @@ function getSex(idCard) {
sexStr = 0;//女 sexStr = 0;//女
} }
return sexStr; return sexStr;
} },
// 下载视频 // 下载视频
function downMp4(url,fileName){ downMp4:function (url,fileName){
// 可换成axios,项目没封装就用原生请求 // 可换成axios,项目没封装就用原生请求
// 生成拼接链接 // 生成拼接链接
// 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域 // 传入文件名和路径,下载图片视频,支持跨域,a标签加download不支持跨域
@ -264,23 +288,16 @@ function downMp4(url,fileName){
a.click() a.click()
} }
x.send() x.send()
} },
export default {
fMoney, exportFile(url,name){// 导出
fMoney2, let downloadElement = document.createElement('a');
fMoney3, downloadElement.href = url;
toDateTime, downloadElement.download = name||'导出列表文件';
orderreleaseType, document.body.appendChild(downloadElement);
auditStatus, downloadElement.click();
businessType, document.body.removeChild(downloadElement);
operationType, }
removeByValue,
objectValueAllEmpty,
debounce,
getBirth,
getSex,
getAge,
paymentStatus,
stcStatus,
downMp4
}; };

@ -5,44 +5,28 @@ 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
// 请求超时时间 // 请求超时时间
axios.defaults.timeout = 30000; axios.defaults.timeout = 30000;
// post请求头 // post请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
// 请求拦截器 // 请求拦截器
axios.interceptors.request.use(config => { axios.interceptors.request.use(config => {
// const token = store.state.token;
// token && (config.headers.Authorization = token);
// return config;
// config.withCredentials= true
if (sessionStorage.getItem('token')) { if (sessionStorage.getItem('token')) {
// 存在将token写入 request header
config.headers.token = `${sessionStorage.getItem('token')}`; config.headers.token = `${sessionStorage.getItem('token')}`;
} }
return config; return config;
}, err => { }, err => {
// return Promise.error(error);
// Message.error({
// message: '退出登陆',
// onClose: function () {
// router.push({name: 'login'});
// }
// })
// console.log(err,'错误捕获61');
return Promise.reject(err); return Promise.reject(err);
}) })
// 响应拦截器 // 响应拦截器
axios.interceptors.response.use( axios.interceptors.response.use(
response => { response => {
// post请求莫得code,直接以文件流形式
if (response.data.code === 10000) { if (response.data.code === 10000) {
return Promise.resolve(response); return Promise.resolve(response);
} else } else
@ -51,7 +35,6 @@ axios.interceptors.response.use(
// 清除token // 清除token
sessionStorage.removeItem('token'); sessionStorage.removeItem('token');
localStorage.removeItem('token') localStorage.removeItem('token')
// store.commit('loginSuccess', null);
// 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 // 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面
setTimeout(() => { setTimeout(() => {
router.replace({ router.replace({
@ -72,6 +55,7 @@ axios.interceptors.response.use(
// 服务器状态码不是200的情况 // 服务器状态码不是200的情况
error => { error => {
// console.log(error,'错误打印--http.js -98行') // console.log(error,'错误打印--http.js -98行')
console.log('报错')
if(error.response){ if(error.response){
if (error.response.status) { if (error.response.status) {
switch (error.response.status) { switch (error.response.status) {

Loading…
Cancel
Save