| 
					
				 | 
			
			
				@@ -0,0 +1,192 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<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="smokeCheck" title="烟感" :badge="smokeCheckBadge"></van-tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <van-tab name="gasCheck" title="燃气" :badge="gasCheckBadge"></van-tab> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <van-tab name="temperatureAndHumidityCHeck" title="温湿度" :badge="temperatureAndHumidityCHeckBadge"></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/fireWarning.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_fireWarning', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      search: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        orgId: this.orgId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        checkSub: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deviceType: '4182', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        deviceName:null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        state: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pageNum: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        pageSize: 10 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      smokeCheckBadge: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      gasCheckBadge: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      temperatureAndHumidityCHeckBadge: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      totalCount: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      alarmCount: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dataInfo:{}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tabName:"smokeCheck" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // console.log(selectedOptions,'aaaaaa') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // this.search.orgId = selectedOptions[selectedOptions.length-1].id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // let option = selectedOptions[selectedOptions.length - 1] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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.smokeAlarmCount){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.smokeCheckBadge=r.data.smokeAlarmCount > 99 ? '99+' : r.data.smokeAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.alarmCount = r.data.smokeAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.smokeCheckBadge = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (r.data.gasAlarmCount){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.gasCheckBadge=r.data.gasAlarmCount > 99 ? '99+' : r.data.gasAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.gasCheckBadge = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (r.data.temperatureAndHumidityAlarmCount){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.temperatureAndHumidityCHeckBadge=r.data.temperatureAndHumidityAlarmCount > 99 ? '99+' : r.data.temperatureAndHumidityAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.temperatureAndHumidityCHeckBadge = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.tabActiveHandler(this.tabName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tabActiveHandler(name){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (name === "smokeCheck"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.totalCount = this.dataInfo.smokeCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.alarmCount = this.dataInfo.smokeAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.search.deviceType = "4182"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else if (name === "gasCheck"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.totalCount = this.dataInfo.gasCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.alarmCount = this.dataInfo.gasAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.search.deviceType = "41885"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }else if (name === "temperatureAndHumidityCHeck"){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.totalCount = this.dataInfo.temperatureAndHumidityCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.alarmCount = this.dataInfo.temperatureAndHumidityAlarmCount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.search.deviceType = "4183"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      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> 
			 |