|  | @@ -0,0 +1,224 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="page_list">
 | 
	
		
			
				|  |  | +    <nav-bar></nav-bar>
 | 
	
		
			
				|  |  | +    <van-row>
 | 
	
		
			
				|  |  | +      <van-col span="24">
 | 
	
		
			
				|  |  | +        <org-tree
 | 
	
		
			
				|  |  | +          v-model="search.orgId"
 | 
	
		
			
				|  |  | +          @changeItem="changeTree"
 | 
	
		
			
				|  |  | +          @checked="orgCheckChanged"
 | 
	
		
			
				|  |  | +          showChecked
 | 
	
		
			
				|  |  | +          defaultChecked
 | 
	
		
			
				|  |  | +        ></org-tree>
 | 
	
		
			
				|  |  | +      </van-col>
 | 
	
		
			
				|  |  | +    </van-row>
 | 
	
		
			
				|  |  | +    <van-row>
 | 
	
		
			
				|  |  | +      <van-col span="24">
 | 
	
		
			
				|  |  | +        <van-tabs @click="tabActiveHandler">
 | 
	
		
			
				|  |  | +          <van-tab name="thiefCheck" title="被盗" :badge="thiefCheckBadge"></van-tab>
 | 
	
		
			
				|  |  | +          <van-tab name="infraredCheck" title="红外" :badge="infraredCheckBadge"></van-tab>
 | 
	
		
			
				|  |  | +          <van-tab name="doorCheck" title="门窗磁" :badge="doorCheckBadge"></van-tab>
 | 
	
		
			
				|  |  | +          <van-tab name="waterCheck" title="水浸" :badge="waterCheckBadge"></van-tab>
 | 
	
		
			
				|  |  | +          <van-tab name="upsCheck" title="UPS" :badge="upsCheckBadge"></van-tab>
 | 
	
		
			
				|  |  | +          <van-tab name="airCheck" title="空调" :badge="airCheckBadge"></van-tab>
 | 
	
		
			
				|  |  | +        </van-tabs>
 | 
	
		
			
				|  |  | +      </van-col>
 | 
	
		
			
				|  |  | +      <van-col span="12" class="customVanCell">
 | 
	
		
			
				|  |  | +        <van-cell title="设备总数:" :value="totalCount" />
 | 
	
		
			
				|  |  | +      </van-col>
 | 
	
		
			
				|  |  | +      <van-col span="12" class="customVanCell">
 | 
	
		
			
				|  |  | +        <van-cell title="当前告警:" :value="alarmCount" />
 | 
	
		
			
				|  |  | +      </van-col>
 | 
	
		
			
				|  |  | +    </van-row>
 | 
	
		
			
				|  |  | +    <div class="container">
 | 
	
		
			
				|  |  | +      <k-list :list="list" :params="search" :auto="false" ref="list">
 | 
	
		
			
				|  |  | +        <template slot-scope="{ data }">
 | 
	
		
			
				|  |  | +          <item :data="data"></item>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </k-list>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import NavBar from '@/components/NavBar'
 | 
	
		
			
				|  |  | +import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | +import { deviceTypeCount } from '@/api/iot/sensorAlarm.js'
 | 
	
		
			
				|  |  | +import { list } from '@/api/iot/donghuan.js'
 | 
	
		
			
				|  |  | +import KList from '@/components/list/index.vue'
 | 
	
		
			
				|  |  | +import Item from './components/item.vue'
 | 
	
		
			
				|  |  | +import OrgTree from '@/components/orgTree'
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  components: { NavBar, KList, Item, OrgTree },
 | 
	
		
			
				|  |  | +  name: 'iot_envMonitor',
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      search: {
 | 
	
		
			
				|  |  | +        orgId: this.orgId,
 | 
	
		
			
				|  |  | +        checkSub: true,
 | 
	
		
			
				|  |  | +        deviceType: '41881',
 | 
	
		
			
				|  |  | +        deviceName:null,
 | 
	
		
			
				|  |  | +        state: null,
 | 
	
		
			
				|  |  | +        pageNum: 1,
 | 
	
		
			
				|  |  | +        pageSize: 10
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      thiefCheckBadge: null,
 | 
	
		
			
				|  |  | +      infraredCheckBadge: null,
 | 
	
		
			
				|  |  | +      doorCheckBadge: null,
 | 
	
		
			
				|  |  | +      waterCheckBadge: null,
 | 
	
		
			
				|  |  | +      upsCheckBadge: null,
 | 
	
		
			
				|  |  | +      airCheckBadge: null,
 | 
	
		
			
				|  |  | +      totalCount: null,
 | 
	
		
			
				|  |  | +      alarmCount: null,
 | 
	
		
			
				|  |  | +      dataInfo:{},
 | 
	
		
			
				|  |  | +      tabName:"thiefCheck"
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  beforeRouteEnter(to,from,next){
 | 
	
		
			
				|  |  | +    next(vm=>{
 | 
	
		
			
				|  |  | +      if(to.params.event === 'refresh'){
 | 
	
		
			
				|  |  | +        vm.reSet()
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    })
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  watch: {},
 | 
	
		
			
				|  |  | +  created() {
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    this.search.orgId = this.orgId;
 | 
	
		
			
				|  |  | +    this.getBadge();
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    ...mapGetters(['orgName', 'orgId', 'dictionary'])
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    list,
 | 
	
		
			
				|  |  | +    reSet(){
 | 
	
		
			
				|  |  | +      this.search= {
 | 
	
		
			
				|  |  | +        orgId: this.orgId,
 | 
	
		
			
				|  |  | +        checkSub: true,
 | 
	
		
			
				|  |  | +        deviceType: '4182',
 | 
	
		
			
				|  |  | +        deviceName:null,
 | 
	
		
			
				|  |  | +        state: null,
 | 
	
		
			
				|  |  | +        pageNum: 1,
 | 
	
		
			
				|  |  | +        pageSize: 10
 | 
	
		
			
				|  |  | +      };
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    //改变机构后将重新发起请求
 | 
	
		
			
				|  |  | +    changeTree(node) {
 | 
	
		
			
				|  |  | +      this.search.orgId = node.id;
 | 
	
		
			
				|  |  | +      this.getBadge();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    orgCheckChanged(v) {
 | 
	
		
			
				|  |  | +      this.search.checkSub = v;
 | 
	
		
			
				|  |  | +      this.getBadge();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    getBadge(){
 | 
	
		
			
				|  |  | +      deviceTypeCount(this.search).then(r =>{
 | 
	
		
			
				|  |  | +        this.dataInfo = r.data;
 | 
	
		
			
				|  |  | +        if (r.data.thiefAlarmCount){
 | 
	
		
			
				|  |  | +          this.thiefCheckBadge=r.data.thiefAlarmCount > 99 ? '99+' : r.data.thiefAlarmCount;
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.thiefCheckBadge = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (r.data.infraredAlarmCount){
 | 
	
		
			
				|  |  | +          this.infraredCheckBadge=r.data.infraredAlarmCount > 99 ? '99+' : r.data.infraredAlarmCount;
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.infraredCheckBadge = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (r.data.doorAlarmCount){
 | 
	
		
			
				|  |  | +          this.doorCheckBadge=r.data.doorAlarmCount > 99 ? '99+' : r.data.doorAlarmCount;
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.doorCheckBadge = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (r.data.waterAlarmCount){
 | 
	
		
			
				|  |  | +          this.waterCheckBadge=r.data.waterAlarmCount > 99 ? '99+' : r.data.waterAlarmCount;
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.waterCheckBadge = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (r.data.upsAlarmCount){
 | 
	
		
			
				|  |  | +          this.upsCheckBadge=r.data.upsAlarmCount > 99 ? '99+' : r.data.upsAlarmCount;
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.upsCheckBadge = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (r.data.airAlarmCount){
 | 
	
		
			
				|  |  | +          this.airCheckBadge=r.data.airAlarmCount > 99 ? '99+' : r.data.airAlarmCount;
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.airCheckBadge = null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        this.tabActiveHandler(this.tabName);
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    tabActiveHandler(name){
 | 
	
		
			
				|  |  | +      if (name === "thiefCheck"){
 | 
	
		
			
				|  |  | +        this.totalCount = this.dataInfo.thiefCount;
 | 
	
		
			
				|  |  | +        this.alarmCount = this.dataInfo.thiefAlarmCount;
 | 
	
		
			
				|  |  | +        this.search.deviceType = "41881";
 | 
	
		
			
				|  |  | +      }else if (name === "infraredCheck"){
 | 
	
		
			
				|  |  | +        this.totalCount = this.dataInfo.infraredCount;
 | 
	
		
			
				|  |  | +        this.alarmCount = this.dataInfo.infraredAlarmCount;
 | 
	
		
			
				|  |  | +        this.search.deviceType = "4181";
 | 
	
		
			
				|  |  | +      }else if (name === "doorCheck"){
 | 
	
		
			
				|  |  | +        this.totalCount = this.dataInfo.doorCount;
 | 
	
		
			
				|  |  | +        this.alarmCount = this.dataInfo.doorAlarmCount;
 | 
	
		
			
				|  |  | +        this.search.deviceType = "4188";
 | 
	
		
			
				|  |  | +      }else if (name === "waterCheck"){
 | 
	
		
			
				|  |  | +        this.totalCount = this.dataInfo.waterCount;
 | 
	
		
			
				|  |  | +        this.alarmCount = this.dataInfo.waterAlarmCount;
 | 
	
		
			
				|  |  | +        this.search.deviceType = "4184";
 | 
	
		
			
				|  |  | +      }else if (name === "upsCheck"){
 | 
	
		
			
				|  |  | +        this.totalCount = this.dataInfo.upsCount;
 | 
	
		
			
				|  |  | +        this.alarmCount = this.dataInfo.upsAlarmCount;
 | 
	
		
			
				|  |  | +        this.search.deviceType = "408";
 | 
	
		
			
				|  |  | +      }else if (name === "airCheck"){
 | 
	
		
			
				|  |  | +        this.totalCount = this.dataInfo.airCount;
 | 
	
		
			
				|  |  | +        this.alarmCount = this.dataInfo.airAlarmCount;
 | 
	
		
			
				|  |  | +        this.search.deviceType = "415";
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.tabName = name;
 | 
	
		
			
				|  |  | +      //this.$forceUpdate()
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<style lang="scss" scoped>
 | 
	
		
			
				|  |  | +.page_list {
 | 
	
		
			
				|  |  | +  background-color: transparent;
 | 
	
		
			
				|  |  | +  display: block;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .van-row{
 | 
	
		
			
				|  |  | +    .customVanCell{
 | 
	
		
			
				|  |  | +      .van-cell{
 | 
	
		
			
				|  |  | +        // padding-left: 1vw !important;
 | 
	
		
			
				|  |  | +        .van-cell__title{
 | 
	
		
			
				|  |  | +          color: #969799 !important;
 | 
	
		
			
				|  |  | +          flex:none !important;
 | 
	
		
			
				|  |  | +          margin-left: 20%;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        .van-cell__value {
 | 
	
		
			
				|  |  | +          color: #969799 !important;
 | 
	
		
			
				|  |  | +          flex: none !important;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .container {
 | 
	
		
			
				|  |  | +    // overflow: auto;
 | 
	
		
			
				|  |  | +    // height: calc(100vh - 11rem);
 | 
	
		
			
				|  |  | +    .k-content-repair {
 | 
	
		
			
				|  |  | +      display: flex;
 | 
	
		
			
				|  |  | +      flex-direction: column;
 | 
	
		
			
				|  |  | +      justify-content: space-between;
 | 
	
		
			
				|  |  | +      flex: 1;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |