| | |
| | | |
| | | <!-- |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2024-11-04 16:32:04 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-05 17:12:37 |
| | | * @FilePath: \bigScreen\src\views\survey\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2024 by shuishen, All Rights Reserved. |
| | | --> |
| | | <script setup> |
| | | import publicContent from './publicContent.vue' |
| | | |
| | | // import { ref, reactive, onMounted, nextTick, inject } from 'vue' |
| | | |
| | | import { useEchartsResize } from 'hooks/useEchartsResize' |
| | | import { getRescueTeamStatistic } from '@/api/indParkInfo' |
| | | import { nextTick } from 'vue' |
| | | |
| | | let $echarts = inject('echarts') |
| | | const curEcharts = ref(null) |
| | | |
| | | let myEcharts = reactive(null) |
| | | |
| | | onMounted(() => { |
| | | nextTick(() => { |
| | | myEcharts = $echarts.init(curEcharts.value) |
| | | getStatistic() |
| | | |
| | | function getStatistic () { |
| | | getRescueTeamStatistic().then(res => { |
| | | let xaxis_data = [] |
| | | let yaxis_data = [] |
| | | res.data.data.forEach(element => { |
| | | xaxis_data.push(element.type) |
| | | yaxis_data.push(element.num) |
| | | }) |
| | | }) |
| | | |
| | | |
| | | function getStatistic() { |
| | | getRescueTeamStatistic().then(res => { |
| | | let xaxis_data = [] |
| | | let yaxis_data = [] |
| | | res.data.data.forEach(element => { |
| | | xaxis_data.push(element.type) |
| | | yaxis_data.push(element.num) |
| | | }); |
| | | |
| | | myEcharts.setOption({ |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: xaxis_data, |
| | | axisTick: { |
| | | alignWithLabel: true |
| | | } |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value' |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: 'Direct', |
| | | type: 'bar', |
| | | barWidth: '30%', |
| | | data: yaxis_data |
| | | } |
| | | ] |
| | | }) |
| | | myEcharts.setOption({ |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | grid: { |
| | | top: '6%', |
| | | left: '6%', |
| | | right: '6%', |
| | | bottom: '6%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: xaxis_data, |
| | | axisTick: { |
| | | alignWithLabel: true |
| | | }, |
| | | nameTextStyle: { |
| | | color: '#fff' |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | alignWithLabel: true, |
| | | lineStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | color: '#fff' |
| | | }, |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value', |
| | | nameTextStyle: { |
| | | color: '#fff' |
| | | }, |
| | | axisLine: { |
| | | lineStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | axisTick: { |
| | | lineStyle: { |
| | | color: '#fff' |
| | | } |
| | | }, |
| | | axisLabel: { |
| | | color: '#fff' |
| | | }, |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '救援人数', |
| | | type: 'bar', |
| | | barWidth: '30', |
| | | data: yaxis_data, |
| | | itemStyle: { |
| | | color: 'rgb(0, 0, 144)' |
| | | } |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | |
| | | }) |
| | | } |
| | | |
| | | nextTick(() => { |
| | | myEcharts = $echarts.init(curEcharts.value) |
| | | getStatistic() |
| | | }) |
| | | |
| | | const echartsResize = () => { |
| | | myEcharts && myEcharts.resize() |
| | | } |
| | | |
| | | useEchartsResize(echartsResize) |
| | | </script> |
| | | |
| | | <template> |
| | | <public-content> |
| | | <template #content> |
| | | <div class="unit-content"> |
| | | <div class="unit-content-echarts" ref="curEcharts"> |
| | | <div class="w100 h100" ref="curEcharts"> |
| | | |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </public-content> |
| | | </div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .data-content { |
| | | color: #fff; |
| | | |
| | | } |
| | | |
| | | .unit-content-echarts { |
| | | height: 200px; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped></style> |