ll
liukangdong
2024-11-15 522877ae5bddcb27699b893c27f149d6a3c7e408
screen/src/views/FireFighting.vue
@@ -31,7 +31,9 @@
                  <span class="item">故障</span>
                  <span class="item">离线</span>
                </div>
                <template v-for="(item, i) in dataList1" :key="i">
                <div class="one-swiper list_content">
                  <div class="swiper-wrapper">
                    <div class="line_wrap one-swiper-slide swiper-slide" v-for="(item, i) in dataList1">
                  <div class="line">
                    <span class="item name">{{ item.deviceTypeName }}</span>
                    <span class="item">{{ item.statusTotal }}</span>
@@ -41,7 +43,10 @@
                    <span class="item">{{ item.offlineNum }}</span>
                  </div>
                  <div class="separate"></div>
                </template>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
@@ -218,7 +223,8 @@
                <div class="separate"></div>
                <div class="item">
                  <div>维保率</div>
                  <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="num active">{{ ((dataList5.protectNum / dataList5.planProtectTotal) * 100).toFixed(0) }}%</div>
                  <div v-if="dataList5.protectNum && dataList5.planProtectTotal" class="num active">{{
                    ((dataList5.protectNum / dataList5.planProtectTotal) * 100).toFixed(0) }}%</div>
                </div>
              </div>
              <div class="footer">
@@ -262,8 +268,9 @@
              <img class="icon" src="@/assets/images/FireFighting/ic_title_green@2x.png" alt="">
              <div class="name">告警信息</div>
            </div>
            <div class="list">
              <div class="item" v-for="i in 5">
            <div class="list two-swiper">
              <div class="swiper-wrapper">
                <div class="item two-swiper-slide swiper-slide" v-for="item, i in dataList7" :key="i">
                <div class="icon">
                  <div class="circle"></div>
                  <div class="line"></div>
@@ -271,7 +278,7 @@
                <div class="content">
                  <div class="header">
                    <div class="time">
                      <span>123</span>
                        <span>{{ item.time }}</span>
                      <span class="status">处理中</span>
                    </div>
                    <div class="have_time">已经发生<span>1</span>分钟</div>
@@ -279,11 +286,12 @@
                  <div class="wrap">
                    <div class="title">
                      <img class="xf" src="@/assets/images/FireFighting/ic_gaojing_red@2x.png" alt="">
                      <span>消防警告</span>
                        <span>{{ item.name }}</span>
                    </div>
                    <div class="title">
                      <img class="addr" src="@/assets/images/FireFighting/xiaofang_ic_weizhi@2x.png" alt="">
                      <span>A厂房3车间门口</span>
                        <span>{{ item.addr }}</span>
                      </div>
                    </div>
                  </div>
                </div>
@@ -302,6 +310,8 @@
import FirePercent from '@/components/FirePercent.vue'
import dayjs from 'dayjs'
import * as echarts from 'echarts'
import 'swiper/css/swiper.min.css'
import Swiper from 'swiper'
import {
  getFightingalarmData,
  getFightingHandle,
@@ -692,11 +702,19 @@
const getData1 = () => {
  getFightingDeAlarm().then(res => {
    dataList1.value = res.data
    loopFn1()
  })
}
const policeColors = ['#01D9FE', '#FE5501', '#0193FE', '#28F0C4']
const dataList2 = ref([])
const getData2 = () => {
  let temp = []
  temp.push({ name: '真实报警数', num: 10, rate: 20 })
  temp.push({ name: '误报警数', num: 30, rate: 60 })
  temp.push({ name: '已解除', num: 20, rate: 40 })
  temp.push({ name: '处理中', num: 8, rate: 16 })
  dataList2.value = temp
  return
  getFightingalarmData().then(res => {
    const result = res.data || {}
    let temp = []
@@ -882,6 +900,47 @@
    dataList6.value = res.data
  })
}
const dataList7 = ref([])
const getData7 = () => {
  dataList7.value = [
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
    { name: '消防告警', addr: '厂区门口', time: '2022-02-02' },
  ]
  loopFn2()
}
const autoplayFlag = (list = [], leng = 4, time = 2000) => {
  if (list.length > leng) {
    return { delay: time, disableOnInteraction: false }
  } else {
    return false
  }
}
const loopFn1 = () => {
  var newSwiper1 = new Swiper('.one-swiper', {
    initialSlide: 0,
    direction: 'vertical', //竖直方向
    slidesPerView: 5,
    autoplay: autoplayFlag(dataList1.value, 5, 4000),
    observer: true, //修改swiper自己或子元素时,自动初始化swiper
  })
}
const loopFn2 = () => {
  var newSwiper1 = new Swiper('.two-swiper', {
    initialSlide: 0,
    direction: 'vertical', //竖直方向
    slidesPerView: 4,
    autoplay: autoplayFlag(dataList7.value, 4, 4000),
    observer: true, //修改swiper自己或子元素时,自动初始化swiper
  })
}
onMounted(() => {
  getData1()
@@ -890,6 +949,7 @@
  getData4()
  getData5()
  getData6()
  getData7()
  initWatergage()
  initLiquidlevel()
@@ -916,8 +976,15 @@
      .list_wrap {
        padding: 10px 0;
        height: 227px;
        overflow: auto;
        .list_content {
          height: 170px;
          overflow: hidden;
          .line_wrap {
            height: 34px !important;
          }
        }
        .list {
          .line {
@@ -1397,15 +1464,15 @@
      }
      .list {
        height: 330px;
        overflow: auto;
        height: 320px;
        overflow: hidden;
        margin-top: 15px;
        scrollbar-width: none;
        .item {
          display: flex;
          font-size: 13px;
          color: #D2E0FF;
          height: 80px !important;
          .icon {
            width: 40px;
@@ -1465,7 +1532,7 @@
            }
            .wrap {
              height: 40px;
              height: 34px;
              background: linear-gradient(270deg, rgba(254, 85, 1, 0) 0%, rgba(254, 85, 1, 0.19) 100%);
              border-radius: 2px 0px 0px 2px;
              display: flex;