调解成功率

This commit is contained in:
liuxi 2024-12-30 17:59:57 +08:00
parent 327b218be9
commit 26b45fcfac
8 changed files with 203 additions and 46 deletions

View File

@ -489,7 +489,9 @@ html{
.height-138{
height: $height138;
}
.line-height-10{
line-height: 10px;
}
.line-height-20{
line-height: 20px;
}

View File

@ -56,10 +56,10 @@
@keydown.enter.native="handleSearch"
class="width100">
<el-option
v-for="item in caseStatusData"
:key="item.code"
:label="item.desc"
:value="item.code">
v-for="item in MediateUserList"
:key="item.id"
:label="item.realName"
:value="item.id">
</el-option>
</el-select>
</div>
@ -352,6 +352,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import smapi from "@/services/systemManage";
import { values } from "lodash";
export default {
components: {
@ -420,6 +421,7 @@ import { values } from "lodash";
addCaseDialog:null,//
editCaseDrawer:null,//
caseStatusData:[],
MediateUserList:[]
}
},
@ -441,6 +443,7 @@ import { values } from "lodash";
if (this.$route.query.pkgName != undefined) {
this.queryParam.pkgName = this.$route.query.pkgName;
}
this.getMediateUserList()
this.getCaseInfoList(1)
},
computed:{
@ -459,6 +462,18 @@ import { values } from "lodash";
jumpUrl (url) {
this.$router.push(url);
},
//
getMediateUserList(){
let deptId = ''
if(JSON.parse(sessionStorage.getItem('userInfo'))){
deptId = JSON.parse(sessionStorage.getItem('userInfo')).deptId
}
smapi.getUserByDeptList({ids:[deptId]}).then(res => {
if (!res.code) {
this.MediateUserList = res
}
})
},
//
handleCheckAllChange(value){

View File

@ -64,9 +64,13 @@
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" width="200" show-overflow-tooltip ></el-table-column>
<el-table-column prop="respondent" label="被申请人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planType" label="还款方案" show-overflow-tooltip ></el-table-column>
<el-table-column prop="deadline" label="还款截止日期" show-overflow-tooltip ></el-table-column>
<el-table-column prop="payableAmount" label="应还金额" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planType" label="还款计划" show-overflow-tooltip >
<template slot-scope="scope">
<span >一次性还款{{ scope.row.createAt | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<!-- <el-table-column prop="deadline" label="还款截止日期" show-overflow-tooltip ></el-table-column>
<el-table-column prop="payableAmount" label="应还金额" show-overflow-tooltip ></el-table-column> -->
<el-table-column prop="actualPayDate" label="实际还款日期" show-overflow-tooltip ></el-table-column>
<el-table-column prop="amount" label="实际还款金额" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="状态" show-overflow-tooltip ></el-table-column>

View File

@ -38,6 +38,10 @@
<div class="f16 color-text-regular">密码管理</div>
<div class="f16 color-text-secondary">修改密码<i class="el-icon-arrow-right"></i></div>
</div>
<div class="flex-row justify-content-between align-items-center border-t-solid-lighter-1 p-16 cursor-pointer" @click="handleChangePersonal">
<div class="f16 color-text-regular">个人信息</div>
<div class="f16 color-text-secondary">查看<i class="el-icon-arrow-right"></i></div>
</div>
<div class="border-t-solid-lighter-1 p-16 f16 color-1960F4 text-center cursor-pointer" @click="handleLoginOut()">退出登录</div>
</div>
</el-collapse-transition>
@ -99,11 +103,91 @@
<el-button type="primary" @click="handleSubmit()"> </el-button>
</span>
</el-dialog>
<!-- 个人信息 -->
<el-dialog
title="个人信息"
:visible="changePersonalVisible"
width="30%"
:before-close="handleClose"
>
<div class="p-16">
<el-form ref="ruleForm"
:model="PersonalInfo"
:rules="rulesClient"
label-width="80px"
class="demo-ruleForm">
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="姓名">
<el-input
v-model.trim="PersonalInfo.realName"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="证件号码">
<el-input
v-model.trim="PersonalInfo.pwd"
disabled
maxlength="18"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="手机号码">
<el-input
v-model.trim="PersonalInfo.phone"
placeholder="请输入手机号码"
clearable
maxlength="11"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="回呼电话">
<el-input
v-model.trim="PersonalInfo.replyPhone"
placeholder="请输入回呼电话"
clearable
maxlength="11"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="8">
<el-form-item v-if="PersonalInfo.signPic !=''" label="个人签名">
<img :src="signUrl" width="125px" height="125px" />
<span class="cursor-pointer color-86909C"><i class="el-icon-refresh"></i> 重新签名</span>
</el-form-item>
<el-form-item v-else label="个人签名">
<img :src="signUrl" width="125px" height="125px"/>
</el-form-item>
</el-col>
<el-col v-if="PersonalInfo.signPic ==''" :span="16" class="line-height-10 color-86909C">
请使用微信扫码完成签字及刷脸认证
<p>请保证个人信息中的姓名及身份证号信息是本人的真实信息</p>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handlePersonalSubmit()"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from "@/services/systemManage";
export default {
components: {
SideMenu: () => import('./SideMenu'),
@ -131,12 +215,22 @@
return{
showInfo:false,
changePasswordVisible:false,
changePersonalVisible:false,
strKey: 'trydotec',
passwordInfo:{
oldPwd:'',//
pwd:'',//
confirmPwd:'',//
},
PersonalInfo:{
realName:'',
phone:'',
id:'',
signPic:'',
replyPhone:'',
cardNo:''
},
signUrl:'',
rulesClient: {
oldPwd: [
{ required: true, message: '请输入旧密码', trigger: 'change',},
@ -161,7 +255,31 @@
// console.log(this.userInfo.showName)
},
methods: {
//
handleChangePersonal(){
api.getUserById({id:this.userInfo.id}).then(res => {
this.PersonalInfo.id = res.id
this.PersonalInfo.realName = res.realName
// this.PersonalInfo.realName = res.realName
this.PersonalInfo.phone = res.phone
this.PersonalInfo.signPic = res.signPic
this.PersonalInfo.replyPhone = res.replyPhone
this.PersonalInfo.cardNo = res.cardNo
})
api.getQrCode().then(res => {
this.signUrl = 'data:image/jpg;base64,'+res
})
this.changePersonalVisible =true
this.showInfo = false
},
handlePersonalSubmit(){
api.updateUserById(this.PersonalInfo).then(res => {
this.$message.success("修改成功")
this.handleClose()
})
},
//
handleChangePassword(){
this.changePasswordVisible =true
@ -200,6 +318,7 @@
//
handleClose(){
this.changePasswordVisible = false
this.changePersonalVisible = false
},
// 退
handleLoginOut(){

View File

@ -32,7 +32,7 @@
<el-col :span="6">
<div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">金融机构名称</span>
<el-input v-model.trim="queryParam.financialOrgName"
<el-input v-model.trim="queryParam.financiaOrgName"
clearable placeholder="请输入金融机构名称"
@keydown.enter.native="handleSearch">
</el-input>
@ -46,10 +46,10 @@
@keydown.enter.native="handleSearch"
class="width100">
<el-option
v-for="item in caseStatusData"
:key="item.code"
:label="item.desc"
:value="item.code">
v-for="item in MediateUserList"
:key="item.id"
:label="item.realName"
:value="item.id">
</el-option>
</el-select>
</div>
@ -57,7 +57,7 @@
<el-col :span="6">
<div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">被申请人姓名</span>
<el-input v-model.trim="queryParam.creditorName"
<el-input v-model.trim="queryParam.respondent"
clearable placeholder="请输入被申请人姓名"
@keydown.enter.native="handleSearch">
</el-input>
@ -69,7 +69,7 @@
<el-col :span="6">
<div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">被申请人电话</span>
<el-input v-model.trim="queryParam.creditorPhone"
<el-input v-model.trim="queryParam.respondentPhone"
clearable placeholder="请输入被申请人电话"
@keydown.enter.native="handleSearch"
maxlength="11"
@ -80,7 +80,7 @@
<el-col :span="6">
<div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">被申请人证件号</span>
<el-input v-model.trim="queryParam.creditorCode"
<el-input v-model.trim="queryParam.respondentIdcard"
clearable placeholder="请输入被申请人证件号"
@keydown.enter.native="handleSearch"
maxlength="11"
@ -130,17 +130,17 @@
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="entrustingAgencyName" label="金融机构名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="financialOrgName" label="金融机构名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="被申请人姓名" show-overflow-tooltip ></el-table-column>
<el-table-column prop="respondent" label="被申请人姓名" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="案件总金额" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="案件逾期天数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="回款金额" show-overflow-tooltip ></el-table-column>
<el-table-column prop="moneyAmount" label="案件总金额" show-overflow-tooltip ></el-table-column>
<el-table-column prop="overdueTimes" label="案件逾期天数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="amount" label="回款金额" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="回款时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="上传回款凭证时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="所属调解员" show-overflow-tooltip ></el-table-column>
<el-table-column prop="pkgName" label="操作" width="200" >
<el-table-column prop="createAt" label="上传回款凭证时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="mediatorName" label="所属调解员" show-overflow-tooltip ></el-table-column>
<el-table-column label="操作" width="200" >
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" class="case-btn" @click="handleCaseShow(scope)">查看凭证</el-button>
@ -177,6 +177,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import smapi from "@/services/systemManage";
export default {
components: {
showFile: () => import('../../components/showFile.vue'),//
@ -193,32 +194,23 @@ import api from "@/services/caseManagement";
activeUsage: '',
queryParam: {
pkgId:'',
financialOrgName:'',//
financiaOrgName:'',//
caseNo: '',//
productTypeId: '',//id
caseStatus: '',//
creditorName:'',//
creditorPhone:'',//
creditorCode:'',
respondent:'',//
respondentPhone:'',//
respondentIdcard:'',
endTime: '',//
beginTime:'',//
deptId:'',//id
startTime:'',//
mediatorId:'',//id
current:1,
size:10,
dataAuthUserId:'',//id
dataAuthDeptId:'',//id
mediatorId:'',//id
caseStatus:null,//
mediateStatus:null,//
dispatch:null,//
labels:null,//
},
usageOption: ['今日','昨日', '近一周', '近一月', '近半年', '近一年'],
tableData: [],
total:0,
caseStatusData:[],
MediateUserList:[],
}
},
@ -231,6 +223,8 @@ import api from "@/services/caseManagement";
if (this.$route.query.dataKey != undefined) {
this.queryParam.pkgId = this.$route.query.pkgId;
}
this.getMediateUserList()
this.getCaseInfoList(1)
},
computed:{
@ -254,17 +248,27 @@ import api from "@/services/caseManagement";
},
handleUpdate(){},
//
getMediateUserList(){
let deptId = ''
if(JSON.parse(sessionStorage.getItem('userInfo'))){
deptId = JSON.parse(sessionStorage.getItem('userInfo')).deptId
}
smapi.getUserByDeptList({ids:[deptId]}).then(res => {
if (!res.code) {
this.MediateUserList = res
}
})
},
//
getCaseInfoList(val){
this.queryParam.current = val
api.getCaseInfoList(this.queryParam).then(res => {
this.queryParam.startTime = this.queryParam.beginTime
api.gettraceProof_page(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
// enabledDataList
this.enabledDataList = this.tableData.filter(v=>!v.disabled)
}
})
},

View File

@ -272,7 +272,6 @@
}
},
mediation_success_rate:{caseTotal:0,mediateSuccess:0,mediateFail:0},
};
},
watch: {

View File

@ -136,6 +136,10 @@ const caseManagementApi = {
gettraceProof_cancel: data => {
return service.service.post(`${apiAdmin}api/trace/traceProof/cancel`, data)
},
// 还款凭证分页列表
gettraceProof_page: data => {
return service.service.post(`${apiAdmin}api/trace/traceProof/page`, data)
},
// 短信模板

View File

@ -36,6 +36,16 @@ const systemLogApi = {
getUserById: data => {
return service.service.post(`${apiAdmin}system/user/getUserById`, data)
},
// 获取个人二维码
getQrCode: data => {
return service.service.get(`${apiAdmin}system/user/getQrCode`, data)
},
// 根据部门id列表查看用户列表
getUserByDeptList: data => {
return service.service.post(`${apiAdmin}system/user/getUserByDeptList`, data)
},
//========================end::用户管理======================================
//========================start::角色相关======================================