From 2872fe834c2666e26fe19295a95d7d5cc0669f07 Mon Sep 17 00:00:00 2001 From: liuxi <357439530@qq.com> Date: Tue, 21 Jan 2025 16:59:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9E=E7=BB=93=E5=8F=8A=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/MediationRoom.vue | 25 +- src/pages/workbench/case-manage/index.vue | 558 +++++++++++------- src/pages/workbench/index.vue | 548 ++++++++++------- 3 files changed, 708 insertions(+), 423 deletions(-) diff --git a/src/pages/mediation-page/components/MediationRoom.vue b/src/pages/mediation-page/components/MediationRoom.vue index 75fb92c..4832362 100644 --- a/src/pages/mediation-page/components/MediationRoom.vue +++ b/src/pages/mediation-page/components/MediationRoom.vue @@ -205,7 +205,7 @@
类案
-
+
办结
@@ -571,16 +571,31 @@ export default { }).then(() => { if(!this.$clickThrottle()) { return }//防止重复点击 api.updateResultStatus(data).then(res => { - this.getCaseInfoById() this.$message({message: '案件标记成功', type: "success",customClass:'messageZindex'}) - thiis.getCaseInfoById() + this.$refs.layoutContent.getCaseInfoById(); }) }).catch(() => {}); + }, + // 办结 + async handleChangeCaseStatus(){ + let data={ + id:this.caseId, + caseStatus:2 + } + this.$confirm("请确定是否将案件办结?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning", + }).then(() => { + if(!this.$clickThrottle()) { return }//防止重复点击 + api.updateResultStatus(data).then(res => { + this.$message({message: '案件办结成功', type: "success",customClass:'messageZindex'}) + }) + }).catch(() => {}); + }, - - }, async callingInfo() { try { let res = await api.callingInfo({}) diff --git a/src/pages/workbench/case-manage/index.vue b/src/pages/workbench/case-manage/index.vue index 66cf852..d33982d 100644 --- a/src/pages/workbench/case-manage/index.vue +++ b/src/pages/workbench/case-manage/index.vue @@ -6,112 +6,113 @@ 你好,{{userInfo.realName || userInfo.showName ||'-'}}
-
-
- 案件进展情况 - - - - - - +
+
+
+ 案件进展情况 + + + + + + +
+
+
+ +

案件总量

+

{{caseprogressObj.caseTotal}}

+
+ +

已办结案件

+

{{caseprogressObj.finishTotal}}

+
+ +

未触达

+

{{caseprogressObj.notReachTotal}}

+
+ +

调解中

+

{{caseprogressObj.mediatingTotal}}

+
+ +

调解成功

+

{{caseprogressObj.mediateSuccess}}

+
+ +

已签署协议

+

{{caseprogressObj.signTotal}}

+
+ +

已司法确认

+

{{caseprogressObj.judicialTotal}}

+
+ +

已赋强公证

+

{{caseprogressObj.notarizationTotal}}

+
+
+
-
-
- -

案件总量

-

{{caseprogressObj.caseTotal}}

-
- -

已办结案件

-

{{caseprogressObj.finishTotal}}

-
- -

未触达

-

{{caseprogressObj.notReachTotal}}

-
- -

调解中

-

{{caseprogressObj.mediatingTotal}}

-
- -

调解成功

-

{{caseprogressObj.mediateSuccess}}

-
- -

已签署协议

-

{{caseprogressObj.signTotal}}

-
- -

已司法确认

-

{{caseprogressObj.judicialTotal}}

-
- -

已赋强公证

-

{{caseprogressObj.notarizationTotal}}

-
+
+
+ 本人触达率 +
+
+
+
+ +
+ +

0

+

触达率0%

+
+
+
-
-
- 待办案件跟进状态 +
+ -
-
- {{statisticCasesData.todayCasesToFollowUp}}今日待跟进案件 +
-
-
- 调解成功率 -
- - - - - - -
-
-
-
-
- -
- {{ (mediation_success_rate.mediateSuccess/mediation_success_rate.caseTotal).toFixed(2) }} % - 0 % -
- -
-
事项追踪 @@ -143,6 +144,41 @@
+ +
+
+ 调解成功率 +
+ + + + + + +
+
+
+
+
+ +
+ {{ (mediation_success_rate.mediateSuccess/mediation_success_rate.caseTotal).toFixed(2) }} % + 0 % +
+ +
+
+
@@ -265,6 +301,8 @@ this.getCaseapkList() this.getstatisticcases() this.getstatistic_trace() + this.ReachrateCharts() + this.CaserefundCharts() }, methods: { @@ -313,49 +351,6 @@ } }) }, - - - - // 导入 - handleImport(){ - this.importCaseDialog={ - title:'批量导入案件', - } - }, - // 案件分配 - handleCaseAllocation(row){ - if((row.caseTotal - row.assignTotal) <= 0) - { - this.$message({ - showClose: true, - message: '该案件包没有待分配的案件!', - type: 'warning' - }); - return false - } - - - this.caseAllocationDialog={ - title:'案件分配', - ObjectInfo:row - } - }, - // 单条删除 - handleDelete(row){ - this.$confirm("请确定是否删除此条数据?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning", - }).then(() => { - if(!this.$clickThrottle()) { return }//防止重复点击 - pkapi.CasePkgdeleteById({id:row.id}).then((res) => { - - this.$message.success("删除成功"); - this.getCaseInfoList(1) - - }); - }).catch(() => {}); - }, SuccessRateChange(){ this.drawCharts() }, @@ -387,7 +382,7 @@ series: [ { type: 'pie', - radius: ['40%', '70%'], + radius: ['60%', '85%'], avoidLabelOverlap: false, label: { show: false, @@ -413,6 +408,109 @@ _that.myEcharts.setOption(option, true); }, + + // 本人触达率 + async ReachrateCharts () { + if (this.myEchartsReachrate) { + this.myEchartsReachrate.clear(); + } + this.myEchartsReachrate = this.$echarts.init( + document.getElementById("echartsReachrate") + ); + let _that = this; + var option = { + tooltip: { + trigger: "item", + axisPointer: { + type: "shadow", + }, + textStyle: { + fontSize: 22, + }, + }, + legend: { + top: "5%", + left: "center", + show: false, //取消显示图例 + }, + series: [ + { + type: 'pie', + radius: ['60%', '85%'], + avoidLabelOverlap: false, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: false, //hover圆环中的列子 + fontSize: 40, + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 0, name: '未触达债务人数',itemStyle:{color:'#E1EDF4'} }, + { value: 0, name: '已触达债务人数' ,itemStyle:{color:'#E4F3CE'}}, + ] + } + ] + }; + _that.myEchartsReachrate.setOption(option, true); + + }, + // 预约回款情况 + async CaserefundCharts () { + let case_rank_rate = [0,0,0,0,0,0,0] + if (this.myEchartsCaseRefund) { + this.myEchartsCaseRefund.clear(); + } + this.myEchartsCaseRefund = this.$echarts.init( + document.getElementById("echartsCaserefund") + ); + let _that = this; + var option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + xAxis: { + type: 'category', + data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] + }, + yAxis: { + type: 'value' + }, + grid: { + left: '2%', + right: '2%', + bottom: '3%', + containLabel: true + }, + legend: {}, + series: [ + { + data: [120, 200, 150, 80, 70, 110, 130], + type: 'bar', + name:'预约回款金额', + color:'#FBA440' + }, + { + data: [120, 200, 150, 80, 70, 110, 130], + type: 'bar', + name:'回款金额', + color:'#4091FB' + } + ] + }; + _that.myEchartsCaseRefund.setOption(option, true); + + }, }, }; @@ -439,7 +537,7 @@ padding: 20px; .case-title{ height: 60px; - padding-top: 10px; + // padding-top: 10px; font-size: 18px; color:#1D2129; font-weight: 500; @@ -470,79 +568,123 @@ } .case-pro1{width: 155px;height: 105px;} } -.casework2{ - background-color: #E1EDF4; - min-height:496px; - margin:4px 0 0 0; - width: calc(100% - 830px); - padding: 18px; - color: #4E5969; +.casework-1{ + background-color: #fff; + border-radius: 8px; + margin-top: 15px; + .case-pk-title{ span:first-child{ font-size: 18px; color:#1D2129; font-weight: 500; } - .case-pk-btn{ - width: 90px; - font-size: 14px; - text-align: center; - line-height: 30px; - display: inline-block; - cursor: pointer; - - } + } - .case-follow-cont{ - .donotfollowup1{ - background:url(../../../assets/image/workbench/donotfollowup1.png) no-repeat; - background-size: 100% 100%; - width: calc(50% - 10px); - height: 400px; - padding-top: 140px; + .case-pk-cont{ + padding: 10px 0; + position: relative; + .resultplan{ + color: #86909C; + font-size: 16px; + position: absolute; + left: 65px; + top: 110px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 125px; text-align: center; - float: left; - margin-right: 10px; - margin-top: 20px; - } - .donotfollowup2{ - background:url(../../../assets/image/workbench/donotfollowup2.png) no-repeat; - background-size: 100% 100%; - width: calc(50% - 10px); - height: 400px; - padding-top: 140px; - text-align: center; - float: left; - margin-left: 10px; - margin-top: 20px; - } - .donotfollowup3{ - background:url(../../../assets/image/workbench/donotfollowup3.png) no-repeat; - background-size: 100% 100%; - width: calc(50% - 10px); - height: 400px; - padding-top: 140px; - text-align: center; - float: left; - margin-right: 10px; - margin-top: 20px; - } - .donotfollowup4{ - background:url(../../../assets/image/workbench/donotfollowup4.png) no-repeat; - background-size: 100% 100%; - width: calc(50% - 10px); - height: 400px; - padding-top: 140px; - text-align: center; - float: left; - margin-left: 10px; - margin-top: 20px; + p{padding: 0;margin: 0;} } + } +} +.casework2{ + width: calc(100% - 830px); + .casework2-1{ + background-color: #E1EDF4; + min-height:496px; + margin:4px 0 0 0; + + padding: 18px; + color: #4E5969; + + + .case-pk-title{ + span:first-child{ + font-size: 18px; + color:#1D2129; + font-weight: 500; + } + .case-pk-btn{ + width: 90px; + font-size: 14px; + text-align: center; + line-height: 30px; + display: inline-block; + cursor: pointer; + + } + } + .case-follow-cont{ + padding: 15px 0 30px 0; + .donotfollowup1{ + background:url(../../../assets/image/workbench/donotfollowup1.png) no-repeat; + background-size: 100% 100%; + width: calc(50% - 10px); + height: 462px; + padding-top: 140px; + text-align: center; + float: left; + margin-top: 20px; + } + .donotfollowup2{ + background:url(../../../assets/image/workbench/donotfollowup2.png) no-repeat; + background-size: 100% 100%; + width: calc(50% - 10px); + height: 462px; + padding-top: 140px; + text-align: center; + float: left; + margin-left: 20px; + margin-top: 20px; + } + .donotfollowup3{ + background:url(../../../assets/image/workbench/donotfollowup4.png) no-repeat; + background-size: 100% 100%; + width: calc(50% - 10px); + height: 462px; + padding-top: 140px; + text-align: center; + float: left; + margin-left: 20px; + margin-top: 20px; + } + .donotfollowup4{ + background:url(../../../assets/image/workbench/donotfollowup3.png) no-repeat; + background-size: 100% 100%; + width: calc(50% - 10px); + height: 462px; + padding-top: 140px; + text-align: center; + float: left; + margin-left: 20px; + margin-top: 20px; + } + } + - + + } + .casework2-2{ + background-color: #fff; + border-radius: 8px; + margin-top: 15px; + } } .casework3{ min-height:496px; @@ -550,6 +692,7 @@ margin:4px 0 0 0; color: #4E5969; .pie-chart{ + margin-top: 18px; padding: 18px; background-color: #fff; border-radius: 8px; @@ -563,13 +706,13 @@ } .case-pk-cont{ - padding: 20px 0; + padding: 10px 0 10px 0; position: relative; .resultplan{ font-size: 32px; position: absolute; left: 115px; - top: 130px; + top: 100px; display: flex; flex-direction: column; justify-content: center; @@ -582,7 +725,6 @@ } .item-trace{ - margin-top: 20px; padding: 18px; background-color: #fff; border-radius: 8px; @@ -595,7 +737,7 @@ } .case-pk-cont{ - padding: 10px 0 0px 0; + padding: 21px 0 0px 0; position: relative; .resultplan{ font-size: 32px; @@ -610,11 +752,11 @@ text-align: center; } div{ - margin-top:5px; - margin-bottom:10px; + margin-top:10px; + margin-bottom:15px; color: #4E5969; background-color:#F7F8FA ; - padding: 12px; + padding: 14px 12px; border-radius: 2px; a{ font-weight: 600; diff --git a/src/pages/workbench/index.vue b/src/pages/workbench/index.vue index 33380c2..41d8c5c 100644 --- a/src/pages/workbench/index.vue +++ b/src/pages/workbench/index.vue @@ -6,153 +6,144 @@ 你好,{{userInfo.realName || userInfo.showName ||'-'}}
-
-
- 案件进展情况 - - - - - - -
-
-
- -

