From eb07bc16cb0b06f3b96a4f59d74f82b62195f096 Mon Sep 17 00:00:00 2001
From: yichenxi <yichenxi0601@163.com>
Date: Mon, 12 Dec 2022 13:56:47 +0800
Subject: [PATCH] 1、尘负荷走航路段报告
---
src/views/deviceDetail/index.vue | 180 +++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 123 insertions(+), 57 deletions(-)
diff --git a/src/views/deviceDetail/index.vue b/src/views/deviceDetail/index.vue
index 8a6ee6c..0532bf1 100644
--- a/src/views/deviceDetail/index.vue
+++ b/src/views/deviceDetail/index.vue
@@ -8,41 +8,41 @@
height:'100%'
}"
>
- <el-aside width="450px">
+ <el-aside width="31%">
<el-main style="display:flex;flex-flow: column;height: 100%;padding-left: 0;padding-right: 0;margin-left:10px">
<div
class="left0"
:style="{display:'flex',flexDirection:'column',alignContent:'center',flex:'1',padding: '0 20px 10px 20px'}"
>
- <h3 style="text-align:center">{{ currentTime }}</h3>
+ <h3 style="text-align:center;font-size: 0.9rem">{{ currentTime }}</h3>
<!-- <div v-for="(val,key,i) in wsData2" v-if="i!=='name'&&i!=='address'" :key="i" style="flex:1;display:flex"> -->
<!-- ������������������ -->
<div v-for="(val,key,i) in defaultMonitorItems" :key="i" style="flex:1;display:flex">
- <span style="width:50%">{{ val.sensorCode |sensorFilter }}</span>
- <span><el-progress :text-inside="true" :stroke-width="15" :percentage="val.alarm" :color="val.colour" style="width:150px" /></span>
- <span style="width:50%;text-align:right">{{ val.value }}</span>
+ <span style="width:33%;font-size: 0.9rem">{{ val.sensorCode |sensorFilter }}</span>
+ <span style="width: 33%;height: 0.9rem;font-size: 0.9rem"><el-progress :text-inside="true" :percentage="val.alarm" :color="val.colour" style="width:100%" /></span>
+ <span style="width:34%;text-align:right;font-size: 0.9rem">{{ val.value }}</span>
<!-- <span><el-progress v-if="val.alarm" :text-inside="true" :stroke-width="15" :percentage="val.alarm>100?100:val.alarm" :color="val.colour" style="width:150px" /></span>
<span style="width:50%;text-align:right">{{ val.value }}</span>-->
</div>
<!-- <div style="flex:1;display:flex"><span>VOCs������</span><el-progress style="flex:1;padding:0 10px" :text-inside="true" :stroke-width="24" :percentage="0" status="success" /><span>mg/m��</span> </div> -->
<!-- <div style="flex:1;display:flex"><span>VOCs������</span><el-progress style="flex:1;padding:0 10px" :text-inside="true" :stroke-width="24" :percentage="50" status="success" /><span>mg/m��</span> </div> -->
- <!-- <div style="flex:1;display:flex"><span>VOCs������</span><el-progress style="flex:1;padding:0 10px" :text-inside="true" :stroke-width="24" :percentage="33" status="success" /><span>mg/m��</span> </div> -->
+ <!-- <div style="flex:1;display:flex"><span>VOCs������</span><el-progress style="flex:1;padding:0 10px" :text-inside="true" :stroke-width="24" :percentage="33" status="success" /><span>mg/m��</span> </div> :stroke-width="15"-->
</div>
<div class="border-top" style="height:150px;display:flex;margin-top:10px">
<!-- ��������������������� -->
<div v-if="wsData2 && wsData2.a01008" class="border-right left1" style="display:flex;flex:1;justify-content: space-around;align-items: center">
<div style="position:relative">
<img
- style="width: 80px; height: 80px"
+ style="width: 5.5rem; height: 5.5rem"
:src="compassBg"
>
<img
- style="width: 30px; height: 30px;position: absolute;left: 0;top: 0;margin-left: 50%;margin-top: 50%;transform: translate(-50%, -50%);"
+ style="font-size:2rem;width: 2rem; height: 2rem;position: absolute;left: 0;top: 0;margin-left: 50%;margin-top: 50%;transform: translate(-50%, -50%);"
:src="compassDirection"
:style="{transform:'translate(-50%, -50%) rotate('+ windDeg +'deg)'}"
>
</div>
- <div style="text-align:center;font-size:20px">
+ <div style="text-align:center;font-size:1rem">
<div>{{ windDir }}</div>
<div style="margin-top:15px">{{ wsData2? wsData2.a01008:'���������' }}</div>
</div>
@@ -51,24 +51,26 @@
class="left2"
style="flex: 1 1 0%;text-align: center;display: flex;flex-direction: column;justify-content: center"
>
- <div style="font-size:18px">������������������(������������)</div>
- <div style="font-size:30px;margin-top:7px">
- {{ aqi }}<span style="font-size:16px">(AQI)</span>
+ <div style="font-size:0.9rem">������������������(������������)</div>
+ <div style="font-size:1.5rem;margin-top:7px">
+ {{ aqi }}<span style="font-size:0.8rem">(AQI)</span>
</div>
</div>
</div>
</el-main>
</el-aside>
<el-container class="border-left border-right" style="margin: 0 10px;">
- <el-header class="title0" style="text-align:center;display:unset!important;margin-top:10px;"><h1 style="text-align:center;text-align: center;margin: 0;padding-top: 20px;font-size: 20px;" @click="websocketData()">{{ deviceName? deviceName:'������' }}</h1></el-header>
+ <el-header class="title0" style="text-align:center;display:unset!important;margin-top:10px;"><h1 style="text-align:center;text-align: center;margin: 0;padding-top: 20px;font-size: 1.2rem" @click="websocketData()">{{ deviceName? deviceName:'������' }}</h1></el-header>
<el-main style="padding-left:0;padding-right:0;padding-top:0;display: flex;flex-direction: column;" class="noneScoll">
<div class="middle0" style="padding: 20px 0;margin-bottom: 10px;height:50%;min-height:394px">
<div style="display:flex;flex-flow: row wrap;height:356px">
<!-- ������������������ -->
- <div v-for="(val,key,i) in coreMonitorItems" :key="i" style="position: relative;width:33%">
- <div style="position: relative;width: 155px;height: 155px;margin: 0px auto;" :class="{'alarmBg5':val.bg === 5,'alarmBg4':val.bg === 4,'alarmBg3':val.bg === 3,'alarmBg2':val.bg === 2,'alarmBg1':val.bg === 1,'alarmBg0':val.bg === 0,}">
+ <div v-for="(val,key,i) in coreMonitorItems" :key="i" style="position: relative;width:33%;height: 50%;font-size: 0.9rem" class="circleWH" ref='test'>
+<!-- <div style="position: relative;width: 155px;height: 155px;margin: 0px auto;" :class="{'alarmBg5':val.bg === 5,'alarmBg4':val.bg === 4,'alarmBg3':val.bg === 3,'alarmBg2':val.bg === 2,'alarmBg1':val.bg === 1,'alarmBg0':val.bg === 0,}">-->
+ <div style="position: relative;width: 75%;height:80%;margin: 0px auto;background-size: contain;background-position:center" :class="{'alarmBg5':val.bg === 5,'alarmBg4':val.bg === 4,'alarmBg3':val.bg === 3,'alarmBg2':val.bg === 2,'alarmBg1':val.bg === 1,'alarmBg0':val.bg === 0,}">
<!-- <img :src="{alarmBg5:val.bg === 5,alarmBg4:val.bg === 4,alarmBg3:val.bg === 3,alarmBg2:val.bg === 2,alarmBg1:val.bg === 1,alarmBg0:val.bg === 0}" alt="" style="display: block;margin: 0 auto;"> -->
- <div style="position: absolute;top: 0;left: 0;margin-left: 50%;margin-top: 50%;transform: translate(-50%, -50%);color: #fff;text-align:center">{{ val.value? val.value:'���������' }}</div>
+<!-- <div style="position: absolute;top: 0;left: 0;margin-left: 50%;margin-top: 50%;transform: translate(-50%, -50%);color: #fff;text-align:center">{{ val.value? val.value:'���������' }}</div>-->
+ <div style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);color: #fff;text-align:center">{{ val.value? val.value:'���������' }}</div>
</div>
<div style="text-align:center;padding-top:5px">{{ val.sensorCode |sensorFilter }}</div>
</div>
@@ -77,39 +79,51 @@
<div class="border-top" style="display:flex;height:50%">
<div ref="main" class="middle1" style="flex:1;padding-top:30px" />
<!-- <line-chart :chart-data="lineChartData" /> -->
- <div class="border-left middle2" style="width: 150px;text-align:center;padding-top:50px;margin-left:10px">
- <h3>���������������</h3>
+ <div class="border-left middle2" style="width: 11rem;text-align:center;padding-top:50px;margin-left:10px">
+ <h3 style="font-size: 0.9rem">���������������</h3>
<div>
- <div>���������������</div>
- <div style="padding:8px 0 0;font-size:40px;font-weight:bold">{{ average }}</div>
- <div style="text-align:right;padding-right:10px">(ppm)</div>
+ <div style="font-size: 0.9rem">���������������</div>
+ <div style="padding:8px 0 0;font-size:2.3rem;font-weight:bold">{{ average }}</div>
+ <div style="text-align:right;padding-right:10px;font-size: 0.9rem">(ppm)</div>
</div>
</div>
</div>
</el-main>
</el-container>
- <el-aside width="400px">
+ <el-aside width="21%">
<el-main
style="padding-left:0;padding-right:0;display: flex;flex-direction: column;margin-right:10px;overflow:hidden"
>
- <div class="border-bottom right0" style="text-align: center;padding:20px 0 33px 0;margin-bottom:10px;height:60%">
+ <div class="border-bottom right0" style="text-align: center;padding-bottom: 25px;margin-bottom:10px;height: 60%">
<div style="height:100%;display: flex;flex-direction: column;">
- <div style="height:20%">
- <h3 style="text-align:center"><span>���������</span> {{ macLat }}, {{ macLng }}</h3>
- <h3>������������������������</h3>
+ <div style="height:30%">
+ <h3 style="text-align:center;font-size: 0.9rem" v-if="macLat"><span>���������</span> {{ macLat }}, {{ macLng }}</h3>
+ <h3 style="font-size: 0.9rem">������������������������</h3>
</div>
<div style="height:70%">
- <img style="" :src="url1" alt="" style="height:100%">
+<!-- padding-top: 4%-->
+ <img style="" :src="url1" alt="" style="width:70%">
</div>
<div>
- <img style="" :src="url2" alt="">
+ <img style="width: 75%" :src="url2" alt="">
</div>
</div>
</div>
- <div class="right1" style="height:40%;display: flex;flex-direction: column;">
- <h3 style="text-align:center">������������</h3>
- <ul class="listUl" style="overflow: auto;padding-right:40px">
+ <div class="right1" style="height:40%;display: flex;flex-direction: column;" v-if="monitorPointInfo">
+ <h3 style="text-align:center; font-size: 0.9rem">������������</h3>
+ <ul class="listUl" style="overflow: auto;padding:0 10% 10% 10%;font-size: 0.9rem; margin-top: 0">
<li v-for="(v,i) in monitorPointInfo.devices" :key="i" class="listLi" :class="{liActive:libg==i}" @click="reMac(v.mac,i,v.name)">{{ v.name }}</li>
+ </ul>
+ </div>
+ <div class="right1" style="height:40%;display: flex;flex-direction: column;" v-else>
+ <h3 style="text-align:center; font-size: 0.9rem">���������</h3>
+ <ul class="listUl" style="overflow: auto;padding:0 10%;font-size: 0.9rem; margin-top: 0">
+ <li>PM2.5: [ 0, 35 ]</li>
+ <li>PM10: [ 0, 50 ]</li>
+ <li>NO2: [ 0, 40 ]</li>
+ <li>SO2: [ 0, 50 ]</li>
+ <li>CO: [ 0, 2 ]</li>
+ <li>O3: [ 0, 100 ]</li>
</ul>
</div>
</el-main>
@@ -198,7 +212,16 @@
defaultMonitorItems: [],
fixedMonitorItems: [],
totalArray: [],
- chartSensorName: ''
+ chartSensorName: '',
+ equipment: '', // ������������
+ standardValue: {
+ PM2_5: '',
+ PM10: '',
+ CO2: '',
+ SO2: '',
+ CO: '',
+ O3: ''
+ }
}
},
// ������������ ���������data������
@@ -230,6 +253,7 @@
// this.macName = this.$route.params.macName
this.macName = this.$route.query.macName
this.libg = this.$route.query.indexs
+ this.equipment = this.$route.query.equipment
// this.macLat = this.$route.query.items
// this.macLng = this.$route.query.items
// this.monitorPointInfo = this.$route.params.monitorPointInfo
@@ -261,6 +285,8 @@
// setTimeout(() => {
// this.drawChart()
// }, 1000)
+ // ���������������������������
+ // this.getCircleWH()
},
beforeCreate() {}, // ������������ - ������������
beforeMount() {}, // ������������ - ������������
@@ -278,6 +304,14 @@
activated() {},
// ������������
methods: {
+ // ���������������������
+ getCircleWH() {
+ // var circleWHList = document.getElementsByClassName('circleWH')
+ // var dom = this.$refs.test
+ // var circleWHWidth = circleWHList[0].offsetWidth
+ // var circleWHeight = circleWHList[0].offsetHeight
+ // console.log(circleWHWidth, circleWHeight, '������')
+ },
// ������������������������
filterSensorName() {
this.chartSensorName = this.$options.filters.sensorFilter(this.chartSensorKey[0].sensorCode)
@@ -356,8 +390,10 @@
this.getHourlyAqi()
this.getSensorMonthAvg()
this.websocketData()
- this.macLat = this.monitorPointInfo.devices[i].latitude
- this.macLng = this.monitorPointInfo.devices[i].longitude
+ if (this.monitorPointInfo.devices) {
+ this.macLat = this.monitorPointInfo.devices[i].latitude
+ this.macLng = this.monitorPointInfo.devices[i].longitude
+ }
},
// ������������
getkeyName() {
@@ -410,6 +446,7 @@
}
}
}
+ // console.log(newAlarmLevel, 'newAlarmLevel')
this.alarmLevel = newAlarmLevel
})
},
@@ -423,7 +460,12 @@
// var param = this.accountId + '&' + this.orgId + '&' + this.macName
// var param = this.macName
// ������URL
- var socketUrl = 'http://47.99.64.149:8081/singleDevice/' + this.macName
+ var socketUrl
+ if (this.equipment === 'car') {
+ socketUrl = 'http://47.99.64.149:8081/cruiserWebsocket/' + this.macName
+ } else {
+ socketUrl = 'http://47.99.64.149:8081/singleDevice/' + this.macName
+ }
// ������http���WS
socketUrl = socketUrl.replace('https', 'ws').replace('http', 'ws')
@@ -467,10 +509,10 @@
that.alarmBg = {}
// ������������
for (const key in that.wsData2) {
- // console.log(key)
- if (key === that.chartSensorKey[0].sensorCode) {
+ if (that.chartSensorKey && key === that.chartSensorKey[0].sensorCode) {
that.chartSensorKey[0].value = that.wsData2[key]
}
+ // console.log(that.alarmLevel, 'that.alarmLevel')
for (const keys in that.alarmLevel) {
// ���������������������
if (key === keys && JSON.parse(that.alarmLevel[keys])) {
@@ -521,24 +563,29 @@
} else if (key === keys) {
that.alarmProgress[keys] = 0
}
+ if (that.alarmProgress[keys] > 100) {
+ that.alarmProgress[keys] = 100
+ }
}
}
// ������������������������������������
for (let i = 0; i < that.totalArray.length; i++) {
for (const key in that.wsData2) {
- // ���������������������
- var tempDecimal = that.wsData2[key].replace(/[^\d.]/g, '').split('.')[1]
- if (that.totalArray[i].sensorCode === key) {
- // ���������������������������
- if (that.totalArray[i].sensorCode === 'a19002') {
- that.totalArray[i].value = parseInt(that.wsData2[key])
- } else if (that.totalArray[i].sensorCode === 'a01002') {
- that.totalArray[i].value = parseInt(that.wsData2[key]) + '%'
- // ������TVOCQ������������������������������������������������
- } else if (that.totalArray[i].sensorCode !== 'a99054' && Number(tempDecimal) === 0) {
- that.totalArray[i].value = parseInt(that.wsData2[key]) + that.wsData2[key].split(' ')[1]
- } else {
- that.totalArray[i].value = that.wsData2[key]
+ if (key !== 'time') {
+ // ���������������������
+ var tempDecimal = that.wsData2[key].replace(/[^\d.]/g, '').split('.')[1]
+ if (that.totalArray[i].sensorCode === key) {
+ // ���������������������������
+ if (that.totalArray[i].sensorCode === 'a19002') {
+ that.totalArray[i].value = parseInt(that.wsData2[key])
+ } else if (that.totalArray[i].sensorCode === 'a01002') {
+ that.totalArray[i].value = parseInt(that.wsData2[key]) + '%'
+ // ������TVOCQ������������������������������������������������
+ } else if (that.totalArray[i].sensorCode !== 'a99054' && Number(tempDecimal) === 0) {
+ that.totalArray[i].value = parseInt(that.wsData2[key]) + that.wsData2[key].split(' ')[1]
+ } else {
+ that.totalArray[i].value = that.wsData2[key]
+ }
}
}
}
@@ -666,14 +713,16 @@
for (const key in that.wsData2) {
// ���������������������
for (const keys in that.alarmLevel) {
+ var alarmLevel = {}
+ alarmLevel[keys] = JSON.parse(that.alarmLevel[keys])
if (key === keys && JSON.parse(that.alarmLevel[keys])) {
const wsData2KeyData = parseInt(that.wsData2[key])
- const alarmLevelsData0 = that.alarmLevel[keys][0]
- const alarmLevelsData1 = that.alarmLevel[keys][1]
- const alarmLevelsData2 = that.alarmLevel[keys][2]
- const alarmLevelsData3 = that.alarmLevel[keys][3]
- const alarmLevelsData4 = that.alarmLevel[keys][4]
- const alarmLevelsData5 = that.alarmLevel[keys][5]
+ const alarmLevelsData0 = alarmLevel[keys][0]
+ const alarmLevelsData1 = alarmLevel[keys][1]
+ const alarmLevelsData2 = alarmLevel[keys][2]
+ const alarmLevelsData3 = alarmLevel[keys][3]
+ const alarmLevelsData4 = alarmLevel[keys][4]
+ const alarmLevelsData5 = alarmLevel[keys][5]
if (wsData2KeyData > alarmLevelsData5) {
that.alarmLevelsStatus = 5
@@ -859,6 +908,11 @@
}]
}
that.myChart.setOption(option)
+ setTimeout(function() {
+ window.onresize = function() {
+ that.myChart.resize()
+ }
+ }, 200)
} else {
console.log('������������')
}
@@ -964,7 +1018,7 @@
}
.title0{
background: url('../../assets/images/������.png') no-repeat;
- background-size: 50% 90%;
+ background-size: 70% 90%;
background-position: center;
}
.alarmBg5{
@@ -1007,4 +1061,16 @@
/* border-bottom: 1px solid #eee; */
border: none;
}
+.class1{
+ height: 60%;
+}
+.class2{
+ height: 100%;
+}
+/deep/ .el-progress-bar__outer{
+ height: 1rem !important;
+}
+/deep/ .el-progress-bar__innerText{
+ font-size: 0.8rem;
+}
</style>
--
Gitblit v1.8.0