| | |
| | | </div> |
| | | </template> |
| | | <template #content> |
| | | <div id="analysisChart"></div> |
| | | <div class="charts-container"> |
| | | <div id="analysisChart" ref="analysisChart"></div> |
| | | |
| | | </div> |
| | | </template> |
| | | </RightTitle> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import RightTitle from "@/components/right-title"; |
| | | import { ref } from 'vue'; |
| | | |
| | | import * as echarts from 'echarts'; |
| | | import { ref, onMounted } from 'vue'; |
| | | const analysisChart = ref(null); |
| | | const selectItems = ref([ |
| | | { itemIndex: 1, name: '时间统计', isActive: false }, |
| | | { itemIndex: 2, name: '街道统计', isActive: true }, |
| | | ]); |
| | | |
| | | const testData = ref([ |
| | | { name: '奎光塔街道', state1: 1400, state2: 3533, state3: 2316 }, |
| | | { name: '蒲阳街道', state1: 1820, state2: 4281, state3: 3064 }, |
| | | { name: '聚源镇', state1: 972, state2: 2124, state3: 1500 }, |
| | | { name: '银杏街道', state1: 1109, state2: 2876, state3: 1500 }, |
| | | { name: '石羊镇', state1: 972, state2: 2124, state3: 1500 }, |
| | | { name: '龙池镇', state1: 972, state2: 2124, state3: 1500 }, |
| | | { name: '天马镇', state1: 972, state2: 4000, state3: 1500 }, |
| | | { name: '玉堂街道', state1: 972, state2: 2878, state3: 1500 }, |
| | | { name: '灌口街道', state1: 972, state2: 2124, state3: 1500 }, |
| | | ]); |
| | | |
| | | |
| | | const echartsConfig = { |
| | | legend: { |
| | | right: '0', |
| | | icon: 'circle', |
| | | textStyle: { |
| | | color: 'rgba(77, 118, 176, 1)' |
| | | }, |
| | | data: [ |
| | | { |
| | | name: '醉驾', |
| | | itemStyle: { |
| | | color: 'rgba(0, 168, 217, 1)' |
| | | } |
| | | }, |
| | | { |
| | | name: '酒驾', |
| | | itemStyle: { |
| | | color: 'rgba(207, 178, 73, 1)' |
| | | } |
| | | }, |
| | | { |
| | | name: '其他', |
| | | itemStyle: { |
| | | color: 'rgba(43, 176, 109, 1)' |
| | | } |
| | | }, |
| | | ] |
| | | |
| | | }, |
| | | tooltip: {}, |
| | | grid: { |
| | | left: 0, |
| | | right: 0, |
| | | bottom: 0, |
| | | top: '15%', |
| | | containLabel: true |
| | | }, |
| | | dataset: { |
| | | dimensions: ['name', 'state1', 'state2', 'state3'], |
| | | source: testData.value |
| | | }, |
| | | xAxis: { type: 'category', axisTick: false }, |
| | | yAxis: {}, |
| | | // Declare several bar series, each will be mapped |
| | | // to a column of dataset.source by default. |
| | | series: [ |
| | | { |
| | | type: 'bar', |
| | | name: '醉驾', |
| | | barWidth: 13, |
| | | barGap: '50%', |
| | | label: { |
| | | show: true, // 显示标签 |
| | | position: 'top', // 标签位置 |
| | | color: 'rgba(0, 168, 217, 1)', // 标签颜色 |
| | | fontSize: 10, |
| | | }, |
| | | itemStyle: { |
| | | // 设置渐变色 |
| | | color: new echarts.graphic.LinearGradient( |
| | | 0, 1, 0, 0, |
| | | [ |
| | | { offset: 0, color: 'rgba(14, 32, 54, 1)' }, // 0% 处的颜色 |
| | | { offset: 1, color: 'rgba(0, 168, 217, 1)' } // 100% 处的颜色 |
| | | ] |
| | | ) |
| | | }, |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | name: '酒驾', |
| | | barWidth: 13, |
| | | barGap: '50%', |
| | | label: { |
| | | show: true, // 显示标签 |
| | | position: 'top', // 标签位置 |
| | | color: 'rgba(207, 178, 73, 1)', // 标签颜色 |
| | | fontSize: 10, |
| | | }, |
| | | itemStyle: { |
| | | // 设置渐变色 |
| | | color: new echarts.graphic.LinearGradient( |
| | | 0, 1, 0, 0, |
| | | [ |
| | | { offset: 0, color: 'rgba(14, 31, 53, 1)' }, // 0% 处的颜色 |
| | | { offset: 1, color: 'rgba(207, 178, 73, 1)' } // 100% 处的颜色 |
| | | ] |
| | | ) |
| | | }, |
| | | }, |
| | | { |
| | | type: 'bar', |
| | | name: '其他', |
| | | barWidth: 13, |
| | | barGap: '50%', |
| | | label: { |
| | | show: true, // 显示标签 |
| | | position: 'top', // 标签位置 |
| | | color: 'rgba(43, 176, 109, 1)', // 标签颜色 |
| | | fontSize: 10, |
| | | }, |
| | | itemStyle: { |
| | | // 设置渐变色 |
| | | color: new echarts.graphic.LinearGradient( |
| | | 0, 1, 0, 0, |
| | | [ |
| | | { offset: 0, color: 'rgba(14, 31, 53, 1)' }, // 0% 处的颜色 |
| | | { offset: 1, color: 'rgba(43, 176, 109, 1)' } // 100% 处的颜色 |
| | | ] |
| | | ) |
| | | }, |
| | | }, |
| | | ] |
| | | } |
| | | |
| | | |
| | | |
| | | onMounted(() => { |
| | | const myChart = echarts.init(analysisChart.value); |
| | | myChart.setOption(echartsConfig); |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | .item:last-child { |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .charts-container { |
| | | width: 100%; |
| | | height: 306px; |
| | | padding: 20px; |
| | | background-color: rgba(17, 34, 58, 0.6); |
| | | border: 1px solid rgba(47, 91, 157, 0.8); |
| | | } |
| | | |
| | | #analysisChart { |
| | | width: 100%; |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | } |
| | | </style> |