案件总量

-

{{caseprogressObj.caseTotal}}

-
- -

案件待分

-

{{caseprogressObj.unassignTotal}}

-
- -

未触达

-

{{caseprogressObj.notReachTotal}}

-
- -

调解中

-

{{caseprogressObj.mediatingTotal}}

-
- -

调解成功

-

{{caseprogressObj.mediateSuccess}}

-
- -

已签署协议

-

{{caseprogressObj.signTotal}}

-
- -

已司法确认

-

{{caseprogressObj.judicialTotal}}

-
- -

已赋强公证

-

{{caseprogressObj.notarizationTotal}}

-
-
-
-
-
-
- 待分配案件包 -
+
+
+
+ 案件进展情况 - + + :value="item.id"> - 批量导入 -
- -
-
- -
-
- {{item.pkgName}} - 查看详情 > -
-
- {{item.entrustingAgencyName}} - 委案日期:{{item.planStartTime | formaDate('yyyy-MM-dd')}} -
-
- -

{{item.caseTotal}}

- 案件总量 -
- -

{{item.assignTotal}}

- 已分案件数 -
- -

{{item.caseTotal - item.assignTotal}}

- 待分案件数 -
- -

{{item.months}}个月

- 委案期限 -
-
-
- 案件分配 - - -
-
-
-
-
-
-
-
- 调解成功率 -
- - - - - +
+
+ +

