From ff72273c7cd5fd33173615ac188fc03bfc1a1ad7 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Sun, 04 Feb 2024 13:44:46 +0800
Subject: [PATCH] fix:修改成16位风向值

---
 src/views/averageContrast/index.vue |  288 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 177 insertions(+), 111 deletions(-)

diff --git a/src/views/averageContrast/index.vue b/src/views/averageContrast/index.vue
index 4c9d7ed..ae7f421 100644
--- a/src/views/averageContrast/index.vue
+++ b/src/views/averageContrast/index.vue
@@ -1,34 +1,29 @@
 <template>
-  <div style="width:100%">
+  <div style="width: 100%">
     <div class="topSelect">
-      <el-cascader
-        v-model="newMac"
-        :options="options"
-        clearable
-        placeholder="������������"
-        style="width: 354px;"
-      />
-      <el-select v-model="value" placeholder="������������" style="margin-left:20px">
-        <el-option
-          v-for="item in newSensor"
-          :key="item.value"
-          :label="item.label"
-          :value="item.value"
-        />
+      <el-cascader v-model="newMac" :options="options" clearable placeholder="������������" style="width: 354px" />
+      <el-select v-model="value" placeholder="������������" style="margin-left: 20px">
+        <el-option v-for="item in newSensor" :key="item.value" :label="item.label" :value="item.value" />
       </el-select>
       <!-- <el-radio-group v-model="radio1" style="margin-left:20px">
         <el-radio-button label="������" />
         <el-radio-button label="������" />
       </el-radio-group> -->
-      <component :is="dataType" style="padding-left:0;margin-left:20px;width:160px" @sendPickerChild="showPickerChild" />
+      <el-date-picker v-model="timevalue" type="datetimerange" range-separator="���" value-format="yyyy-MM-dd HH"
+        start-placeholder="������������" :picker-options="pickerOptions" end-placeholder="������������" style="margin-left: 1rem">
+      </el-date-picker>
       <!--������������-->
       <el-button @click="selectData" class="btn1">������</el-button>
+    </div>
+    <div class="topTitle">
+      <div style="position: absolute">{{ selectyz }}</div>
+      <!-- <div style="text-align: center;width: 100%;">{{ newData }}��{{ newMac?newMac[0]:'' }}��{{ newMac?newMac[newMac.length - 1][0]:'' }}��{{ value |sensorFilter }}�����������</div> -->
     </div>
     <!-- <div class="topTitle">
       <div style="position:absolute">(������:ug/m��)</div>
       <div style="text-align: center;width: 100%;">{{ newData }}��{{ newMac?newMac[0]:'' }}��{{ newMac?newMac[newMac.length - 1][0]:'' }}��{{ value |sensorFilter }}�����������</div>
     </div> -->
-    <LineChart :chart-data="lineChartData" />
+    <LineChart :chart-data="lineChartData" :isMouse="true" style="height: 30rem" />
   </div>
 </template>
 
@@ -37,45 +32,47 @@
 // ���������import������������������from'������������������';
 
 // import LineChart from '@/components/Echarts/LineChartSpe'
-import LineChart from '@/components/Echarts/LineChart'
+import LineChart from '@/components/Echarts/LineChart2'
 import DatePicker from '@/components/Form/DatePicker'
 import MouthPicker from '@/components/Form/MouthPicker'
 import HourPicker from '@/components/Form/HourPicker'
