CRM_25-11-12#story#7366,服务商KPI界面需求2025.9.11 (旧的模块删除平安好评率)
This commit is contained in:
@ -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'},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user