From 20e6eab3129e0d40a2c66650deae79cbfdd46526 Mon Sep 17 00:00:00 2001 From: web <candymxq888@outlook.com> Date: 星期五, 28 三月 2025 17:07:13 +0800 Subject: [PATCH] fix:修改图表配置 --- src/views/screen/temperature/statics/index.vue | 272 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 269 insertions(+), 3 deletions(-) diff --git a/src/views/screen/temperature/statics/index.vue b/src/views/screen/temperature/statics/index.vue index 63edf7c..bbc1fc9 100644 --- a/src/views/screen/temperature/statics/index.vue +++ b/src/views/screen/temperature/statics/index.vue @@ -1,13 +1,279 @@ <script setup> +import {onMounted, ref} from "vue"; +import * as echarts from 'echarts/core'; +const wenduType = ref(3) +const wenduChartRef = ref() +let wenduCharts = null; +const wenduTimeValue = ref() +const shuiweiType = ref(3) +const shuiweiChartRef = ref() +let shuiweiCharts = null +const shuiweiTimeValue = ref() + +const handleSelectType = (type) => { + if(type === 'wendu') { + wenduTimeValue.value = 0 + } else if (type === 'shuiwei') { + shuiweiTimeValue.value = 0 + } +} + +const initwenduChart = () => { + if(wenduChartRef.value) { + wenduCharts = echarts.init(wenduChartRef.value); + const options = { + tooltip: { + trigger: 'axis', + }, + grid: { + top: 80, + left: 60, + right: 60, + bottom: 60 + }, + xAxis: { + type: 'category', + boundaryGap: false, + data: ['设备离线', '水位异常', '流量异常', '流速异常', '其他异常'], + axisLabel: { + color: '#fff', + fontSize: '1.2rem' + } + }, + yAxis: { + type: 'value', + name: '℃', + nameTextStyle: { + color: '#fff', + fontSize: '1.2rem' + }, + axisLabel: { + color: '#fff', + fontSize: '1.2rem' + } + }, + series: [ + { + data: [36, 44, 38, 24, 36], + type: 'line', + areaStyle: { + color: { + type: 'linear', + x: 0, + y: 0, + x2: 0, + y2: 1, + colorStops: [ + {offset: 0.2, color: 'rgba(0,255,255,0.5)' }, + {offset: 1, color: 'rgba(0,255,255,0.1)' }, + ], + global: false // 缺省为 false + } + } + } + ] + } + wenduCharts.setOption(options); + } +} + +const initshuiweiChart = () => { + if(shuiweiChartRef.value) { + shuiweiCharts = echarts.init(shuiweiChartRef.value); + const options = { + tooltip: { + trigger: 'axis', + }, + grid: { + top: 80, + left: 60, + right: 60, + bottom: 60 + }, + xAxis: { + type: 'category', + data: ['设备离线', '水位异常', '流量异常', '流速异常', '其他异常'], + axisLabel: { + color: '#fff', + fontSize: '1.2rem' + } + }, + yAxis: { + type: 'value', + name: 'm', + nameTextStyle: { + color: '#fff', + fontSize: '1.2rem' + }, + axisLabel: { + color: '#fff', + fontSize: '1.2rem' + } + }, + series: [ + { + data: [36, 44, 38, 24, 63], + type: 'bar', + itemStyle: { + color: '#BBCFFF' + } + } + ] + } + shuiweiCharts.setOption(options); + } +} + +onMounted(() => { + initwenduChart() + initshuiweiChart() +}) </script> <template> - <div> - 汇总统计 + <div class="statis"> + <div class="item"> + <div class="item-t"> + <div class="name">水温汇总统计</div> + <div class="select"> + <el-radio-group v-model="wenduType" @change="handleSelectType('wendu')"> + <el-radio :value="1">日</el-radio> + <el-radio :value="2">月</el-radio> + <el-radio :value="3">年</el-radio> + </el-radio-group> + </div> + </div> + <div class="charts" ref="wenduChartRef"></div> + <div class="title"> + <el-date-picker + v-if="wenduType === 1" + v-model="wenduTimeValue" + type="date" + placeholder="请选择时间" + /> + <el-date-picker + v-else-if="wenduType === 2" + v-model="wenduTimeValue" + type="month" + placeholder="请选择时间" + /> + <el-date-picker + v-else + v-model="wenduTimeValue" + type="year" + placeholder="请选择时间" + /> + <div>电站平均水温汇总</div> + </div> + </div> + <div class="item"> + <div class="item-t"> + <div class="name">水位汇总统计</div> + <div class="select"> + <el-radio-group v-model="shuiweiType" @change="handleSelectType('shuiwei')"> + <el-radio :value="1">日</el-radio> + <el-radio :value="2">月</el-radio> + <el-radio :value="3">年</el-radio> + </el-radio-group> + </div> + </div> + <div class="charts" ref="shuiweiChartRef"></div> + <div class="title"> + <el-date-picker + v-if="wenduType === 1" + v-model="shuiweiTimeValue" + type="date" + placeholder="请选择时间" + /> + <el-date-picker + v-else-if="wenduType === 2" + v-model="shuiweiTimeValue" + type="month" + placeholder="请选择时间" + /> + <el-date-picker + v-else + v-model="shuiweiTimeValue" + type="year" + placeholder="请选择时间" + /> + <div>电站平均水位汇总</div> + </div> + </div> </div> </template> <style scoped lang="scss"> - +.statis{ + height: 100%; + background: linear-gradient( 180deg, #91BDDB 0%, rgba(102, 102, 102, 0.5) 100%); + display: flex; + justify-content: center; + align-items: center; + gap: 30px; + .item{ + width: 48%; + height: 96%; + background: rgba(23,108,229,0.3); + border: 1px solid #176CE5; + border-radius: 8px; + .item-t{ + height: 10%; + padding: 0 30px; + display: flex; + justify-content: space-between; + align-items: center; + .name{ + font-size: 36px; + color: #fff; + } + .select{ + :deep(.el-radio){ + color: #fff; + } + :deep(.el-radio__label){ + font-size: 20px; + } + :deep(.el-radio__input.is-checked+.el-radio__label){ + color: #00ff00; + } + :deep(.el-radio__input.is-checked .el-radio__inner){ + background-color: #00ff00; + } + } + } + .charts{ + height: 80%; + } + .title{ + height: 10%; + display: flex; + align-items: center; + justify-content: center; + font-size: 26px; + color: #fff; + :deep(.el-date-editor){ + width: 10rem; + } + :deep(.el-input__wrapper){ + background-color: transparent; + box-shadow: none; + border-radius: 0; + .el-input__prefix{ + color: #fff; + font-size: 1.2rem; + } + .el-input__inner{ + color: #fff; + font-size: 1.2rem; + &::placeholder{ + color: #fff; + font-size: 1.2rem; + } + } + } + } + } +} </style> \ No newline at end of file -- Gitblit v1.9.3