+import HourPicker2 from '@/components/Form/HourPicker2'
 import CustomPicker from '@/components/Form/CustomPicker'
 import json from '@/assets/json/sensor.json'
 
 const lineChartData = {
   newVisitis: {
     expectedData: [100, 120, 161, 134, 105, 160, 165],
-    actualData: [120, 82, 91, 154, 162, 140, 145]
+    actualData: [120, 82, 91, 154, 162, 140, 145],
   },
   messages: {
     expectedData: [200, 192, 120, 144, 160, 130, 140],
-    actualData: [180, 160, 151, 106, 145, 150, 130]
+    actualData: [180, 160, 151, 106, 145, 150, 130],
   },
   purchases: {
     expectedData: [80, 100, 121, 104, 105, 90, 100],
-    actualData: [120, 90, 100, 138, 142, 130, 130]
+    actualData: [120, 90, 100, 138, 142, 130, 130],
   },
   shoppings: {
     expectedData: [130, 140, 141, 142, 145, 150, 160],
-    actualData: [120, 82, 91, 154, 162, 140, 130]
-  }
+    actualData: [120, 82, 91, 154, 162, 140, 130],
+  },
 }
 export default {
-// import ���������������������������������������������������
+  // import ���������������������������������������������������
   components: {
     LineChart,
     DatePicker,
     MouthPicker,
     HourPicker,
-    CustomPicker
+    HourPicker2,
+    CustomPicker,
   },
   filters: {
-    sensorFilter: function(value) {
+    sensorFilter: function (value) {
       if (!value) return ''
       return json[value]
-    }
+    },
   },
   props: {
     // defaultData: Array
@@ -83,7 +80,7 @@
   data() {
     // ������������������
     return {
-      dataType: 'HourPicker',
+      dataType: 'HourPicker2',
       lineChartData: lineChartData.purchases,
       props: { multiple: true },
       options: [],
@@ -94,19 +91,26 @@
       // newMac2:'',
       newSensor: [],
       radio1: '������',
-      unit: 1,
+      unit: 0,
       type: 'select',
+      selectyz: '(������:ug/m��)',
+      timevalue: [],
       newLineChartData: {
         series: [],
         xAxis: [],
-        title: ''
+        title: '',
       },
       newData: '',
       defaultData: [],
       newListData: [],
       chartSensorName: '',
       middleData: [],
-      seriesName: ['���������', '���������', '���������']
+      seriesName: ['���������', '���������', '���������'],
+      pickerOptions: {
+        disabledDate: (time) => {
+          return time.getTime() > new Date()
+        },
+      },
     }
   },
   // ������������ ���������data������
@@ -120,29 +124,66 @@
     },
     radio1(nv, ov) {
       if (nv === '������') {
-        this.dataType = 'HourPicker'
+        this.dataType = 'HourPicker2'
         this.unit = 1
       } else if (nv === '������') {
-        this.dataType = 'DatePicker'
+        this.dataType = 'MouthPicker2'
         this.unit = 3
       }
-    }
+    },
+    value(one, two) {
+      if (
+        one === 'a34004' ||
+        one === 'a34002' ||
+        one === 'a21004' ||
+        one === 'a21026' ||
+        one === 'a05024' ||
+        one === 'a21001'
+      ) {
+        this.selectyz = '(������:ug/m��)'
+      } else if (
+        one === 'a21005' ||
+        one === 'a99054' ||
+        one === 'a31001' ||
+        one === 'a24088'
+      ) {
+        this.selectyz = '(������:mg/m��)'
+      } else if (one === 'a01001') {
+        this.selectyz = '(������:���)'
+      } else if (one === 'a01002') {
+        this.selectyz = '(������:%)'
+      } else if (one === 'a01007') {
+        this.selectyz = '(������:m/s)'
+      } else if (one === 'a01008') {
+        this.selectyz = '(������:���)'
+      } else if (one === 'a01006') {
+        this.selectyz = '(������:hpa)'
+      } else if (one === 'a00e12') {
+        this.selectyz = '(������:lux)'
+      } else if (one === 'a19002') {
+        this.selectyz = '(������:���)'
+      } else if (one === 'a00e03' || one === 'a00e04') {
+        this.selectyz = '(������:pcs/0.1L)'
+      } else if (one === 'a00e13') {
+        this.selectyz = '(������:db)'
+      } else if (one === 'a21028') {
+        this.selectyz = '(������:ppm)'
+      }
+    },
   },
   // ������������ - ��������������������������������� this ���������
   created() {
     this.getData()
   },
   // ������������ - ��������������������������� DOM ���������
-  mounted() {
-
-  },
-  beforeCreate() {}, // ������������ - ������������
-  beforeMount() {}, // ������������ - ������������
-  beforeUpdate() {}, // ������������ - ������������
-  updated() {}, // ������������ - ������������
-  beforeDestroy() {}, // ������������ - ������������
-  destroyed() {}, // ������������ - ������������
-  activated() {},
+  mounted() { },
+  beforeCreate() { }, // ������������ - ������������
+  beforeMount() { }, // ������������ - ������������
+  beforeUpdate() { }, // ������������ - ������������
+  updated() { }, // ������������ - ������������
+  beforeDestroy() { }, // ������������ - ������������
+  destroyed() { }, // ������������ - ������������
+  activated() { },
   // ������������
   methods: {
     // ������������������������
@@ -151,19 +192,28 @@
         url: '/monitorPoint/queryMonitorPoints',
         method: 'get',
         params: {
-          organizationId: this.$store.state.orgId
-        }
+          organizationId: this.$store.state.orgId,
+        },
       })
         .then((res) => {
           // console.log('������index������������������������')
           // console.log(res)
           this.defaultData = res.data.monitorPoints
           for (let i = 0; i < this.defaultData.length; i++) {
-            this.options.push({ value: this.defaultData[i].name, label: this.defaultData[i].name })
+            this.options.push({
+              value: this.defaultData[i].name,
+              label: this.defaultData[i].name,
+            })
             this.options[i].children = []
             if (this.defaultData[i].devices) {
               for (let j = 0; j < this.defaultData[i].devices.length; j++) {
-                this.options[i].children.push({ value: [this.defaultData[i].devices[j].name, this.defaultData[i].devices[j].mac], label: this.defaultData[i].devices[j].name })
+                this.options[i].children.push({
+                  value: [
+                    this.defaultData[i].devices[j].name,
+                    this.defaultData[i].devices[j].mac,
+                  ],
+                  label: this.defaultData[i].devices[j].name,
+                })
               }
             }
           }
@@ -178,25 +228,27 @@
         url: '/deviceInfo/getMacSensors',
         method: 'post',
         data: {
-          macs: this.newMac1
-        }
-      }).then((res) => {
-        // console.log(res)
-        this.newSensor = []
-        var sensor = res.data
-        for (var i in sensor) {
-          this.newSensor.push({ value: i, label: sensor[i] })
-        }
-      }).catch((err) => {
-        console.log(err)
+          macs: this.newMac1,
+        },
       })
