From e635b5b4edab0a000a0af533b6b36f7300c5fa42 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Fri, 02 Feb 2024 10:07:00 +0800
Subject: [PATCH] fix:断线监控

---
 src/views/onlineRate/index.vue |   81 +++++++++++++++++++++++++++-------------
 1 files changed, 55 insertions(+), 26 deletions(-)

diff --git a/src/views/onlineRate/index.vue b/src/views/onlineRate/index.vue
index a8d6d0a..abe1530 100644
--- a/src/views/onlineRate/index.vue
+++ b/src/views/onlineRate/index.vue
@@ -19,22 +19,6 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="������:">
-          <el-select
-            v-model="formInline.state"
-            clearable
-            placeholder="������������"
-          >
-            <el-option
-              label="������"
-              value="1"
-            />
-            <el-option
-              label="������"
-              value="0"
-            />
-          </el-select>
-        </el-form-item>
         <el-form-item>
           <el-radio-group
             v-model="time"
@@ -58,6 +42,22 @@
             @change="changeDay"
           />
         </el-form-item>
+        <el-form-item label="������������:">
+          <el-select
+            v-model="formInline.hourState"
+            clearable
+            placeholder="������������"
+          >
+            <el-option
+              label="������"
+              value="1"
+            />
+            <el-option
+              label="������"
+              value="0"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item>
           <el-button
             type="primary"
@@ -69,7 +69,7 @@
       </el-form>
     </div>
     <div>
-      <p>���������������{{ tableData.length }}������������ {{ onlineData }}��������������� <span :class=" onlineRate<90 ?'redClor':'greenClor'">{{ onlineRate }}%</span></p>
+      <p>���������������������<span class="greenClor">{{ macOnlineData.sum }}</span>������������<span class="greenClor">{{ macOnlineData.online }}</span>��������������� <span :class="Number(macOnlineData.onlineRate)<90 ?'redClor':'greenClor'">{{ macOnlineData.onlineRate }}%</span></p>
       <div>
         <el-table
           v-loading="loading"
@@ -131,7 +131,11 @@
             label="���������"
             width="100px"
             align="center"
-          />
+          >
+            <template slot-scope="scope">
+              <span :class=" scope.row.onlineRate<90 ?'redClor':'greenClor'">{{ scope.row.onlineRate }}%</span>
+            </template>
+          </el-table-column>
           <el-table-column
             prop="onlineTime"
             label-class-name="itemSpan"
@@ -140,15 +144,15 @@
             align="center"
           />
           <el-table-column
-            prop="state"
+            prop="hourState"
             label-class-name="itemSpan"
-            label="������"
-            width="80px"
+            label="������������"
+            width="90px"
             align="center"
           >
             <template slot-scope="scope">
               <el-button
-                v-if="scope.row.state === '0'"
+                v-if="scope.row.hourState === '0'"
                 style="color:red;font-size:15px"
                 type="text"
               >
@@ -195,6 +199,7 @@
 <script>
 import dayjs from 'dayjs'
 import detailBox from '@/views/onlineRate/detailBox'
+import _ from 'lodash'
 export default {
   components: {
     detailBox
@@ -203,12 +208,15 @@
     return {
       formInline: {
         organizationId: '',
+        hourState: '',
+        state: '',
         startTime: dayjs().startOf('day').format('YYYY-MM-DD  HH:mm'),
         endTime: dayjs().subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
       },
       time: '������',
       selectTime: '',
       macDate: {},
+      macOnlineData: {},
       orgData: [],
       tableData: [],
       handleShow: false,
@@ -252,7 +260,7 @@
       return this.tableData.filter(item => item.state !== '0').length || 0
     },
     onlineRate () {
-      return Math.floor((this.onlineData / this.tableData.length) * 100) || 0
+      return (this.onlineData / this.tableData.length) * 100 || 0
     }
   },
   watch: {
@@ -272,7 +280,8 @@
         this.formInline.startTime = now.subtract(7, 'day').format('YYYY-MM-DD  HH:mm') // ���������������������
       } else if (newValue === '������') {
         this.selectTime = []
-        this.formInline.startTime = now.format('YYYY-MM-DD  HH:mm')
+        console.log('000', dayjs().startOf('day').format('YYYY-MM-DD  HH:mm'))
+        this.formInline.startTime = dayjs().startOf('day').format('YYYY-MM-DD  HH:mm')
       }
     }
   },
@@ -289,12 +298,17 @@
     handleDetail (row) {
       console.log(row)
       this.handleShow = true
-      this.macDate = row
+      this.macDate = _.cloneDeep(row)
       this.macDate.startTime = this.formInline.startTime
       this.macDate.endTime = this.formInline.endTime
     },
     handleSearch () {
+      this.getOnlineData()
       if (this.formInline.organizationId !== '') {
+        if (this.time === '������') {
+          this.formInline.startTime = dayjs().startOf('day').format('YYYY-MM-DD  HH:mm')
+          this.formInline.endTime = dayjs().subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
+        }
         this.loading = true
         this.$request({
           url: '/onlineRate/page',
@@ -304,7 +318,7 @@
           }
         })
           .then(res => {
-            this.tableData = res.data
+            this.tableData = res.data || []
             this.loading = false
           })
           .catch(err => {
@@ -314,6 +328,21 @@
         this.$message.warning('���������������������������')
       }
     },
+    getOnlineData () {
+      this.$request({
+        url: '/onlineRate/state',
+        method: 'get',
+        params: {
+          organizationId: this.formInline.organizationId
+        }
+      })
+        .then(res => {
+          this.macOnlineData = res.data
+        })
+        .catch(err => {
+          console.log(err)
+        })
+    },
     getOrganizationId () {
       this.$request({
         url: '/organization/getOrganizationId',

--
Gitblit v1.8.0