案件总量

+

{{caseprogressObj.caseTotal}}

+
+ +

案件待分

+

{{caseprogressObj.unassignTotal}}

+
+ +

未触达

+

{{caseprogressObj.notReachTotal}}

+
+ +

调解中

+

{{caseprogressObj.mediatingTotal}}

+
+ +

调解成功

+

{{caseprogressObj.mediateSuccess}}

+
+ +

已签署协议

+

{{caseprogressObj.signTotal}}

+
+ +

已司法确认

+

{{caseprogressObj.judicialTotal}}

+
+ +

已赋强公证

+

{{caseprogressObj.notarizationTotal}}

+
+
+
+ 办案量排行榜 +
-
-
+
-
- {{ (mediation_success_rate.mediateSuccess/mediation_success_rate.caseTotal).toFixed(2) }} % - 0 % -
-
+
+
+
+
+ 待办案件包 +
+ + + + + + + 批量导入 + +
+ +
+
+ +
+
+ {{item.pkgName}} + 查看详情 > +
+
+ {{item.entrustingAgencyName}} + 委案日期:{{item.planStartTime | formaDate('yyyy-MM-dd')}} +
+
+ +

{{item.caseTotal}}

+ 案件总量 +
+ +

{{item.assignTotal}}

+ 已分案件数 +
+ +

