7.27(维修分析

This commit is contained in:
Hong
2024-07-27 18:35:56 +08:00
parent b9b62a8e19
commit aca77fb6a8
6 changed files with 269 additions and 65 deletions

View File

@@ -54,4 +54,47 @@ export function maintenanceAnalysisLattice(data) {
method: 'post',
data,
});
}
}
//进店台次分车型占比 /api/admin/platform/monthly/maintenance/analysis/model/ratio
export function maintenanceAnalysisModelRatio(data) {
return request({
url: '/admin/platform/monthly/maintenance/analysis/model/ratio',
method: 'post',
data,
});
}
//进店台次分所属公司占比 /admin/platform/monthly/maintenance/analysis/company
export function maintenanceAnalysisCompany(data) {
return request({
url: '/admin/platform/monthly/maintenance/analysis/company',
method: 'post',
data,
});
}
//维保产值按车型占比 /admin/platform/monthly/maintenance/analysis/yield/model
export function maintenanceAnalysisYieldModel(data) {
return request({
url: '/admin/platform/monthly/maintenance/analysis/yield/model',
method: 'post',
data,
});
}
//维保产值按所属公司占比 /api/admin/platform/monthly/maintenance/analysis/yield/company
export function maintenanceAnalysisYieldCompany(data) {
return request({
url: '/admin/platform/monthly/maintenance/analysis/yield/company',
method: 'post',
data,
});
}
//维保产值top5和维保产值top公司柱状图 //api/admin/platform/monthly/maintenance/analysis/yield/modelandcompany
export function yieldModelandcompany(data) {
return request({
url: '/admin/platform/monthly/maintenance/analysis/yield/modelandcompany',
method: 'post',
data,
});
}

View File

