quanyawei
2024-02-02 e635b5b4edab0a000a0af533b6b36f7300c5fa42
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',