|  | @@ -0,0 +1,189 @@
 | 
	
		
			
				|  |  | +<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-cell title="UPS状态" @click="showStatus = true" is-link arrow-direction="down" :value="defaultStatus" />
 | 
	
		
			
				|  |  | +        <van-popup v-model="showStatus" round position="bottom">
 | 
	
		
			
				|  |  | +          <van-picker
 | 
	
		
			
				|  |  | +            title="UPS状态"
 | 
	
		
			
				|  |  | +            show-toolbar
 | 
	
		
			
				|  |  | +            :columns="statusOptions"
 | 
	
		
			
				|  |  | +            @confirm="onStatusConfirm"
 | 
	
		
			
				|  |  | +            @cancel="onCancel"
 | 
	
		
			
				|  |  | +            default-index="0"
 | 
	
		
			
				|  |  | +            :close-on-click-overlay="false"
 | 
	
		
			
				|  |  | +          />
 | 
	
		
			
				|  |  | +        </van-popup>
 | 
	
		
			
				|  |  | +      </van-col>
 | 
	
		
			
				|  |  | +    </van-row>
 | 
	
		
			
				|  |  | +    <div class="container">
 | 
	
		
			
				|  |  | +      <k-list :list="list" :params="search" :auto="false" ref="list">
 | 
	
		
			
				|  |  | +        <template slot-scope="{ data }">
 | 
	
		
			
				|  |  | +          <item :data="data" :statusOptions="deviceTypeOptions"></item>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </k-list>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +import NavBar from '@/components/NavBar'
 | 
	
		
			
				|  |  | +// import Calendar from '@/components/Calendar';
 | 
	
		
			
				|  |  | +import { mapGetters } from 'vuex'
 | 
	
		
			
				|  |  | +import { deptTreeList } from '@/api/public'
 | 
	
		
			
				|  |  | +// import { list, stateStatistic } 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_ups',
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      search: {
 | 
	
		
			
				|  |  | +        orgId: this.orgId,
 | 
	
		
			
				|  |  | +        checkSub: true,
 | 
	
		
			
				|  |  | +        deviceType: null,
 | 
	
		
			
				|  |  | +        state: null,
 | 
	
		
			
				|  |  | +        pageNum: 1,
 | 
	
		
			
				|  |  | +        pageSize: 10
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      statusStatistic: null,
 | 
	
		
			
				|  |  | +      showDeviceType: false,
 | 
	
		
			
				|  |  | +      defaultDeviceType: '全部',
 | 
	
		
			
				|  |  | +      showStatus: false,
 | 
	
		
			
				|  |  | +      defaultStatus: '全部',
 | 
	
		
			
				|  |  | +      dicts: ['sensor_alarm_status']
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  watch: {},
 | 
	
		
			
				|  |  | +  created() {},
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    this.search.orgId = this.orgId
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  computed: {
 | 
	
		
			
				|  |  | +    ...mapGetters(['orgName', 'orgId', 'dictionary']),
 | 
	
		
			
				|  |  | +    statusOptions() {
 | 
	
		
			
				|  |  | +      let r = [{ value: null, text: '全部' }]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let dict = this.getDictItem('sensor_alarm_status')
 | 
	
		
			
				|  |  | +      if (dict) {
 | 
	
		
			
				|  |  | +        dict.forEach(element => {
 | 
	
		
			
				|  |  | +          let label = element.dictLabel
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          if (element.dictValue == 0 && this.statusStatistic) {
 | 
	
		
			
				|  |  | +            label += `(${this.statusStatistic.normal})`
 | 
	
		
			
				|  |  | +          } else if (element.dictValue == 1 && this.statusStatistic) {
 | 
	
		
			
				|  |  | +            label += `(${this.statusStatistic.alarm})`
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          r.push({ value: element.dictValue, text: label })
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      return r
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    list() {
 | 
	
		
			
				|  |  | +      return {
 | 
	
		
			
				|  |  | +        total: 3,
 | 
	
		
			
				|  |  | +        rows: [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            orgName: '六一分理处',
 | 
	
		
			
				|  |  | +            deviceName: '监控主机Ups',
 | 
	
		
			
				|  |  | +            state: 0,
 | 
	
		
			
				|  |  | +            stateText: '正常'
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            orgName: '六一分理处',
 | 
	
		
			
				|  |  | +            deviceName: '现金区Ups',
 | 
	
		
			
				|  |  | +            state: 0,
 | 
	
		
			
				|  |  | +            stateText: '正常'
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            orgName: '六一分理处',
 | 
	
		
			
				|  |  | +            deviceName: '大厅Ups',
 | 
	
		
			
				|  |  | +            state: 0,
 | 
	
		
			
				|  |  | +            stateText: '正常'
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        ]
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onStatusConfirm(opt) {
 | 
	
		
			
				|  |  | +      this.defaultState = opt.text
 | 
	
		
			
				|  |  | +      this.search.state = opt.value
 | 
	
		
			
				|  |  | +      this.showStatus = false
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onCancel() {
 | 
	
		
			
				|  |  | +      this.showAlarmType = false
 | 
	
		
			
				|  |  | +      this.showStatus = false
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    //改变机构后将重新发起请求
 | 
	
		
			
				|  |  | +    changeTree(node) {
 | 
	
		
			
				|  |  | +      this.search.orgId = node.id
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    orgCheckChanged(v) {
 | 
	
		
			
				|  |  | +      this.search.checkSub = v
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<style lang="scss" scoped>
 | 
	
		
			
				|  |  | +.page_list {
 | 
	
		
			
				|  |  | +  background-color: transparent;
 | 
	
		
			
				|  |  | +  display: block;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  .container {
 | 
	
		
			
				|  |  | +    // overflow: auto;
 | 
	
		
			
				|  |  | +    // height: calc(100vh - 11rem);
 | 
	
		
			
				|  |  | +    .k-content-repair {
 | 
	
		
			
				|  |  | +      display: flex;
 | 
	
		
			
				|  |  | +      flex-direction: column;
 | 
	
		
			
				|  |  | +      justify-content: space-between;
 | 
	
		
			
				|  |  | +      flex: 1;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.search-devicetype {
 | 
	
		
			
				|  |  | +  width: 25%;
 | 
	
		
			
				|  |  | +  display: inline-block;
 | 
	
		
			
				|  |  | +  text-align: center;
 | 
	
		
			
				|  |  | +  margin-top: 10px;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.search-state {
 | 
	
		
			
				|  |  | +  width: 100%;
 | 
	
		
			
				|  |  | +  margin-top: 10px;
 | 
	
		
			
				|  |  | +  padding-left: 10px;
 | 
	
		
			
				|  |  | +  padding-right: 10px;
 | 
	
		
			
				|  |  | +  > span {
 | 
	
		
			
				|  |  | +    width: 50%;
 | 
	
		
			
				|  |  | +    border: solid 1px rgb(196, 196, 196);
 | 
	
		
			
				|  |  | +    display: inline-block;
 | 
	
		
			
				|  |  | +    text-align: center;
 | 
	
		
			
				|  |  | +    padding-top: 1.2vw;
 | 
	
		
			
				|  |  | +    padding-bottom: 1.2vw;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.alarm_state_selected {
 | 
	
		
			
				|  |  | +  background-color: #409eff;
 | 
	
		
			
				|  |  | +  border-color: #409eff;
 | 
	
		
			
				|  |  | +  color: white;
 | 
	
		
			
				|  |  | +  font-weight: 700;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +</style>
 |