@@ -15,7 +15,7 @@ import * as echarts from 'echarts';
import { brokenLineApi } from '@/api/dashboard';
export default {
name: 'accessoryEcharts',
props: ['id', 'title'],
props: ['id', 'title','pieData'],
data() {
return {
lineData: [],
@@ -52,19 +52,9 @@ export default {
},
series: [
{
name: 'Access From',
type: 'pie',
radius: '50%',
data: [
{ value: 1048, name: '北汽EU5' },
{ value: 735, name: '启辰D60' },
{ value: 580, name: '东风E70' },
{ value: 484, name: '别克蔚蓝6' },
{ value: 300, name: '特斯拉' },
{ value: 450, name: '广汽' },
{ value: 900, name: '吉利帝豪' },
{ value: 600, name: 'NAT' },
],
data: this.pieData,
emphasis: {
itemStyle: {
shadowBlur: 10,

View File

@@ -15,7 +15,20 @@ import * as echarts from 'echarts';
import { brokenLineApi } from '@/api/dashboard';
export default {
name: 'consumeEcharts',
props: ['id', 'title'],
props: {
// ['id', 'title','barData']
id: {
type: String,
},
title: {
type: String,
default: '柱状图'
},
barData: {
type: Object,
},
},
data() {
return {
lineData: [],
@@ -54,14 +67,14 @@ export default {
},
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri',]
data: this.barData.labels
},
yAxis: {
type: 'value'
},
series: [
{
data: [200, 150, 130, 120, 110],
data: this.barData.values,
type: 'bar',
barWidth: 20 // 设置宽度为类目宽度的50%
}

View File

@@ -56,8 +56,7 @@
<div class="percentage">
<div :class="[money.yearOnYear >= 0 ? 'percentage-s' : 'percentage-j']">
<p>
<i :class="[money.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']"
style="font-weight: 700;"></i>
<i :class="[money.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']" style="font-weight: 700;"></i>
{{ money.yearOnYear }}%
</p>
同比
@@ -104,8 +103,7 @@
<div class="percentage">
<div :class="[profit.yearOnYear >= 0 ? 'percentage-s' : 'percentage-j']">
<p>
<i :class="[profit.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']"
style="font-weight: 700;"></i>
<i :class="[profit.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']" style="font-weight: 700;"></i>
{{ profit.yearOnYear }}%
</p>
同比
@@ -125,16 +123,16 @@
<!-- -->
<el-row :gutter="20">
<el-col :span="6">
<AccessoryEcharts :id="'pie1'" :title="'进店台次分车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie1'" :title="'进店台次分车型占比'" :pieData="pieData1"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie2'" :title="'进店台次分所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie2'" :title="'进店台次分所属公司占比'" :pieData="pieData2"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie3'" :title="'维保产值按车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie3'" :title="'维保产值按车型占比'" :pieData="pieData3"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie4'" :title="'维保产值按所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie4'" :title="'维保产值按所属公司占比'" :pieData="pieData4"></AccessoryEcharts>
</el-col>
</el-row>
<!-- -->
@@ -422,7 +420,7 @@
<script>
import { merchantListApi } from "@/api/merchant"
import { maintenanceAnalysisLattice } from "@/api/statistics.js"
import { maintenanceAnalysisLattice, maintenanceAnalysisModelRatio, maintenanceAnalysisCompany, maintenanceAnalysisYieldModel, maintenanceAnalysisYieldCompany } from "@/api/statistics.js"
import AccessoryEcharts from '../components/accessoryEcharts';
import ConsumeEcharts from '../components/consumeEcharts';
export default {
@@ -438,7 +436,7 @@ export default {
tableFrom: {
page: 1,
dateLimit: '',
type:1
type: 2
},
//进店总台次
frequency: {},
@@ -448,6 +446,14 @@ export default {
accessory: {},
//维保利润
profit: {},
//饼图1
pieData1:[],
//饼图2
pieData2:[],
//饼图3
pieData3:[],
//饼图4
pieData4:[],
};
},
@@ -461,9 +467,13 @@ export default {
// 初始化
init() {
this.maintenanceAnalysisLatticeFn()
this.maintenanceAnalysisModelRatioFn()
this.maintenanceAnalysisCompanyFn()
this.maintenanceAnalysisYieldModelFn()
this.maintenanceAnalysisYieldCompanyFn()
},
//年月日
selectChange(e) {
//年月日
selectChange(e) {
// console.log(e);
this.tableFrom.dateLimit = e;
this.timeVal = [];
@@ -511,7 +521,35 @@ export default {
//维保利润
this.profit = res.profit
})
}
},
//进店台次分车型占比
maintenanceAnalysisModelRatioFn() {
maintenanceAnalysisModelRatio(this.tableFrom).then(res => {
this.pieData1=res
console.log(1, res);
})
},
//进店台次分所属公司占比
maintenanceAnalysisCompanyFn() {
maintenanceAnalysisCompany(this.tableFrom).then(res => {
console.log(2, res);
this.pieData2=res
})
},
//维保产值按车型占比
maintenanceAnalysisYieldModelFn() {
maintenanceAnalysisYieldModel(this.tableFrom).then(res => {
console.log(3, res);
this.pieData3=res
})
},
//维保产值按所属公司占比
maintenanceAnalysisYieldCompanyFn() {
maintenanceAnalysisYieldCompany(this.tableFrom).then(res => {
console.log(4, res);
this.pieData4=res
})
},
}
};
</script>

View File

@@ -56,8 +56,7 @@
<div class="percentage">
<div :class="[money.yearOnYear >= 0 ? 'percentage-s' : 'percentage-j']">
<p>
<i :class="[money.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']"
style="font-weight: 700;"></i>
<i :class="[money.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']" style="font-weight: 700;"></i>
{{ money.yearOnYear }}%
</p>
同比
@@ -104,8 +103,7 @@
<div class="percentage">
<div :class="[profit.yearOnYear >= 0 ? 'percentage-s' : 'percentage-j']">
<p>
<i :class="[profit.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']"
style="font-weight: 700;"></i>
<i :class="[profit.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']" style="font-weight: 700;"></i>
{{ profit.yearOnYear }}%
</p>
同比
@@ -125,16 +123,16 @@
<!-- -->
<el-row :gutter="20">
<el-col :span="6">
<AccessoryEcharts :id="'pie1'" :title="'进店台次分车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie1'" :title="'进店台次分车型占比'" :pieData="pieData1"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie2'" :title="'进店台次分所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie2'" :title="'进店台次分所属公司占比'" :pieData="pieData2"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie3'" :title="'维保产值按车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie3'" :title="'维保产值按车型占比'" :pieData="pieData3"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie4'" :title="'维保产值按所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie4'" :title="'维保产值按所属公司占比'" :pieData="pieData4"></AccessoryEcharts>
</el-col>
</el-row>
<!-- -->
@@ -218,19 +216,19 @@
<!-- -->
<el-row :gutter="20">
<el-col :span="12">
<ConsumeEcharts :id="'pie5'" :title="'维保产值TOP5车型'"></ConsumeEcharts>
<ConsumeEcharts :id="'pie5'" :title="'维保产值TOP5车型'" :barData="topOne"></ConsumeEcharts>
</el-col>
<el-col :span="12">
<ConsumeEcharts :id="'pie6'" :title="'维保产值TOP5公司'"></ConsumeEcharts>
<ConsumeEcharts :id="'pie6'" :title="'维保产值TOP5公司'" :barData="topTwo"></ConsumeEcharts>
</el-col>
</el-row>
<!-- -->
<el-row :gutter="20">
<el-col :span="12">
<AccessoryEcharts :id="'pie7'" :title="'维保成本按车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie7'" :title="'维保成本按车型占比'" :pieData="pieData"></AccessoryEcharts>
</el-col>
<el-col :span="12">
<AccessoryEcharts :id="'pie8'" :title="'维保成本按所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie8'" :title="'维保成本按所属公司占比'" :pieData="pieData"></AccessoryEcharts>
</el-col>
</el-row>
<!-- -->
@@ -314,19 +312,19 @@
<!-- -->
<el-row :gutter="20">
<el-col :span="12">
<ConsumeEcharts :id="'pie9'" :title="'维保成本TOP10'"></ConsumeEcharts>
<ConsumeEcharts :id="'pie9'" :title="'维保成本TOP10'" :barData="topOne"></ConsumeEcharts>
</el-col>
<el-col :span="12">
<ConsumeEcharts :id="'pie10'" :title="'维保成本配件使用数量TOP10'"></ConsumeEcharts>
<ConsumeEcharts :id="'pie10'" :title="'维保成本配件使用数量TOP10'" :barData="topOne"></ConsumeEcharts>
</el-col>
</el-row>
<!-- -->
<el-row :gutter="20">
<el-col :span="12">
<AccessoryEcharts :id="'pie11'" :title="'维保利润按车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie11'" :title="'维保利润按车型占比'" :pieData="pieData"></AccessoryEcharts>
</el-col>
<el-col :span="12">
<AccessoryEcharts :id="'pie12'" :title="'维保利润按所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie12'" :title="'维保利润按所属公司占比'" :pieData="pieData"></AccessoryEcharts>
</el-col>
</el-row>
<!-- -->
@@ -410,10 +408,10 @@
<!-- -->
<el-row :gutter="20">
<el-col :span="12">
<ConsumeEcharts :id="'pie13'" :title="'维保利润TOP5车型'"></ConsumeEcharts>
<ConsumeEcharts :id="'pie13'" :title="'维保利润TOP5车型'" :barData="topOne"></ConsumeEcharts>
</el-col>
<el-col :span="12">
<ConsumeEcharts :id="'pie14'" :title="'维保利润TOP5公司'"></ConsumeEcharts>
<ConsumeEcharts :id="'pie14'" :title="'维保利润TOP5公司'" :barData="topOne"></ConsumeEcharts>
</el-col>
</el-row>
</el-card>
@@ -422,7 +420,7 @@
<script>
import { merchantListApi } from "@/api/merchant"
import { maintenanceAnalysisLattice } from "@/api/statistics.js"
import { maintenanceAnalysisLattice, maintenanceAnalysisModelRatio, maintenanceAnalysisCompany, maintenanceAnalysisYieldModel, maintenanceAnalysisYieldCompany, yieldModelandcompany } from "@/api/statistics.js"
import AccessoryEcharts from '../components/accessoryEcharts';
import ConsumeEcharts from '../components/consumeEcharts';
export default {
@@ -438,7 +436,7 @@ export default {
tableFrom: {
page: 1,
dateLimit: '',
type:1
type: 1
},
//进店总台次
frequency: {},
@@ -448,7 +446,37 @@ export default {
accessory: {},
//维保利润
profit: {},
//饼图1
pieData1: [],
//饼图2
pieData2: [],
//饼图3
pieData3: [],
//饼图4
pieData4: [],
//饼图默认数据
pieData:[{
name:'一',
value:10
},{
name:'二',
value:20
},{
name:'三',
value:30
},{
name:'四',
value:40
}],
//z柱图1
topOne:{
labels:['一','二','三','四'],
values:[10,20,30,40]
},
topTwo:{
labels:['一','二','三','四'],
values:[10,20,30,40]
}
};
},
mounted() {
@@ -461,9 +489,14 @@ export default {
// 初始化
init() {
this.maintenanceAnalysisLatticeFn()
this.maintenanceAnalysisModelRatioFn()
this.maintenanceAnalysisCompanyFn()
this.maintenanceAnalysisYieldModelFn()
this.maintenanceAnalysisYieldCompanyFn()
this.yieldModelandcompanyFn()
},
//年月日
selectChange(e) {
//年月日
selectChange(e) {
// console.log(e);
this.tableFrom.dateLimit = e;
this.timeVal = [];
@@ -511,6 +544,55 @@ export default {
//维保利润
this.profit = res.profit
})
},
//进店台次分车型占比
maintenanceAnalysisModelRatioFn() {
maintenanceAnalysisModelRatio(this.tableFrom).then(res => {
if(res.length){
this.pieData1 = res
}else{
this.pieData1= this.pieData
}
})
},
//进店台次分所属公司占比
maintenanceAnalysisCompanyFn() {
maintenanceAnalysisCompany(this.tableFrom).then(res => {
if(res.length){
this.pieData2 = res
}else{
this.pieData2= this.pieData
}
})
},
//维保产值按车型占比
maintenanceAnalysisYieldModelFn() {
maintenanceAnalysisYieldModel(this.tableFrom).then(res => {
if(res.length){
this.pieData3 = res
}else{
this.pieData3= this.pieData
}
})
},
//维保产值按所属公司占比
maintenanceAnalysisYieldCompanyFn() {
maintenanceAnalysisYieldCompany(this.tableFrom).then(res => {
if(res.length){
this.pieData4 = res
}else{
this.pieData4= this.pieData
}
})
},
//
yieldModelandcompanyFn() {
yieldModelandcompany(this.tableFrom).then(res => {
if(res.topOne){
this.topOne=res.topOne
this.topTwo=res.topTwo
}
})
}
}
};

View File

@@ -56,8 +56,7 @@
<div class="percentage">
<div :class="[money.yearOnYear >= 0 ? 'percentage-s' : 'percentage-j']">
<p>
<i :class="[money.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']"
style="font-weight: 700;"></i>
<i :class="[money.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']" style="font-weight: 700;"></i>
{{ money.yearOnYear }}%
</p>
同比
@@ -104,8 +103,7 @@
<div class="percentage">
<div :class="[profit.yearOnYear >= 0 ? 'percentage-s' : 'percentage-j']">
<p>
<i :class="[profit.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']"
style="font-weight: 700;"></i>
<i :class="[profit.yearOnYear >= 0 ? 'el-icon-top' : 'el-icon-bottom']" style="font-weight: 700;"></i>
{{ profit.yearOnYear }}%
</p>
同比
@@ -125,16 +123,16 @@
<!-- -->
<el-row :gutter="20">
<el-col :span="6">
<AccessoryEcharts :id="'pie1'" :title="'进店台次分车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie1'" :title="'进店台次分车型占比'" :pieData="pieData1"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie2'" :title="'进店台次分所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie2'" :title="'进店台次分所属公司占比'" :pieData="pieData2"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie3'" :title="'维保产值按车型占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie3'" :title="'维保产值按车型占比'" :pieData="pieData3"></AccessoryEcharts>
</el-col>
<el-col :span="6">
<AccessoryEcharts :id="'pie4'" :title="'维保产值按所属公司占比'"></AccessoryEcharts>
<AccessoryEcharts :id="'pie4'" :title="'维保产值按所属公司占比'" :pieData="pieData4"></AccessoryEcharts>
</el-col>
</el-row>
<!-- -->
@@ -422,7 +420,7 @@
<script>
import { merchantListApi } from "@/api/merchant"
import { maintenanceAnalysisLattice } from "@/api/statistics.js"
import { maintenanceAnalysisLattice, maintenanceAnalysisModelRatio, maintenanceAnalysisCompany, maintenanceAnalysisYieldModel, maintenanceAnalysisYieldCompany } from "@/api/statistics.js"
import AccessoryEcharts from '../components/accessoryEcharts';
import ConsumeEcharts from '../components/consumeEcharts';
export default {
@@ -438,7 +436,7 @@ export default {
tableFrom: {
page: 1,
dateLimit: '',
type:1
type: 3
},
//进店总台次
frequency: {},
@@ -448,6 +446,14 @@ export default {
accessory: {},
//维保利润
profit: {},
//饼图1
pieData1:[],
//饼图2
pieData2:[],
//饼图3
pieData3:[],
//饼图4
pieData4:[],
};
},
@@ -461,9 +467,13 @@ export default {
// 初始化
init() {
this.maintenanceAnalysisLatticeFn()
this.maintenanceAnalysisModelRatioFn()
this.maintenanceAnalysisCompanyFn()
this.maintenanceAnalysisYieldModelFn()
this.maintenanceAnalysisYieldCompanyFn()
},
//年月日
selectChange(e) {
//年月日
selectChange(e) {
// console.log(e);
this.tableFrom.dateLimit = e;
this.timeVal = [];
@@ -511,7 +521,35 @@ export default {
//维保利润
this.profit = res.profit
})
}
},
//进店台次分车型占比
maintenanceAnalysisModelRatioFn() {
maintenanceAnalysisModelRatio(this.tableFrom).then(res => {
this.pieData1=res
console.log(1, res);
})
},
//进店台次分所属公司占比
maintenanceAnalysisCompanyFn() {
maintenanceAnalysisCompany(this.tableFrom).then(res => {
console.log(2, res);
this.pieData2=res
})
},
//维保产值按车型占比
maintenanceAnalysisYieldModelFn() {
maintenanceAnalysisYieldModel(this.tableFrom).then(res => {
console.log(3, res);
this.pieData3=res
})
},
//维保产值按所属公司占比
maintenanceAnalysisYieldCompanyFn() {
maintenanceAnalysisYieldCompany(this.tableFrom).then(res => {
console.log(4, res);
this.pieData4=res
})
},
}
};
</script>