|
|
|
@ -39,7 +39,7 @@
|
|
|
|
|
<van-tabs v-model="active" sticky @click="tabClickHandle">
|
|
|
|
|
<van-tab v-for="(item,index) in tabArr" :key="index" :title="item.name"></van-tab>
|
|
|
|
|
<div v-if="isMobile && !([0,1,2,3].includes(active))" class="tipArrow left">{{ leftArr }}</div>
|
|
|
|
|
<div v-if="isMobile && !([9,10].includes(active))" class="tipArrow right">>>></div>
|
|
|
|
|
<div v-if="isMobile && !([7,8].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}">
|
|
|
|
@ -202,7 +202,7 @@
|
|
|
|
|
<noFit-table v-else :active='active' :is-mobile='isMobile' :table-data="detailList" :label-list="labelList"></noFit-table>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-loading="loadingData" class="contentWrap monthTotal" v-if="[2,4,5].includes(active)">
|
|
|
|
|
<div v-loading="loadingData" class="contentWrap monthTotal" v-if="[2].includes(active)">
|
|
|
|
|
<div class="searchDriverName" v-if="[5,4].includes(active)">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="driverName"
|
|
|
|
@ -245,7 +245,7 @@
|
|
|
|
|
:total="total">
|
|
|
|
|
</el-pagination>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-loading="loadingData" class="contentWrap monthTotal" v-if="[3,6,7,8,9,10].includes(active)">
|
|
|
|
|
<div v-loading="loadingData" class="contentWrap monthTotal" v-if="[3,4,5,6,7,8].includes(active)">
|
|
|
|
|
<div :class="{'comTab':true,'detailTable':isMobile}">
|
|
|
|
|
<noFit-table :active='active' :is-mobile='isMobile' :table-data="detailList" :label-list="labelList"
|
|
|
|
|
></noFit-table>
|
|
|
|
@ -273,7 +273,7 @@ import {
|
|
|
|
|
getStatisticsKpiByMonth,
|
|
|
|
|
getStatisticsKpi,
|
|
|
|
|
getSupplierId,
|
|
|
|
|
getDriverName,getDriverStatisticsKpi,
|
|
|
|
|
getDriverName,
|
|
|
|
|
getRecentSupplierKpi, querySupplierDriverStatisticsScore
|
|
|
|
|
} from "@/api/kpi.js"
|
|
|
|
|
import {myMixins} from "@/utils/myMixins"
|
|
|
|
@ -289,9 +289,9 @@ export default {
|
|
|
|
|
return {
|
|
|
|
|
active:0,
|
|
|
|
|
activeIndex: 0,
|
|
|
|
|
//
|
|
|
|
|
// {name: '月/师傅'}, {name: '日/师傅'},
|
|
|
|
|
tabArr: [
|
|
|
|
|
{name: '总览'}, {name: '月/总'}, {name: '日/总'},{name: '师傅满意度'},{name: '月/师傅'}, {name: '日/师傅'}, {name: '拒单明细'},
|
|
|
|
|
{name: '总览'}, {name: '月/总'}, {name: '日/总'},{name: '师傅满意度'}, {name: '拒单明细'},
|
|
|
|
|
{name: '超时明细'}, {name: '投诉明细'}, {name: '不使用APP案件明细'}, {name: '车辆在线情况'}
|
|
|
|
|
],
|
|
|
|
|
list: [{name: '接单指标'}, {name: '客户评价'}, {name: 'APP使用'}, {name: ' 时效 '}],
|
|
|
|
@ -1054,8 +1054,9 @@ export default {
|
|
|
|
|
this.loading = false
|
|
|
|
|
this.detailList?.map(item => {
|
|
|
|
|
this.xAxisArr.push(item.month)
|
|
|
|
|
this.xAxisArr = [...new Set(this.xAxisArr)]; // 去重
|
|
|
|
|
})
|
|
|
|
|
// console.log(" this.xAxisArr", this.xAxisArr)
|
|
|
|
|
console.log(" this.xAxisArr", this.xAxisArr)
|
|
|
|
|
// this.xAxisArr[this.xAxisArr.length - 1] = '本月'
|
|
|
|
|
await this.twoTabHanldeData()
|
|
|
|
|
}else if (this.active === 3) {
|
|
|
|
@ -1076,12 +1077,13 @@ export default {
|
|
|
|
|
});
|
|
|
|
|
this.labelList = [
|
|
|
|
|
{label: '师傅姓名', prop: 'driverName'},
|
|
|
|
|
{label: '服务商名称', prop: 'supplierName'},
|
|
|
|
|
{label: '案件总量', prop: 'orderCount'},
|
|
|
|
|
{label: '满意度得分 ', prop: 'driverSatisfaction'},
|
|
|
|
|
]
|
|
|
|
|
this.loading = false;
|
|
|
|
|
}
|
|
|
|
|
else if ([4,5].includes(this.active)) {
|
|
|
|
|
/* else if ([4,5].includes(this.active)) {
|
|
|
|
|
let res = await getDriverStatisticsKpi({
|
|
|
|
|
startTime: this.startTime ,
|
|
|
|
|
endTime: this.endTime,
|
|
|
|
@ -1117,8 +1119,9 @@ export default {
|
|
|
|
|
this.total=0
|
|
|
|
|
}
|
|
|
|
|
await this.twoTabHanldeData();
|
|
|
|
|
}
|
|
|
|
|
else if ([ 6, 7, 8,9,10].includes(this.active)) {
|
|
|
|
|
}*/
|
|
|
|
|
else if ([ 4,5,6, 7, 8].includes(this.active)) {
|
|
|
|
|
|
|
|
|
|
this.detailList = []
|
|
|
|
|
this.labelList = []
|
|
|
|
|
let result = await getKpiDetailsData({
|
|
|
|
@ -1135,7 +1138,7 @@ export default {
|
|
|
|
|
return {...item, date: formatVal};
|
|
|
|
|
});
|
|
|
|
|
this.loading = false
|
|
|
|
|
if (this.active === 6) {//拒单明细
|
|
|
|
|
if (this.active === 4) {//拒单明细
|
|
|
|
|
this.labelList = [
|
|
|
|
|
{label: '案件编号', prop: 'orderCode'},
|
|
|
|
|
{label: '服务内容', prop: 'serviceName'},
|
|
|
|
@ -1146,7 +1149,7 @@ export default {
|
|
|
|
|
{label: '中道派单时间', prop: 'dispatchTime'},
|
|
|
|
|
{label: '拒绝原因', prop: 'reason'},
|
|
|
|
|
]
|
|
|
|
|
} else if (this.active === 7) {//超时明细
|
|
|
|
|
} else if (this.active === 5) {//超时明细
|
|
|
|
|
this.labelList = [
|
|
|
|
|
{label: '案件编号', prop: 'orderCode'},
|
|
|
|
|
{label: '服务内容', prop: 'serviceName'},
|
|
|
|
@ -1156,7 +1159,7 @@ export default {
|
|
|
|
|
{label: '上游接单来源', prop: 'workSource'},
|
|
|
|
|
{label: '中道派单时间', prop: 'dispatchTime'},
|
|
|
|
|
]
|
|
|
|
|
} else if (this.active === 8) {//投诉明细
|
|
|
|
|
} else if (this.active === 6) {//投诉明细
|
|
|
|
|
this.labelList = [
|
|
|
|
|
{label: '案件编号', prop: 'orderCode'},
|
|
|
|
|
{label: '服务内容', prop: 'serviceName'},
|
|
|
|
@ -1165,7 +1168,7 @@ export default {
|
|
|
|
|
{label: '投诉时间', prop: 'complainCreateTime'},
|
|
|
|
|
{label: '投诉类型', prop: 'complainTypeString'},
|
|
|
|
|
]
|
|
|
|
|
} else if (this.active === 9) {//不使用App案件明细
|
|
|
|
|
} else if (this.active === 7) {//不使用App案件明细
|
|
|
|
|
this.labelList = [
|
|
|
|
|
{label: '案件编号', prop: 'orderCode'},
|
|
|
|
|
{label: '服务内容', prop: 'serviceName'},
|
|
|
|
@ -1173,7 +1176,7 @@ export default {
|
|
|
|
|
{label: '工单创建时间', prop: 'orderCreateTime'},
|
|
|
|
|
{label: '事发地', prop: 'vehiclePointAddress'},
|
|
|
|
|
]
|
|
|
|
|
} else if (this.active === 10) {//车辆在线情况
|
|
|
|
|
} else if (this.active === 8) {//车辆在线情况
|
|
|
|
|
this.labelList = [
|
|
|
|
|
{label: '日期', prop: 'date'},
|
|
|
|
|
{label: '0点在线车辆数量', prop: 'zeroClockVehicleCount'},
|
|
|
|
@ -1205,13 +1208,18 @@ export default {
|
|
|
|
|
year = new Date(this.current).getFullYear();
|
|
|
|
|
month = new Date(this.current).getMonth() + 1;
|
|
|
|
|
} else {
|
|
|
|
|
year = new Date().getFullYear();
|
|
|
|
|
month = new Date().getMonth() + 1;
|
|
|
|
|
/*year = new Date().getFullYear();
|
|
|
|
|
month = new Date().getMonth() + 1;*/
|
|
|
|
|
year = 2024
|
|
|
|
|
month = 12
|
|
|
|
|
}
|
|
|
|
|
let yearAndMonth = year + '-' + (month > 9 ? month : '0' + month);
|
|
|
|
|
this.current = dayjs(new Date(yearAndMonth)).format('YYYY-MM')
|
|
|
|
|
this.startTime = dayjs(new Date()).format('YYYY-MM') + '-01 00:00:00'
|
|
|
|
|
this.endTime = dayjs(new Date()).format('YYYY-MM') + '-' + this.getDayLen()+' 23:59:59'
|
|
|
|
|
console.log("this.current",this.current)
|
|
|
|
|
/*this.startTime = dayjs(new Date()).format('YYYY-MM') + '-01 00:00:00'
|
|
|
|
|
this.endTime = dayjs(new Date()).format('YYYY-MM') + '-' + this.getDayLen()+' 23:59:59'*/
|
|
|
|
|
this.startTime = '2024-12-01 00:00:00'
|
|
|
|
|
this.endTime = '2024-12-31 23:59:59'
|
|
|
|
|
this.startMonthTime=this.getStartTimeFromEndTime(this.endTime)
|
|
|
|
|
console.log(" this.startMonthTime", this.startMonthTime,this.startTime)
|
|
|
|
|
},
|
|
|
|
@ -1586,15 +1594,15 @@ export default {
|
|
|
|
|
},
|
|
|
|
|
setType(type) {
|
|
|
|
|
switch (type) {
|
|
|
|
|
case 6:
|
|
|
|
|
case 4:
|
|
|
|
|
return 1;
|
|
|
|
|
case 7:
|
|
|
|
|
case 5:
|
|
|
|
|
return 2;
|
|
|
|
|
case 8:
|
|
|
|
|
case 6:
|
|
|
|
|
return 3;
|
|
|
|
|
case 9:
|
|
|
|
|
case 7:
|
|
|
|
|
return 4;
|
|
|
|
|
case 10:
|
|
|
|
|
case 8:
|
|
|
|
|
return 5;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|