You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
161 lines
4.1 KiB
Vue
161 lines
4.1 KiB
Vue
<template v-loading.fullscreen.lock="tableLoading">
|
|
<div class="chart-container" >
|
|
<span>{{ selectedCompany }}-</span>
|
|
<span>{{ selectedStation }}-</span>
|
|
<span>{{ startDate }}-</span>
|
|
<span>{{ endDate }}-</span>
|
|
<div style="width: 800px;height: 500px;float: left" class="chart" ref="passengerFlowChart"></div>
|
|
<div style="width: 800px;height: 500px;float: left" class="chart" ref="revenueChart"></div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import * as echarts from 'echarts';
|
|
import axios from "axios";
|
|
import {CloseBold, Delete, Edit, Reading, Select, ZoomIn} from "@element-plus/icons-vue";
|
|
import zhCn from "element-plus/lib/locale/lang/zh-cn";
|
|
|
|
export default {
|
|
name: 'khRevenueFow',
|
|
mounted() {
|
|
},
|
|
data() {
|
|
return {
|
|
tableLoading:true
|
|
}
|
|
},
|
|
methods: {
|
|
initPassengerFlowChart(data) {
|
|
const chartDom = this.$refs.passengerFlowChart;
|
|
const myChart = echarts.init(chartDom);
|
|
const numDataPoints = 50;
|
|
//const data = genData(numDataPoints);
|
|
// 客货流量统计图表
|
|
myChart.setOption({
|
|
// 图表配置选项
|
|
title: {
|
|
text: '客货流量统计(辆)',
|
|
left: 'center'
|
|
},
|
|
tooltip: {
|
|
trigger: 'item',
|
|
formatter: '{a} <br/>{b} : {c} ({d}%)'
|
|
},
|
|
legend: {
|
|
type: 'scroll',
|
|
orient: 'vertical',
|
|
left: 10,
|
|
top: 20,
|
|
bottom: 20,
|
|
data: data.legendData
|
|
},
|
|
series: [
|
|
{
|
|
name: '流量',
|
|
type: 'pie',
|
|
radius: '55%',
|
|
center: ['40%', '50%'],
|
|
data: data.seriesData,
|
|
emphasis: {
|
|
itemStyle: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
});
|
|
},
|
|
initRevenueChart(data) {
|
|
const chartDom = this.$refs.revenueChart;
|
|
const myChart = echarts.init(chartDom);
|
|
const numDataPoints = 50;
|
|
//const data = genData(numDataPoints);
|
|
// 在这里配置你的客货收入统计图表
|
|
myChart.setOption({
|
|
title: {
|
|
text: '客货收入统计(万元)',
|
|
left: 'center'
|
|
},
|
|
tooltip: {
|
|
trigger: 'item',
|
|
formatter: '{a} <br/>{b} : {c} ({d}%)'
|
|
},
|
|
legend: {
|
|
type: 'scroll',
|
|
orient: 'vertical',
|
|
left: 10,
|
|
top: 20,
|
|
bottom: 20,
|
|
data: data.legendData
|
|
},
|
|
series: [
|
|
{
|
|
name: '收入',
|
|
type: 'pie',
|
|
radius: '55%',
|
|
center: ['40%', '50%'],
|
|
data: data.seriesData,
|
|
emphasis: {
|
|
itemStyle: {
|
|
shadowBlur: 10,
|
|
shadowOffsetX: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
|
}
|
|
}
|
|
}
|
|
]
|
|
});
|
|
},
|
|
getData(){
|
|
// 调用后端API获取数据
|
|
axios.post('/WhiteListManagerSys/comNo/statistics',
|
|
{
|
|
'selectedCompany':this.selectedCompany,
|
|
'selectedStation':this.selectedStation,
|
|
'startDate':this.startDate,
|
|
'endDate':this.endDate
|
|
}
|
|
).then((res) => {
|
|
|
|
var legendData = [];
|
|
var seriesData = [];
|
|
var legendDataReven = [];
|
|
var seriesDataReven = [];
|
|
legendData.push("客车");
|
|
legendData.push("货车");
|
|
seriesData.push({
|
|
name: "客车",
|
|
value: res.data.KE
|
|
},{
|
|
name: "货车",
|
|
value: res.data.HUO
|
|
});
|
|
this.initPassengerFlowChart({
|
|
legendData: legendData,
|
|
seriesData: seriesData,
|
|
});
|
|
|
|
legendDataReven.push("客车");
|
|
legendDataReven.push("货车");
|
|
seriesDataReven.push({
|
|
name: "客车",
|
|
value: res.data.KECASH
|
|
},{
|
|
name: "货车",
|
|
value: res.data.HUOCASH
|
|
});
|
|
this.initRevenueChart({
|
|
legendData: legendDataReven,
|
|
seriesData: seriesDataReven,
|
|
|
|
})
|
|
this.tableLoading=false;
|
|
});
|
|
}
|
|
},
|
|
|
|
}
|
|
</script>
|