+        .then((res) => {
+          // console.log(res)
+          this.newSensor = []
+          var sensor = res.data
+          for (var i in sensor) {
+            this.newSensor.push({ value: i, label: sensor[i] })
+          }
+        })
+        .catch((err) => {
+          console.log(err)
+        })
     },
     // ������
     selectData() {
       var newLineChartData = {
         series: [],
         xAxis: [],
-        title: []
+        title: [],
       }
       this.newXData = []
       this.$request({
@@ -205,37 +257,45 @@
         params: {
           mac: this.newMac1[0],
           sensor_code: this.value,
-          date: this.newData
-        }
-      }).then((res) => {
-        // console.log('������������������������������')
-        // console.log(res)
-        const data = res.data
-        const lockLength = 0
-        // for (let i = 0; i < data.length; i++) {
-        //   for (let j = 0; j < data[i].values.length; j++) {
-        //     if (lockLength < data[i].values.length) {
-        //       newLineChartData.series.push({ data: [], name: '', type: 'line' })
-        //       newLineChartData.series[j].name = data[i].values[j].name
-        //       newLineChartData.title.push(data[i].values[j].name)
-        //     }
-        //     lockLength++
-        //     newLineChartData.series[j].data.push(data[i].values[j].sensorValue)
-        //   }
-        // }
-        for (let i = 0; i < 3; i++) {
-          newLineChartData.series.push({ data: [], name: '', type: 'line' })
-          for (let j = 0; j < data.length; j++) {
-            newLineChartData.series[i].data.push(data[j].values[i])
-            newLineChartData.series[i].name = this.seriesName[i]
-            newLineChartData.xAxis.push(data[j].time)
-          }
-          newLineChartData.title = this.seriesName
-        }
-        this.lineChartData = newLineChartData
-      }).catch((err) => {
-        console.log(err)
+          startTime: this.timevalue[0],
+          endTime: this.timevalue[1],
+        },
       })
+        .then((res) => {
+          // console.log('������������������������������')
+          // console.log(res)
+          const data = res.data
+          const lockLength = 0
+          // for (let i = 0; i < data.length; i++) {
+          //   for (let j = 0; j < data[i].values.length; j++) {
+          //     if (lockLength < data[i].values.length) {
+          //       newLineChartData.series.push({ data: [], name: '', type: 'line' })
+          //       newLineChartData.series[j].name = data[i].values[j].name
+          //       newLineChartData.title.push(data[i].values[j].name)
+          //     }
+          //     lockLength++
+          //     newLineChartData.series[j].data.push(data[i].values[j].sensorValue)
+          //   }
+          // }
+          for (let i = 0; i < 3; i++) {
+            newLineChartData.series.push({
+              data: [], name: '', type: 'line', triggerLineEvent: true,
+              emphasis: { focus: 'series' }
+            })
+            for (let j = 0; j < data.length; j++) {
+              newLineChartData.series[i].data.push(data[j].values[i])
+              newLineChartData.series[i].name = this.seriesName[i]
+            }
+            newLineChartData.title = this.seriesName
+          }
+          for (let y = 0; y < data.length; y++) {
+            newLineChartData.xAxis.push(data[y].time)
+          }
+          this.lineChartData = newLineChartData
+        })
+        .catch((err) => {
+          console.log(err)
+        })
     },
     // ���������������������������������������������
     showPickerChild(data) {
@@ -303,32 +363,38 @@
     },
     // ������������������������
     filterSensorName() {
-      this.chartSensorName = this.$options.filters.sensorFilter(this.chartSensorKey[0].sensorCode)
-    }
-  } // ���������������keep-alive������������������������������������
+      this.chartSensorName = this.$options.filters.sensorFilter(
+        this.chartSensorKey[0].sensorCode
+      )
+    },
+  }, // ���������������keep-alive������������������������������������
 }
 </script>
 <style scoped lang="scss">
-.topSelect{
-    display: flex;
-    margin-bottom: 20px;
-    padding: 20px 15px 0 15px;
-    span:first-child{
-        flex: 1;
-    }
-    div:last-child{
-        width: 300px;
-        line-height: 40px;
-        padding-left: 6px;
-    }
+.topSelect {
+  display: flex;
+  margin-bottom: 20px;
+  padding: 20px 15px 0 15px;
+
+  span:first-child {
+    flex: 1;
+  }
+
+  div:last-child {
+    width: 300px;
+    line-height: 40px;
+    padding-left: 6px;
+  }
 }
-.topTitle{
-    display: flex;
-    justify-content: space-between;
-    margin-bottom: 20px;
-    padding: 0 15px;
+
+.topTitle {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 20px;
+  padding: 0 15px;
 }
-.btn1{
+
+.btn1 {
   margin-left: 1%;
   height: 40px;
 }

--
Gitblit v1.8.0