CRM_25-11-12#story#7366,服务商KPI界面需求2025.9.11 (旧的模块删除平安好评率)

This commit is contained in:
2025-10-28 13:32:52 +08:00
parent a19b14b7d9
commit 2e8018026f

View File

@ -42,11 +42,10 @@
<div v-if="isMobile && !([9,10, 11].includes(active))" class="tipArrow right">>>></div>
</van-tabs>
<div v-loading="loadingData" :class="{'contentWrap':true,'webcontentWrap':!isMobile}" v-if="active===0">
<div :class="{'reciceOrder':true,'webCom':!isMobile}">
<!--<div :class="{'reciceOrder':true,'webCom':!isMobile}">
<div :class="{'title':true,'webTitle':!isMobile}">接单指标</div>
<div class="reciceOrderIWrap">
<div class="left common">
<!-- indexData && -->
<div class="num">{{ formatCurrency(indexData?.receiveOrderCount) }}</div>
<div class="itemTitle">承接案件量</div>
</div>
@ -59,7 +58,7 @@
<div class="itemTitle" style="cursor: pointer">超时率 ></div>
</div>
</div>
</div>
</div>-->
<div :class="{'reciceOrder':true,'webCom':!isMobile,'evaluate':isMobile}">
<div class="title">客户评价</div>
<div class="reciceOrderIWrap" v-if="indexData">
@ -154,7 +153,7 @@
<div v-if="active==1" style="width: 100%">
<div id="chartWrap" style="width: 100%;height:300px"></div>
</div>
<div v-if="activeIndex==3" class="selectWrap">
<div v-if="activeIndex==2" class="selectWrap">
<el-select v-model="value" @change="changeHandle">
<el-option
v-for="item in options"
@ -166,7 +165,7 @@
</div>
</template>
<template v-else>
<div v-if="[0,1,2].includes(activeIndex)">
<div v-if="[0,1].includes(activeIndex)">
<div id="chartWrap" style="width: 100%;height:300px"></div>
</div>
<div v-else style="width: 100%;display: flex;justify-content: space-between">
@ -283,9 +282,10 @@ export default {
{name: '总览',value:0}, {name: '月/总'}, {name: '日/总'},{name: '月/师傅'}, {name: '日/师傅'}, {name: '拒单明细'},
{name: '超时明细'}, {name: '催促明细'},{name: '投诉明细'}, {name: '不使用APP案件明细'}, {name: '车辆在线情况'} , {name: '聚合失败案件明细'}
],
list: [{name: '接单指标'}, {name: '服务评价'}, {name: 'APP使用情况'}, {name: ' 时效 '}],
list: [ {name: '服务评价'}, {name: 'APP使用情况'}, {name: ' 时效 '}],
// driverList: [{name: '得分总览'},{name: '接单情况'}, {name: '服务评价'}, {name: 'APP使用情况'}, {name: '时效 '}],
driverList: [{name: '接单情况'}, {name: '服务评价'}, {name: 'APP使用情况'}, {name: '时效 '}],//story#7149,要求暂时隐藏得分总览
// {name: '接单情况'},
driverList: [{name: '服务评价'}, {name: 'APP使用情况'}, {name: '时效 '}],//story#7149,要求暂时隐藏得分总览
startMonthTime: '',
startTime: '',
@ -497,7 +497,7 @@ export default {
let myChart = echarts.init(document.getElementById('chartWrap'))
let option;
//接单指标
let series1 = [{
/*let series1 = [{
name: '派遣案件量',
type: 'bar',
data: this.v1?.map(item => Number(item?.toString()?.replace(/,/g, ''))),
@ -536,19 +536,19 @@ export default {
formatter: '{c}%'
},
},
/* {
name: '客户取消率',
type: "line",
data: this.v4,
yAxisIndex: 1,
smooth: true,
label: {
show: true,
position: 'top',
formatter: '{c}%'
},
},*/
]
// {
// name: '客户取消率',
// type: "line",
// data: this.v4,
// yAxisIndex: 1,
// smooth: true,
// label: {
// show: true,
// position: 'top',
// formatter: '{c}%'
// },
// },
]*/
let series2 = [
{
name: '投诉率',
@ -724,7 +724,7 @@ export default {
},
},
]
let yAxis1 = [
/*let yAxis1 = [
{type: 'value'},
{
type: 'value',
@ -732,7 +732,7 @@ export default {
formatter: '{value}%'
}
},
]
]*/
let yAxis2 = [
{
type: 'value',
@ -763,16 +763,17 @@ export default {
let series = []
let yAxis = []
if (this.active === 1) {
if (this.activeIndex === 0) {
/* if (this.activeIndex === 0) {
series = series1
yAxis = yAxis1
} else if (this.activeIndex === 1) {
} else*/
if (this.activeIndex === 0) {
series = series2
yAxis = yAxis2
} else if (this.activeIndex === 2) {
} else if (this.activeIndex === 1) {
series = []
yAxis = []
} else if (this.activeIndex === 3) {
} else if (this.activeIndex === 2) {
if (this.value == 1) {
series = series4
yAxis = yAxis4
@ -784,7 +785,7 @@ export default {
}
option = {
title: {
text: this.isMobile ? this.getTitle(this.activeIndex) : (this.active === 1 && this.activeIndex === 2) ? '' : '师傅接单时效',
text: this.isMobile ? this.getTitle(this.activeIndex) : (this.active === 1 && this.activeIndex === 1) ? '' : '师傅接单时效',
textStyle: {
fontSize: 12
},
@ -796,7 +797,7 @@ export default {
right: '1%',
itemWidth: this.isMobile ? 10 : 18, // 设置图例图标的宽度,从而调整图标大小
itemHeight: this.isMobile ? 6 : 10,
width: (this.active == 1 && this.activeIndex == 2) ? '60%' : '100%',
width: (this.active == 1 && this.activeIndex == 1) ? '60%' : '100%',
},
xAxis: {
type: 'category',
@ -1275,7 +1276,7 @@ export default {
columnObj.label = 'KPI' //第一个标题名称
columnObj.prop = 'month' //第一个标题名称对应的字段
this.etlLabelList.push(columnObj)
if (this.activeIndex === 0) {//接单指标
/*if (this.activeIndex === 0) {//接单指标
this.etlDetailList=[{ 'month': '派遣量' },{ 'month': '承接量' },{ 'month': '完成量' },
{ 'month': '拒单量' },{ 'month': '拒单率(%)' },{ 'month': '超时接单量' },{ 'month': '超时率(%)' },{ 'month': '客户取消率(%)' }]
let props = 'prop' //自定义字段名称
@ -1311,14 +1312,16 @@ export default {
{label: '超时率(%)', prop: 'timeoutOrderRate'},
{label: '取消率(%)', prop: 'cancelRate'},
]
} else if (this.activeIndex === 1) {
this.etlDetailList=[{ 'month': '投诉量' },{ 'month': '投诉率(%)' },{ 'month': '平安好评量' }, { 'month': '平安好评率' }]
} else*/
if (this.activeIndex === 0) {
// ,{ 'month': '平安好评量' }, { 'month': '平安好评率' }
this.etlDetailList=[{ 'month': '投诉量' },{ 'month': '投诉率(%)' }]
let props = 'prop' //自定义字段名称
this.detailList?.map((item,index) => {
this.v1.push(item.complainOrderCount)
this.v2.push(item.complainOrderRate?.replace('%', ''))
this.v3.push(item?.pinganFavorableCount)
this.v4.push(item.pinganFavorableRate?.replace('%', ''))
// this.v3.push(item?.pinganFavorableCount)
// this.v4.push(item.pinganFavorableRate?.replace('%', ''))
const columnObj = {}
columnObj.label = item.month // 每一列的标题的名称
columnObj.prop = props + index //自定义每一列标题字段名称
@ -1332,22 +1335,23 @@ export default {
{label: '月份', prop: 'month'},
{label: '投诉量', prop: 'complainOrderCount'},
{label: '投诉率', prop: 'complainOrderRate'},
{label: '平安好评量', prop: 'pinganFavorableCount'},
{label: '平安好评率', prop: 'pinganFavorableRate'},
]
} else if (this.activeIndex === 2) {
this.etlDetailList=[{ 'month': 'APP使用量' }, { 'month': 'APP使用率' }, { 'month': '平安聚合成功量' },{ 'month': '平安聚合成功率' },
/* {label: '平安好评量', prop: 'pinganFavorableCount'},
{label: '平安好评率', prop: 'pinganFavorableRate'},*/
} else if (this.activeIndex === 1) {
// { 'month': '平安聚合成功量' },{ 'month': '平安聚合成功率' },
this.etlDetailList=[{ 'month': 'APP使用量' }, { 'month': 'APP使用率' },
{ 'month': '中华联合聚合成功量' }, { 'month': '中华联合聚合成功率' }, { 'month': '整体聚合成功量' }, { 'month': '整体聚合成功率' }]
let props = 'prop' //自定义字段名称
this.detailList?.map((item,index) => {
this.v1.push(item.appUseCount)
this.v2.push(item.appRate.replace('%', ''))
this.v3.push(item.pinganJuheSuccessCount)
this.v4.push(item.pinganPolymerizationSuccessRate.replace('%', ''))
this.v5.push(item.zhonghuaPolymerizationSuccessCount)
this.v6.push(item.zhonghuaPolymerizationSuccessRate.replace('%', ''))
this.v7.push(item.wholeJuheSuccessCount)
this.v7.push(item.wholeJuheSuccessRate.replace('%', ''))
/*this.v3.push(item.pinganJuheSuccessCount)
this.v4.push(item.pinganPolymerizationSuccessRate.replace('%', ''))*/
this.v3.push(item.zhonghuaPolymerizationSuccessCount)
this.v4.push(item.zhonghuaPolymerizationSuccessRate.replace('%', ''))
this.v5.push(item.wholeJuheSuccessCount)
this.v6.push(item.wholeJuheSuccessRate.replace('%', ''))
const columnObj = {}
columnObj.label = item.month // 每一列的标题的名称
columnObj.prop = props + index //自定义每一列标题字段名称
@ -1357,19 +1361,20 @@ export default {
this.$set(this.etlDetailList[i], columnObj.prop, item[mappings[i]]);
}
})
/*{label: '平安聚合成功量', prop: 'pinganJuheSuccessCount'},
{label: '平安聚合成功率', prop: 'pinganPolymerizationSuccessRate'},*/
this.labelList = [
{label: '月份', prop: 'month'},
{label: 'APP使用量', prop: 'appUseCount'},
{label: 'APP使用率', prop: 'appRate'},
{label: '平安聚合成功量', prop: 'pinganJuheSuccessCount'},
{label: '平安聚合成功率', prop: 'pinganPolymerizationSuccessRate'},
{label: '中华联合聚合成功量', prop: 'zhonghuaPolymerizationSuccessCount'},
{label: '中华联合聚合成功率', prop: 'zhonghuaPolymerizationSuccessRate'},
{label: '整体聚合成功量', prop: 'wholeJuheSuccessCount'},
{label: '整体聚合成功率', prop: 'wholeJuheSuccessRate'},
]
} else if (this.activeIndex === 3) {
this.etlDetailList=[{ 'month': '接单时效' },{ 'month': '3分钟联系客户率' },{ 'month': '到达时效' },{'month':'平安聚合成功到达时效'}]
} else if (this.activeIndex === 2) {
// ,{'month':'平安聚合成功到达时效'}
this.etlDetailList=[{ 'month': '接单时效' },{ 'month': '3分钟联系客户率' },{ 'month': '到达时效' }]
let props = 'prop' //自定义字段名称
if (this.isMobile) {
if (this.value == 1) {
@ -1413,16 +1418,16 @@ export default {
})
}
}
// {label: '平安聚合成功到达时效', prop: 'pinganJuheSuccessArriving'},
this.labelList = [
{label: '月份', prop: 'month'},
{label: '接单时效', prop: 'receiving'},
{label: '3分钟联系客户率', prop: 'threeMinutesContactRate'},
{label: '到达时效', prop: 'arriving'},
{label: '平安聚合成功到达时效', prop: 'pinganJuheSuccessArriving'},
]
}
} else if (this.active === 2) {//日总
if (this.activeIndex === 0) {//接单指标
/*if (this.activeIndex === 0) {//接单指标
this.labelList = [
{label: '日', prop: 'date'},
{label: '派单量', prop: 'dispatchOrderCount'},
@ -1434,7 +1439,8 @@ export default {
{label: '超时率', prop: 'timeoutOrderRate'},
// {label: '客户取消率(%)', prop: 'cancelRate'},
]
} else if (this.activeIndex === 1) {
} else*/
if (this.activeIndex === 0) {
this.labelList = [
{label: '日', prop: 'date'},
{label: '投诉量', prop: 'complainOrderCount'},
@ -1442,9 +1448,9 @@ export default {
/* {label: '好评量', prop: 'favorableCount'},
{label: '好评率', prop: 'favorableRate'},*/
{label: '平安评价率', prop: 'pinganEvaluateRate'},
{label: '平安好评率', prop: 'pinganFavorableRate'},
// {label: '平安好评率', prop: 'pinganFavorableRate'},
]
} else if (this.activeIndex === 2) {
} else if (this.activeIndex === 1) {
this.labelList = [
{label: '日', prop: 'date'},
{label: 'APP使用量', prop: 'appUseCount'},
@ -1456,13 +1462,13 @@ export default {
{label: '整体聚合成功量', prop: 'wholeJuheSuccessCount'},
{label: '整体聚合成功率', prop: 'wholeJuheSuccessRate'},
]
} else if (this.activeIndex === 3) {
} else if (this.activeIndex === 2) {
this.labelList = [
{label: '日', prop: 'date'},
{label: '接单时效(分)', prop: 'receiving'},
{label: '3分钟联系客户率', prop: 'threeMinutesContactRate'},
{label: '到达时效(分)', prop: 'arriving'},
{label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
// {label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
]
}
} else if (this.active === 3) {//月师傅
@ -1495,7 +1501,7 @@ export default {
{label: '星级评分', prop: 'starRank'},
]
}else*/
if (this.activeIndex === 0) {
/* if (this.activeIndex === 0) {
this.labelList = [
{label: '师傅姓名', prop: 'driverName'},
{label: '派单量', prop: 'dispatchOrderCount'},
@ -1505,7 +1511,8 @@ export default {
{label: '超时量', prop: 'timeoutOrderCount'},
{label: '超时率(%)', prop: 'timeoutOrderRate'},
]
} else if (this.activeIndex === 1) {
} else */
if (this.activeIndex === 0) {
this.labelList = [
{label: '师傅姓名', prop: 'driverName'},
// {label: '承接案件量', prop: 'receiveOrderCount'},
@ -1513,11 +1520,11 @@ export default {
{label: '投诉率(%)', prop: 'complainOrderRate'},
{label: '平安评价量', prop: 'pinganEvaluateCount'},
{label: '平安评价率(%)', prop: 'pinganEvaluateRate'},
{label: '平安好评量', prop: 'pinganFavorableCount'},
{label: '平安好评率(%)', prop: 'pinganFavorableRate'},
/* {label: '平安好评量', prop: 'pinganFavorableCount'},
{label: '平安好评率(%)', prop: 'pinganFavorableRate'},*/
// {label: '催促率(%)', prop: 'urgeRate'},
]
} else if (this.activeIndex === 2) {
} else if (this.activeIndex === 1) {
this.labelList = [
{label: '师傅姓名', prop: 'driverName'},
{label: 'App使用量', prop: 'appUseCount'},
@ -1532,18 +1539,18 @@ export default {
{label: '整体聚合成功率(%)', prop: 'wholeJuheSuccessRate'},
// {label: '日均在线时长(h)', prop: 'onlineDuration'},
]
} else if (this.activeIndex === 3) {
} else if (this.activeIndex === 2) {
this.labelList = [
{label: '师傅姓名', prop: 'driverName'},
{label: '接单时效(分)', prop: 'receiving'},
{label: '3联系客户率(%)', prop: 'threeMinutesReceivingRate'},
{label: '到达时效(分)', prop: 'arriving'},
// {label: '40到达率(%)', prop: 'fortyMinutesArrivalRate'},
{label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
// {label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
]
}
} else if (this.active === 4) {//日师傅
if (this.activeIndex === 0) {//接单指标
/*if (this.activeIndex === 0) {//接单指标
this.labelList = [
{label: '日', prop: 'date'},
{label: '师傅姓名', prop: 'driverName'},
@ -1554,7 +1561,8 @@ export default {
{label: '超时量', prop: 'timeoutOrderCount'},
{label: '超时率(%)', prop: 'timeoutOrderRate'},
]
} else if (this.activeIndex === 1) {
} else */
if (this.activeIndex === 0) {
this.labelList = [
{label: '日', prop: 'date'},
{label: '师傅姓名', prop: 'driverName'},
@ -1562,10 +1570,10 @@ export default {
{label: '投诉率(%)', prop: 'complainOrderRate'},
{label: '平安评价量', prop: 'pinganEvaluateCount'},
{label: '平安评价率(%)', prop: 'pinganEvaluateRate'},
{label: '平安好评量', prop: 'pinganFavorableCount'},
{label: '平安好评率(%)', prop: 'pinganFavorableRate'},
// {label: '平安好评量', prop: 'pinganFavorableCount'},
// {label: '平安好评率(%)', prop: 'pinganFavorableRate'},
]
} else if (this.activeIndex === 2) {
} else if (this.activeIndex === 1) {
this.labelList = [
{label: '日', prop: 'date'},
{label: '师傅姓名', prop: 'driverName'},
@ -1578,14 +1586,14 @@ export default {
{label: '整体聚合成功量', prop: 'wholeJuheSuccessCount'},
{label: '整体聚合成功率(%)', prop: 'wholeJuheSuccessRate'},
]
} else if (this.activeIndex === 3) {
} else if (this.activeIndex === 2) {
this.labelList = [
{label: '日', prop: 'date'},
{label: '师傅姓名', prop: 'driverName'},
{label: '接单时效(分)', prop: 'receiving'},
{label: '3联系客户率(%)', prop: 'threeMinutesReceivingRate'},
{label: '到达时效(分)', prop: 'arriving'},
{label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
// {label: '平安聚合成功到达时效(分)', prop: 'pinganJuheSuccessArriving'},
]
}
}