|
|
@@ -0,0 +1,97 @@
|
|
|
+<template>
|
|
|
+ <div
|
|
|
+ id="main"
|
|
|
+ style="width: 1200px; height: 400px;"
|
|
|
+ />
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import { onMounted, onBeforeUnmount } from 'vue'
|
|
|
+import * as echarts from 'echarts'
|
|
|
+import 'echarts/lib/chart/line' // 按需引入折线图
|
|
|
+
|
|
|
+const option = {
|
|
|
+ title: { text: '车流量统计' },
|
|
|
+ tooltip: { trigger: 'axis' },
|
|
|
+ legend: {
|
|
|
+ data: ['客车', '货车', '轿车', '工程车', '卡车', '拖车', '私家车']
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ left: '3%',
|
|
|
+ right: '4%',
|
|
|
+ bottom: '3%',
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ toolbox: { feature: { saveAsImage: {}}},
|
|
|
+ xAxis: {
|
|
|
+ type: 'category',
|
|
|
+ boundaryGap: false,
|
|
|
+ data: ['08:00', '08:30', '09:00', '09:30', '10:00', '10:30', '11:00', '11:30', '12:00', '12:30', '13:00', '13:30', '14:00', '14:30', '15:00', '15:30', '16:00', '16:30', '17:00', '17:30', '18:00', '18:30', '19:00', '19:30']
|
|
|
+ },
|
|
|
+ yAxis: { type: 'value' },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '客车',
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: [120, 132, 101, 134, 90, 230, 210, 101]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '货车',
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: [220, 182, 191, 234, 290, 330, 310, 241]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '轿车',
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: [150, 232, 201, 154, 190, 330, 410, 963]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '工程车',
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: [320, 332, 301, 334, 390, 330, 320, 148]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '卡车',
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: [820, 932, 901, 934, 1290, 1330, 1320, 674]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '拖车',
|
|
|
+ type: 'line',
|
|
|
+ stack: 'Total',
|
|
|
+ data: [98, 92, 701, 964, 670, 1260, 1450, 196]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+}
|
|
|
+
|
|
|
+let chartInstance = null
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ const chartDom = document.getElementById('main')
|
|
|
+ chartInstance = echarts.init(chartDom)
|
|
|
+ chartInstance.setOption(option)
|
|
|
+
|
|
|
+ // 响应式调整
|
|
|
+ window.addEventListener('resize', () => {
|
|
|
+ chartInstance.resize()
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
+onBeforeUnmount(() => {
|
|
|
+ if (chartInstance) {
|
|
|
+ chartInstance.dispose()
|
|
|
+ window.removeEventListener('resize', chartInstance.resize)
|
|
|
+ }
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+#main {
|
|
|
+ margin: 0 auto;
|
|
|
+}
|
|
|
+</style>
|