{{item.caseTotal - item.assignTotal}}

+ 待分案件数 +
+ +

{{item.months}}个月

+ 委案期限 +
+
+
+ 案件分配 + +
+
+
+
+
+
+
+ 预约回款情况 +
+
+
+ +
+
+
+
+ +
事项追踪 @@ -184,6 +175,39 @@
+
+
+ 调解成功率 +
+ + + + + + +
+
+
+
+
+ +
+ {{ (mediation_success_rate.mediateSuccess/mediation_success_rate.caseTotal).toFixed(2) }} % + 0 % +
+ +
+
@@ -204,7 +228,7 @@ import api from "@/services/caseManagement"; import workApi from "@/services/workbenchApi"; import pkapi from "@/services/casePackageManagement"; -import { color } from "echarts"; + import { color } from "echarts"; export default { components: { importPackageDialog: () => import('../case-package/components/importPackageDialog'),//导入 @@ -288,9 +312,9 @@ import { color } from "echarts"; }, // 获取抽屉drawer的内容高度 leftContentHeight(){ - let oh = document.documentElement.clientHeight; - if(oh > 971){oh = 971} - return oh-256 + // let oh = document.documentElement.clientHeight; + // if(oh > 971){oh = 971} + return 510 } }, @@ -315,6 +339,8 @@ import { color } from "echarts"; this.getCaseInfoList() this.getstatisticcases() this.getstatistic_trace() + this.CaseloadrankCharts() + this.CaserefundCharts() }, methods: { jumpUrl (url) { @@ -402,22 +428,6 @@ import { color } from "echarts"; ObjectInfo:row } }, - // 单条删除 - handleDelete(row){ - this.$confirm("请确定是否删除此条数据?", "提示", { - confirmButtonText: "确定", - cancelButtonText: "取消", - type: "warning", - }).then(() => { - if(!this.$clickThrottle()) { return }//防止重复点击 - pkapi.CasePkgdeleteById({id:row.id}).then((res) => { - - this.$message.success("删除成功"); - this.getCaseInfoList(1) - - }); - }).catch(() => {}); - }, SuccessRateChange(){ this.drawCharts() }, @@ -449,7 +459,7 @@ import { color } from "echarts"; series: [ { type: 'pie', - radius: ['40%', '70%'], + radius: ['60%', '85%'], avoidLabelOverlap: false, label: { show: false, @@ -475,6 +485,112 @@ import { color } from "echarts"; _that.myEcharts.setOption(option, true); }, + // 办案量排行榜 + async CaseloadrankCharts () { + let operateMethodOptions=[] + await api.getCurrGroupUserList().then(res => { + if (!res.code) { + res.forEach(element => { + operateMethodOptions.push(element.realName) + }); + } + }) + + let case_rank_rate = [0,0,0,0,0,0,0] + if (this.myEchartsCaseRank) { + this.myEchartsCaseRank.clear(); + } + this.myEchartsCaseRank = this.$echarts.init( + document.getElementById("echartsCaserank") + ); + let _that = this; + var option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: { + show: false, //取消显示图例 + }, + grid: { + top:'5%', + left: '1%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'value', + boundaryGap: [0, 1] + }, + yAxis: { + type: 'category', + data: operateMethodOptions, + }, + series: [ + { + itemStyle: { + color: '#FBA440' + }, + type: 'bar', + data: case_rank_rate + } + ] + }; + _that.myEchartsCaseRank.setOption(option, true); + + }, + // 预约回款情况 + async CaserefundCharts () { + let case_rank_rate = [0,0,0,0,0,0,0] + if (this.myEchartsCaseRefund) { + this.myEchartsCaseRefund.clear(); + } + this.myEchartsCaseRefund = this.$echarts.init( + document.getElementById("echartsCaserefund") + ); + let _that = this; + var option = { + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + xAxis: { + type: 'category', + data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] + }, + yAxis: { + type: 'value' + }, + grid: { + left: '2%', + right: '2%', + bottom: '3%', + containLabel: true + }, + legend: {}, + series: [ + { + data: [120, 200, 150, 80, 70, 110, 130], + type: 'bar', + name:'预约回款金额', + color:'#FBA440' + }, + { + data: [120, 200, 150, 80, 70, 110, 130], + type: 'bar', + name:'回款金额', + color:'#4091FB' + } + ] + }; + _that.myEchartsCaseRefund.setOption(option, true); + + }, }, }; @@ -497,11 +613,10 @@ import { color } from "echarts"; background:url(../../assets/image/workbench/work-left-bg.png) no-repeat; background-size: 100% 100%; // min-height:496px; - width: 400px; + width: 412px; padding: 20px; .case-title{ - height: 60px; - padding-top: 10px; + height: 50px; font-size: 18px; color:#1D2129; font-weight: 500; @@ -532,59 +647,72 @@ import { color } from "echarts"; } .case-pro1{width: 155px;height: 105px;} } +.casework-1{ + background-color: #fff; + border-radius: 8px; + margin-top: 15px; +} .casework2{ - background-color: #E1EDF4; - min-height:496px; - margin:4px 0 0 0; - width: calc(100% - 830px); - padding: 18px; - color: #4E5969; - .case-pk-title{ - span:first-child{ - font-size: 18px; - color:#1D2129; - font-weight: 500; - } - .case-pk-btn{ - width: 90px; - font-size: 14px; - text-align: center; - line-height: 30px; - display: inline-block; - cursor: pointer; - - } - } - .case-pk-cont{ - .case-pk-list{ - background-color: #fff; - padding: 16px; - border-radius: 8px; - margin-top: 20px; - .case-pk-num{ - background-color: #F7F8FA; - height:85px ; - padding-top: 20px; - span{ - - width: 25%; - text-align: center; - border-right: solid 2px #e5e6e8; - height: 45px; - p{margin: 0; - a{ - font-size: 22px; - } - } - } - span:last-child{border-right: 0;} + width: calc(100% - 850px); + .casework2-1{ + background-color: #E1EDF4; + height:578px; + margin:4px 0 0 0; + + padding: 18px; + color: #4E5969; + .case-pk-title{ + span:first-child{ + font-size: 18px; + color:#1D2129; + font-weight: 500; + } + .case-pk-btn{ + width: 90px; + font-size: 14px; + text-align: center; + line-height: 30px; + display: inline-block; + cursor: pointer; + } } - - } - + .case-pk-cont{ + .case-pk-list{ + background-color: #fff; + padding: 16px; + border-radius: 8px; + margin-top: 20px; + .case-pk-num{ + background-color: #F7F8FA; + height:85px ; + padding-top: 20px; + span{ + + width: 25%; + text-align: center; + border-right: solid 2px #e5e6e8; + height: 45px; + p{margin: 0; + a{ + font-size: 22px; + } + } + } + span:last-child{border-right: 0;} + } + } + + } + - + + } + .casework2-2{ + background-color: #fff; + border-radius: 8px; + margin-top: 15px; + } } .casework3{ min-height:496px; @@ -592,6 +720,7 @@ import { color } from "echarts"; margin:4px 0 0 0; color: #4E5969; .pie-chart{ + margin-top: 18px; padding: 18px; background-color: #fff; border-radius: 8px; @@ -605,13 +734,13 @@ import { color } from "echarts"; } .case-pk-cont{ - padding: 20px 0; + padding: 10px 0 10px 0; position: relative; .resultplan{ font-size: 32px; position: absolute; left: 115px; - top: 130px; + top: 100px; display: flex; flex-direction: column; justify-content: center; @@ -624,7 +753,6 @@ import { color } from "echarts"; } .item-trace{ - margin-top: 20px; padding: 18px; background-color: #fff; border-radius: 8px; @@ -652,11 +780,11 @@ import { color } from "echarts"; text-align: center; } div{ - margin-top:5px; - margin-bottom:10px; + margin-top:10px; + margin-bottom:15px; color: #4E5969; background-color:#F7F8FA ; - padding: 12px; + padding: 14px 12px; border-radius: 2px; a{ font-weight: 600;