From 1ce8dd8980692da59fac09d4f868b490f7f74b88 Mon Sep 17 00:00:00 2001
From: yupan <yupanx@163.com>
Date: Thu, 27 Oct 2022 10:24:24 +0800
Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/moral_fronted

---
 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..5e33e9e 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 :class="{liActive:libg==i}">PM2.5: &nbsp;[ 0, 35 ]</li>
+            <li :class="{liActive:libg==i}">PM10: &nbsp;&nbsp;[ 0, 50 ]</li>
+            <li :class="{liActive:libg==i}">NO2: &nbsp;&nbsp;&nbsp;&nbsp;[ 0, 40 ]</li>
+            <li :class="{liActive:libg==i}">SO2: &nbsp;&nbsp;&nbsp;&nbsp;[ 0, 50 ]</li>
+            <li :class="{liActive:libg==i}">CO: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ 0, 2 ]</li>
+            <li :class="{liActive:libg==i}">O3: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ 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