| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-13 14:54:26 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2024-11-05 17:15:55 |
| | | * @LastEditTime: 2024-12-03 12:31:17 |
| | | * @FilePath: \bigScreen\src\views\survey\components\box\unitContent.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | | --> |
| | | <script setup> |
| | | import { useEchartsResize } from 'hooks/useEchartsResize' |
| | | import { useEchartsResize } from "hooks/useEchartsResize" |
| | | |
| | | import { getEmergencySpaceStatistic } from '../../../../api/indParkInfo' |
| | | import { getEmergencySpaceStatistic } from "../../../../api/indParkInfo" |
| | | |
| | | let $echarts = inject('echarts') |
| | | let $echarts = inject("echarts") |
| | | const curEcharts = ref(null) |
| | | |
| | | let myEcharts = reactive(null) |
| | | let myEcharts = reactive({ |
| | | chart: '' |
| | | }) |
| | | |
| | | function getEmergencySpace () { |
| | | getEmergencySpaceStatistic().then(res => { |
| | | // console.log(res) |
| | | getEmergencySpaceStatistic().then((res) => { |
| | | let data = res.data.data |
| | | let dataRsult = [] |
| | | data.forEach(item => { |
| | | var total = 0 |
| | | data.forEach((item) => { |
| | | dataRsult.push({ |
| | | name: item.type, |
| | | value: item.num |
| | | value: item.num, |
| | | }) |
| | | total = total + item.num |
| | | }) |
| | | |
| | | myEcharts.setOption({ |
| | | myEcharts.chart.setOption({ |
| | | title: { |
| | | text: "总数", |
| | | subtext: String(total), |
| | | textStyle: { |
| | | fontSize: 16, |
| | | color: "#fff", |
| | | lineHeight: 20, |
| | | }, |
| | | subtextStyle: { |
| | | fontSize: 28, |
| | | color: "#fff", |
| | | }, |
| | | textAlign: "center", |
| | | right: "28%", |
| | | top: "36%", |
| | | }, |
| | | legend: { |
| | | orient: "vertical", |
| | | top: '5%', |
| | | top: "4%", |
| | | left: "5%", |
| | | textStyle: { |
| | | color: '#fff' |
| | | } |
| | | color: "#fff", |
| | | }, |
| | | }, |
| | | |
| | | grid: { |
| | | top: '6%', |
| | | left: '6%', |
| | | right: '6%', |
| | | bottom: '6%', |
| | | containLabel: true |
| | | top: "6%", |
| | | left: "6%", |
| | | right: "6%", |
| | | bottom: "6%", |
| | | containLabel: true, |
| | | }, |
| | | |
| | | tooltip: { |
| | | trigger: 'item' |
| | | trigger: "item", |
| | | }, |
| | | |
| | | series: [ |
| | | { |
| | | // name: 'Access From', |
| | | type: 'pie', |
| | | left: '10%', |
| | | radius: ['30%', '60%'], |
| | | type: "pie", |
| | | left: "25%", |
| | | radius: ["45%", "75%"], |
| | | label: { |
| | | show: false, |
| | | }, |
| | | labelLine: { |
| | | show: false, |
| | | }, |
| | | // avoidLabelOverlap: false, |
| | | // padAngle: 5, |
| | | // itemStyle: { |
| | |
| | | // show: true |
| | | // } |
| | | // }, |
| | | data: dataRsult |
| | | } |
| | | ] |
| | | data: dataRsult, |
| | | }, |
| | | ], |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | nextTick(() => { |
| | | myEcharts = $echarts.init(curEcharts.value) |
| | | myEcharts.chart = $echarts.init(curEcharts.value) |
| | | getEmergencySpace() |
| | | }) |
| | | |
| | | const echartsResize = () => { |
| | | myEcharts && myEcharts.resize() |
| | | myEcharts.chart && myEcharts.chart.resize() |
| | | } |
| | | |
| | | useEchartsResize(echartsResize) |
| | | |
| | | onUnmounted(() => { |
| | | if (myEcharts.chart) { |
| | | myEcharts.chart.clear() |
| | | myEcharts.chart.dispose() |
| | | |
| | | myEcharts.chart = null |
| | | } |
| | | }) |
| | | </script> |
| | | |
| | | <template> |
| | | <div class="w100 h100" ref="curEcharts"> |
| | | |
| | | </div> |
| | | <div class="w100 h100" ref="curEcharts"></div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped></style> |
| | | <style lang="scss" scoped></style> |