2023-05-31 08:16:19 +00:00
|
|
|
<template>
|
|
|
|
<div :class="$style['container']">
|
2023-06-02 06:17:10 +00:00
|
|
|
<header2 ref="headerref" :width="'100%'" :height="'100px'" :title="`南门水房物联监测系统`" :titleTip="[]" :typeFun="['time']"
|
2023-05-31 08:16:19 +00:00
|
|
|
:alarmType="['']"></header2>
|
|
|
|
<div class="main">
|
2023-06-15 10:03:49 +00:00
|
|
|
<div class="left-title">数据监测</div>
|
|
|
|
<div class="lt-data item">
|
|
|
|
<div class="left">进水</div>
|
|
|
|
<div class="center">20</div>
|
|
|
|
</div>
|
|
|
|
<div class="rt-data item">
|
|
|
|
<div class="left">出水</div>
|
|
|
|
<div class="center">20</div>
|
|
|
|
</div>
|
|
|
|
<div class="lb-data item">
|
|
|
|
<div class="left">消耗</div>
|
|
|
|
<div class="center">20</div>
|
|
|
|
</div>
|
|
|
|
<div class="rb-data item">
|
|
|
|
<div class="left">用电</div>
|
|
|
|
<div class="center">20</div>
|
|
|
|
</div>
|
|
|
|
<!-- 总体趋势图 -->
|
|
|
|
<div class="rt-title">总体趋势图</div>
|
|
|
|
<div class="rt-radio">
|
|
|
|
<el-radio-group v-model="date" size="small">
|
2023-06-16 02:57:20 +00:00
|
|
|
<el-radio-button label="1">近一周</el-radio-button>
|
|
|
|
<el-radio-button label="2">近一月</el-radio-button>
|
|
|
|
<el-radio-button label="3">近三月</el-radio-button>
|
2023-06-15 10:03:49 +00:00
|
|
|
</el-radio-group>
|
|
|
|
</div>
|
|
|
|
<div class="mainChart" ref="mainChart"></div>
|
2023-06-16 02:57:20 +00:00
|
|
|
<div class="math-content">
|
|
|
|
<el-row>
|
|
|
|
<el-col :span="12" class="p-left10"></el-col>
|
|
|
|
<el-col :span="4" class="math-title-color">最大值</el-col>
|
|
|
|
<el-col :span="4" class="math-title-color">最小值</el-col>
|
|
|
|
<el-col :span="4" class="math-title-color">平均值</el-col>
|
|
|
|
</el-row>
|
|
|
|
<el-row v-for="item in mathList">
|
|
|
|
<el-col :span="12" class="p-left10" style="display: flex;justify-content: start;align-items: center;">
|
|
|
|
<div :style="{'background':item.color,'width':'25px','height':'20px','margin-right':'5px'}"></div>
|
|
|
|
<text>{{ item.name }}</text>
|
|
|
|
</el-col>
|
|
|
|
<el-col :span="4">{{ item.max }}</el-col>
|
|
|
|
<el-col :span="4">{{ item.min }}</el-col>
|
|
|
|
<el-col :span="4">{{ item.avg }}</el-col>
|
|
|
|
</el-row>
|
|
|
|
</div>
|
2023-06-15 10:03:49 +00:00
|
|
|
<!-- 效益&效率 -->
|
|
|
|
<div class="rb-title">效益&效率</div>
|
|
|
|
<div class="rb-content">
|
|
|
|
<div class="progress">
|
|
|
|
<el-progress type="circle" width="150" :percentage="25" />
|
|
|
|
<div class="progress-text">效益</div>
|
|
|
|
</div>
|
|
|
|
<div class="progress">
|
|
|
|
<el-progress type="circle" width="150" :percentage="25" />
|
|
|
|
<div class="progress-text">效率</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-05-31 08:16:19 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang='ts'>
|
|
|
|
import { onMounted, onUnmounted, reactive, ref, getCurrentInstance } from "vue";
|
|
|
|
import header2 from "@/components/headerBox/header2.vue";
|
|
|
|
let imgUrl = require('@/assets/img/water_room.png')
|
|
|
|
const { proxy } = getCurrentInstance() as any
|
|
|
|
const mainChart = ref(null)
|
|
|
|
let chart = null
|
2023-06-15 10:03:49 +00:00
|
|
|
let date = ref('1')
|
2023-05-31 08:16:19 +00:00
|
|
|
const colors = ['#5470C6', '#91CC75', '#EE6666'];
|
2023-06-16 02:57:20 +00:00
|
|
|
//进水量 出水量 用电量 最大值 最小值 平均值
|
|
|
|
let mathList = reactive([
|
|
|
|
{ color: '#5470C6', name: '进水量', max: 100, min: 0, avg: 50 },
|
|
|
|
{ color: '#91CC75', name: '出水量', max: 100, min: 0, avg: 50 },
|
|
|
|
{ color: '#EE6666', name: '用电量', max: 100, min: 0, avg: 50 }
|
|
|
|
])
|
2023-05-31 08:16:19 +00:00
|
|
|
function init() {
|
2023-06-15 10:03:49 +00:00
|
|
|
chart = proxy.$echarts.init(mainChart.value, 'dark');
|
2023-05-31 08:16:19 +00:00
|
|
|
let option = {
|
2023-06-15 10:03:49 +00:00
|
|
|
// title: {
|
|
|
|
// text: '水房数据大屏',
|
|
|
|
// },
|
2023-05-31 08:16:19 +00:00
|
|
|
color: colors,
|
|
|
|
tooltip: {
|
|
|
|
trigger: 'axis'
|
|
|
|
},
|
|
|
|
legend: {
|
|
|
|
data: ['进水量', '出水量', '用电量']
|
|
|
|
},
|
|
|
|
grid: {
|
|
|
|
left: '3%',
|
|
|
|
right: '4%',
|
|
|
|
bottom: '3%',
|
|
|
|
containLabel: true
|
|
|
|
},
|
|
|
|
xAxis: {
|
|
|
|
type: 'category',
|
|
|
|
boundaryGap: false,
|
|
|
|
data: ['2016-6', '2016-7', '2016-8', '2016-9', '2016-10', '2016-11', '2016-12']
|
|
|
|
},
|
|
|
|
yAxis: [
|
|
|
|
{
|
|
|
|
type: 'value',
|
|
|
|
name: '水量',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'value',
|
|
|
|
name: '电量',
|
|
|
|
position: 'right',
|
|
|
|
alignTicks: true,
|
|
|
|
axisLine: {
|
|
|
|
show: true,
|
|
|
|
lineStyle: {
|
|
|
|
color: colors[2]
|
|
|
|
}
|
|
|
|
},
|
|
|
|
}
|
|
|
|
],
|
|
|
|
series: [
|
|
|
|
{
|
|
|
|
name: '进水量',
|
|
|
|
type: 'line',
|
|
|
|
data: [120, 132, 101, 134, 90, 230, 210]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '出水量',
|
|
|
|
type: 'line',
|
|
|
|
yAxisIndex: 0,
|
|
|
|
data: [220, 182, 191, 234, 290, 330, 310]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '用电量',
|
|
|
|
type: 'line',
|
|
|
|
yAxisIndex: 1,
|
|
|
|
data: [150, 232, 201, 154, 190, 330, 1000]
|
|
|
|
}
|
|
|
|
]
|
|
|
|
};
|
|
|
|
chart.setOption(option);
|
|
|
|
}
|
|
|
|
onMounted(() => {
|
2023-06-15 10:03:49 +00:00
|
|
|
init()
|
2023-05-31 08:16:19 +00:00
|
|
|
})
|
|
|
|
</script>
|
|
|
|
<style module>
|
|
|
|
.container {
|
|
|
|
height: 1080px;
|
|
|
|
width: 1920px;
|
|
|
|
color: #20aec5;
|
|
|
|
background-color: #100c2a;
|
|
|
|
box-sizing: border-box;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
<style scoped>
|
|
|
|
.main {
|
2023-06-15 10:03:49 +00:00
|
|
|
position: relative;
|
2023-05-31 08:16:19 +00:00
|
|
|
width: 100%;
|
|
|
|
height: 980px;
|
2023-06-15 01:31:07 +00:00
|
|
|
background: url('/src/assets/img/water_house_bg.jpg') no-repeat;
|
2023-05-31 08:16:19 +00:00
|
|
|
}
|
|
|
|
|
2023-06-15 10:03:49 +00:00
|
|
|
.left-title {
|
|
|
|
position: absolute;
|
|
|
|
top: 94px;
|
|
|
|
left: 129px;
|
|
|
|
font-size: 28px;
|
|
|
|
color: #fff;
|
|
|
|
/* font-weight: bold; */
|
|
|
|
}
|
|
|
|
|
|
|
|
.lt-data {
|
|
|
|
position: absolute;
|
|
|
|
top: 513px;
|
|
|
|
left: 176px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.rt-data {
|
|
|
|
position: absolute;
|
|
|
|
top: 508px;
|
|
|
|
left: 581px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.lb-data {
|
|
|
|
position: absolute;
|
|
|
|
top: 743px;
|
|
|
|
left: 176px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.rb-data {
|
|
|
|
position: absolute;
|
|
|
|
top: 726px;
|
|
|
|
left: 581px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.item {
|
|
|
|
width: 200px;
|
|
|
|
height: 86px;
|
|
|
|
font-size: 24px;
|
|
|
|
color: #fff;
|
|
|
|
}
|
|
|
|
|
|
|
|
.left {
|
|
|
|
padding-left: 10px;
|
|
|
|
text-align: left;
|
|
|
|
line-height: 50px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.center {
|
|
|
|
line-height: 36px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.rt-title {
|
|
|
|
position: absolute;
|
|
|
|
top: 47px;
|
|
|
|
right: 536px;
|
|
|
|
font-size: 28px;
|
|
|
|
color: #fff;
|
|
|
|
}
|
2023-06-16 02:57:20 +00:00
|
|
|
|
2023-06-15 10:03:49 +00:00
|
|
|
.rt-radio {
|
|
|
|
position: absolute;
|
|
|
|
top: 96px;
|
|
|
|
right: 78px;
|
|
|
|
background: #110C2C;
|
|
|
|
}
|
|
|
|
|
2023-05-31 08:16:19 +00:00
|
|
|
.mainChart {
|
2023-06-15 10:03:49 +00:00
|
|
|
position: absolute;
|
|
|
|
width: 650px;
|
|
|
|
height: 270px;
|
|
|
|
top: 136px;
|
|
|
|
left: 1227px;
|
|
|
|
}
|
2023-06-16 02:57:20 +00:00
|
|
|
|
2023-06-15 10:03:49 +00:00
|
|
|
.math-content {
|
|
|
|
position: absolute;
|
|
|
|
width: 555px;
|
|
|
|
height: 100px;
|
|
|
|
top: 418px;
|
|
|
|
left: 1271px;
|
2023-06-16 02:57:20 +00:00
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
justify-content: space-around;
|
|
|
|
color: #fff;
|
2023-06-15 10:03:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
.rb-title {
|
|
|
|
position: absolute;
|
|
|
|
bottom: 399px;
|
|
|
|
right: 551px;
|
|
|
|
font-size: 28px;
|
|
|
|
color: #fff;
|
|
|
|
}
|
2023-06-16 02:57:20 +00:00
|
|
|
|
2023-06-15 10:03:49 +00:00
|
|
|
.rb-content {
|
|
|
|
position: absolute;
|
|
|
|
display: flex;
|
|
|
|
justify-content: space-around;
|
|
|
|
align-items: center;
|
|
|
|
bottom: 120px;
|
|
|
|
right: 64px;
|
|
|
|
width: 650px;
|
|
|
|
height: 270px;
|
|
|
|
font-size: 16px;
|
|
|
|
}
|
|
|
|
|
|
|
|
:deep(.progress .el-progress__text) {
|
2023-06-16 02:57:20 +00:00
|
|
|
font-weight: bold;
|
|
|
|
font-size: 30px !important;
|
2023-06-15 10:03:49 +00:00
|
|
|
}
|
2023-06-16 02:57:20 +00:00
|
|
|
|
2023-06-15 10:03:49 +00:00
|
|
|
.progress-text {
|
|
|
|
font-size: 18px;
|
|
|
|
font-weight: bold;
|
|
|
|
margin-top: 5px;
|
|
|
|
color: #fff;
|
2023-05-31 08:16:19 +00:00
|
|
|
}
|
2023-06-16 02:57:20 +00:00
|
|
|
|
|
|
|
.p-left10 {
|
|
|
|
text-align: left;
|
|
|
|
box-sizing: border-box;
|
|
|
|
padding-left: 10px;
|
|
|
|
}
|
|
|
|
.math-title-color {
|
|
|
|
color: #025AE5;
|
|
|
|
}
|
2023-05-31 08:16:19 +00:00
|
|
|
</style>
|