| | |
| | | <!-- |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-03-13 14:54:26 |
| | | * @Date: 2024-11-04 16:32:04 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-03-13 15:00:55 |
| | | * @FilePath: \forest-fire\src\views\statistics\components\box\dataContent.vue |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. |
| | | * @LastEditTime: 2024-12-02 21:00:44 |
| | | * @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, onUnmounted } from "vue" |
| | | |
| | | import { ref, reactive } from 'vue' |
| | | let $echarts = inject("echarts") |
| | | const curEcharts = ref(null) |
| | | |
| | | import { getPage } from '../../../../api/indParkInfo' |
| | | |
| | | var parkQy = ref([]) |
| | | |
| | | var searchQuery = ref('') |
| | | |
| | | onMounted(() => { |
| | | getPages() |
| | | let myEcharts = reactive({ |
| | | chart: null |
| | | }) |
| | | |
| | | const echartsColors = ['#1E90FF', '#36A2EB', '#FFD700', '#FFA500', '#228B22', '#8FBC8F'] |
| | | |
| | | function getPages() { |
| | | getPage().then(res => { |
| | | parkQy.value = res.data.data.records |
| | | // console.log(res) |
| | | }).catch(err => { |
| | | console.log(err) |
| | | 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.chart.setOption({ |
| | | tooltip: {}, |
| | | 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", |
| | | //坐标轴刻度标签的相关设置。 |
| | | interval: 0, //设置为 1,表示『隔一个标签显示一个标签』 |
| | | margin: 15, |
| | | rotate: 45, //调整数值改变倾斜的幅度(范围-90到90) |
| | | color: "#fff", |
| | | fontStyle: "normal", |
| | | fontFamily: "微软雅黑", |
| | | fontSize: 12, |
| | | }, |
| | | }, |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: "value", |
| | | nameTextStyle: { |
| | | color: "#fff", |
| | | }, |
| | | axisLine: { |
| | | show: true, |
| | | lineStyle: { |
| | | color: "#fff", |
| | | }, |
| | | }, |
| | | axisTick: { |
| | | lineStyle: { |
| | | color: "#fff", |
| | | }, |
| | | }, |
| | | axisLabel: { |
| | | color: "#fff", |
| | | }, |
| | | splitLine: { |
| | | show: false, |
| | | } |
| | | }, |
| | | ], |
| | | series: [ |
| | | { |
| | | name: "救援人数", |
| | | type: "bar", |
| | | barWidth: "30", |
| | | data: yaxis_data.map((i, ind) => { |
| | | return { |
| | | value: i, |
| | | itemStyle: { |
| | | color: echartsColors[ind], |
| | | }, |
| | | } |
| | | }), |
| | | }, |
| | | ], |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | nextTick(() => { |
| | | myEcharts.chart = $echarts.init(curEcharts.value) |
| | | getStatistic() |
| | | }) |
| | | |
| | | const echartsResize = () => { |
| | | myEcharts.chart && myEcharts.chart.resize() |
| | | } |
| | | |
| | | useEchartsResize(echartsResize) |
| | | |
| | | onUnmounted(() => { |
| | | if (myEcharts.chart) { |
| | | myEcharts.chart.clear() |
| | | myEcharts.chart.dispose() |
| | | |
| | | myEcharts.chart = null |
| | | } |
| | | }) |
| | | </script> |
| | | |
| | | <template> |
| | | <!-- <public-content> |
| | | <template #content> --> |
| | | <div class="data-content"> |
| | | <div v-for="item in parkQy" :key="item.id"> |
| | | <div class="data-content-item"> |
| | | <div> {{ item.name }}</div> |
| | | <el-button size="small" type="primary">{{ item.categoryName }}</el-button> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <!-- </template> |
| | | </public-content> --> |
| | | <div class="w100 h100" ref="curEcharts"></div> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | .data-content { |
| | | color: #fff; |
| | | |
| | | } |
| | | |
| | | .data-content-item { |
| | | display: flex; |
| | | margin: 2px 10px; |
| | | padding: 5px 0; |
| | | text-indent: 1em; |
| | | background-color: #747bff; |
| | | justify-content: space-between; |
| | | // 超过高度自动显示滚动条 |
| | | overflow-y: auto; |
| | | border-radius: 5px; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped></style> |