From 087691a24c27cebbe114ea1f82856280400a3138 Mon Sep 17 00:00:00 2001
From: quanyawei <401863037@qq.com>
Date: Mon, 05 Feb 2024 09:50:20 +0800
Subject: [PATCH] fix:bug修复

---
 src/views/onlineRate/index.vue |  138 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 97 insertions(+), 41 deletions(-)

diff --git a/src/views/onlineRate/index.vue b/src/views/onlineRate/index.vue
index a8d6d0a..e62b284 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"
@@ -52,11 +36,29 @@
             type="datetimerange"
             range-separator="���"
             start-placeholder="������������"
+            :clearable="false"
             end-placeholder="������������"
             value-format="yyyy-MM-dd HH:mm:ss"
+            :default-date="[selectTime[0], selectTime[1]]"
             :picker-options="pickerOptions"
-            @change="changeDay"
+            @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
@@ -69,7 +71,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 +133,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 +146,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 +201,7 @@
 <script>
 import dayjs from 'dayjs'
 import detailBox from '@/views/onlineRate/detailBox'
+import _ from 'lodash'
 export default {
   components: {
     detailBox
@@ -203,12 +210,15 @@
     return {
       formInline: {
         organizationId: '',
-        startTime: dayjs().startOf('day').format('YYYY-MM-DD  HH:mm'),
-        endTime: dayjs().subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
+        hourState: '',
+        state: '',
+        startTime: '',
+        endTime: ''
       },
       time: '������',
-      selectTime: '',
+      selectTime: [],
       macDate: {},
+      macOnlineData: {},
       orgData: [],
       tableData: [],
       handleShow: false,
@@ -252,49 +262,80 @@
       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: {
     time (newValue, oldValue) {
       let now = dayjs() // ������������������
       if (newValue === '���1���') {
-        this.selectTime = []
+        this.$set(this.selectTime, 0, new Date(now.subtract(1, 'day').format('YYYY-MM-DD  HH:mm')))
+        this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD  HH:mm')))
+        this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
         this.formInline.startTime = now.subtract(1, 'day').format('YYYY-MM-DD  HH:mm') // ���������������������
       } else if (newValue === '���3���') {
-        this.selectTime = []
+        this.$set(this.selectTime, 0, new Date(now.subtract(3, 'day').format('YYYY-MM-DD  HH:mm')))
+        this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD  HH:mm')))
+        this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
         this.formInline.startTime = now.subtract(3, 'day').format('YYYY-MM-DD  HH:mm') // ���������������������
       } else if (newValue === '���5���') {
-        this.selectTime = []
+        this.$set(this.selectTime, 0, new Date(now.subtract(5, 'day').format('YYYY-MM-DD  HH:mm')))
+        this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD  HH:mm')))
+        this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
         this.formInline.startTime = now.subtract(5, 'day').format('YYYY-MM-DD  HH:mm') // ���������������������
       } else if (newValue === '���7���') {
-        this.selectTime = []
+        this.$set(this.selectTime, 0, new Date(now.subtract(7, 'day').format('YYYY-MM-DD  HH:mm')))
+        this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD  HH:mm')))
+        this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
         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')
+        this.$set(this.selectTime, 0, new Date(dayjs().startOf('day').format('YYYY-MM-DD  HH:mm')))
+        this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD  HH:mm')))
+        this.formInline.endTime = now.subtract(1, 'hour').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')
       }
     }
+  },
+  mounted () {
+    this.$set(this.selectTime, 0, new Date(dayjs().startOf('day').format('YYYY-MM-DD  HH:mm')))
+    this.$set(this.selectTime, 1, new Date(dayjs().format('YYYY-MM-DD  HH:mm')))
   },
   created () {
     this.getOrganizationId()
   },
   methods: {
     changeDay () {
-      console.log(this.selectTime)
-      this.formInline.startTime = this.selectTime[0]
-      this.formInline.endTime = this.selectTime[1]
+      console.log('this.selectTime', this.selectTime)
+      if (this.selectTime !== null) {
+        console.log(this.selectTime)
+        this.formInline.startTime = this.selectTime[0]
+
+        if (dayjs(this.selectTime[1]).format('YYYY-MM-DD HH') === dayjs().format('YYYY-MM-DD HH')) {
+          this.formInline.endTime = dayjs(this.selectTime[1]).subtract(1, 'hour').format('YYYY-MM-DD  HH:mm')
+        } else {
+          this.formInline.endTime = dayjs(this.selectTime[1]).startOf('day').format('YYYY-MM-DD  HH:mm')
+        }
+      }
+      console.log('this.formInline12', this.formInline)
       this.time = ''
     },
     handleDetail (row) {
-      console.log(row)
       this.handleShow = true
-      this.macDate = row
-      this.macDate.startTime = this.formInline.startTime
-      this.macDate.endTime = this.formInline.endTime
+      this.macDate = _.cloneDeep(row)
+      this.macDate.startTime = this.selectTime[0]
+      this.macDate.endTime = this.selectTime[1]
+      console.log(this.macDate)
     },
     handleSearch () {
+      this.getOnlineData()
+      console.log(' this.formInline', this.formInline)
       if (this.formInline.organizationId !== '') {
+        if (this.time === '������') {
+          console.log('������������')
+          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 +345,7 @@
           }
         })
           .then(res => {
-            this.tableData = res.data
+            this.tableData = res.data || []
             this.loading = false
           })
           .catch(err => {
@@ -314,6 +355,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