|
@@ -1,6 +1,6 @@
|
|
<template>
|
|
<template>
|
|
<div class="yui-tree-box">
|
|
<div class="yui-tree-box">
|
|
- <select-space></select-space>
|
|
|
|
|
|
+ <project-item-tree @treeclick="treeclick" iconfontClass="el-icon-place"></project-item-tree>
|
|
<div class="hui-tree-content">
|
|
<div class="hui-tree-content">
|
|
<div class="end-box box-background">
|
|
<div class="end-box box-background">
|
|
<model type="end" fileId="10000786667774"></model>
|
|
<model type="end" fileId="10000786667774"></model>
|
|
@@ -29,15 +29,13 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="end-list">
|
|
|
|
|
|
+ <div class="end-list" v-if="list.length > 0">
|
|
<div class="end-list-box">
|
|
<div class="end-list-box">
|
|
- <div class="end-item">
|
|
|
|
|
|
+ <div class="end-item" v-for="(item,index) in list" :key="index">
|
|
<div class="end-title">
|
|
<div class="end-title">
|
|
<i class="iconfont huifont-shuzhuangcaidanxiala"></i>
|
|
<i class="iconfont huifont-shuzhuangcaidanxiala"></i>
|
|
- <span class="end-space hui-ellipsis">1F</span>
|
|
|
|
- <span class="end-title-name hui-ellipsis">
|
|
|
|
- 1F默认房间
|
|
|
|
- </span>
|
|
|
|
|
|
+ <span class="end-space hui-ellipsis">{{item.projectItemTargetName}}</span>
|
|
|
|
+ <span class="end-title-name hui-ellipsis">{{item.roomName}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="end-content">
|
|
<div class="end-content">
|
|
<div class="content-item">
|
|
<div class="content-item">
|
|
@@ -45,7 +43,7 @@
|
|
平均温度
|
|
平均温度
|
|
</div>
|
|
</div>
|
|
<div class="content-value">
|
|
<div class="content-value">
|
|
- <span class="content-number alibaba color-cyan">12</span>℃
|
|
|
|
|
|
+ <span class="content-number alibaba color-cyan">{{item.temp}}</span>℃
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="content-item">
|
|
<div class="content-item">
|
|
@@ -53,7 +51,7 @@
|
|
平均湿度
|
|
平均湿度
|
|
</div>
|
|
</div>
|
|
<div class="content-value">
|
|
<div class="content-value">
|
|
- <span class="content-number alibaba color-cyan">15</span>%
|
|
|
|
|
|
+ <span class="content-number alibaba color-cyan">{{item.humidity}}</span>%
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="content-item">
|
|
<div class="content-item">
|
|
@@ -61,7 +59,7 @@
|
|
开启设备
|
|
开启设备
|
|
</div>
|
|
</div>
|
|
<div class="content-value">
|
|
<div class="content-value">
|
|
- <span class="content-number alibaba color-cyan">5</span>台
|
|
|
|
|
|
+ <span class="content-number alibaba color-cyan">{{item.openDevice}}</span>台
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="content-item">
|
|
<div class="content-item">
|
|
@@ -69,179 +67,7 @@
|
|
故障设备
|
|
故障设备
|
|
</div>
|
|
</div>
|
|
<div class="content-value">
|
|
<div class="content-value">
|
|
- <span class="content-number alibaba color-cyan">0</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-item">
|
|
|
|
- <div class="end-title">
|
|
|
|
- <i class="iconfont huifont-shuzhuangcaidanxiala"></i>
|
|
|
|
- <span class="end-space hui-ellipsis">1F</span>
|
|
|
|
- <span class="end-title-name hui-ellipsis">
|
|
|
|
- 1F默认房间
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-content">
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均温度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">12</span>℃
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均湿度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">15</span>%
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 开启设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">5</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 故障设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">0</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-item">
|
|
|
|
- <div class="end-title">
|
|
|
|
- <i class="iconfont huifont-shuzhuangcaidanxiala"></i>
|
|
|
|
- <span class="end-space hui-ellipsis">1F</span>
|
|
|
|
- <span class="end-title-name hui-ellipsis">
|
|
|
|
- 1F默认房间
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-content">
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均温度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">12</span>℃
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均湿度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">15</span>%
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 开启设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">5</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 故障设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">0</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-item">
|
|
|
|
- <div class="end-title">
|
|
|
|
- <i class="iconfont huifont-shuzhuangcaidanxiala"></i>
|
|
|
|
- <span class="end-space hui-ellipsis">1F</span>
|
|
|
|
- <span class="end-title-name hui-ellipsis">
|
|
|
|
- 1F默认房间
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-content">
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均温度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">12</span>℃
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均湿度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">15</span>%
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 开启设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">5</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 故障设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">0</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-item">
|
|
|
|
- <div class="end-title">
|
|
|
|
- <i class="iconfont huifont-shuzhuangcaidanxiala"></i>
|
|
|
|
- <span class="end-space hui-ellipsis">1F</span>
|
|
|
|
- <span class="end-title-name hui-ellipsis">
|
|
|
|
- 1F默认房间
|
|
|
|
- </span>
|
|
|
|
- </div>
|
|
|
|
- <div class="end-content">
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均温度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">12</span>℃
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 平均湿度
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">15</span>%
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 开启设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">5</span>台
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="content-item">
|
|
|
|
- <div class="content-label">
|
|
|
|
- 故障设备
|
|
|
|
- </div>
|
|
|
|
- <div class="content-value">
|
|
|
|
- <span class="content-number alibaba color-cyan">0</span>台
|
|
|
|
|
|
+ <span class="content-number alibaba color-cyan">{{item.faultDevice}}</span>台
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -254,13 +80,74 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
- import selectSpace from '@/components/work/common/selectSpace'
|
|
|
|
|
|
+ import projectItemTree from '@/components/common/projectItemTree'
|
|
import model from '@/components/work/common/model'
|
|
import model from '@/components/work/common/model'
|
|
|
|
+ import {
|
|
|
|
+ getEnergyDeviceList
|
|
|
|
+ } from '@/httpApi/test'
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
- selectSpace,
|
|
|
|
|
|
+ projectItemTree,
|
|
model
|
|
model
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ list: []
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ created() {
|
|
|
|
+ this.init();
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ init(option) {
|
|
|
|
+ let postData = {
|
|
|
|
+ projectId: this.$store.getters.project.id,
|
|
|
|
+ type: 8
|
|
|
|
+ }
|
|
|
|
+ if (option) postData = Object.assign(postData, option);
|
|
|
|
+ getEnergyDeviceList(postData).then(res => {
|
|
|
|
+ let data = res.data
|
|
|
|
+ let obj = {},
|
|
|
|
+ list = [];
|
|
|
|
+ for (let i = 0; i < data.length; i++) {
|
|
|
|
+ let roomName = data[i].projectItemTargetRoomNumber;
|
|
|
|
+ if (!obj[roomName]) {
|
|
|
|
+ obj[roomName] = 1;
|
|
|
|
+ list.push({
|
|
|
|
+ id: data[i].projectItemTargetRoomId,
|
|
|
|
+ roomName: roomName,
|
|
|
|
+ projectItemTargetName: data[i].projectItemTargetName,
|
|
|
|
+ children: []
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ list.find(node => node.id === data[i].projectItemTargetRoomId).children.push(data[i])
|
|
|
|
+ }
|
|
|
|
+ this.list = list.map(node => {
|
|
|
|
+ let allTemp = 0,
|
|
|
|
+ allHumidity = 0,
|
|
|
|
+ openDevice = 0,
|
|
|
|
+ faultDevice = 0;
|
|
|
|
+ for (let i = 0; i < node.children.length; i++) {
|
|
|
|
+ allTemp += Number(node.children[i].column1);
|
|
|
|
+ allHumidity += Number(node.children[i].column3);
|
|
|
|
+ if (node.children[i].state === 1) openDevice++;
|
|
|
|
+ if (node.children[i].state === 3) faultDevice++;
|
|
|
|
+ }
|
|
|
|
+ node['openDevice'] = openDevice;
|
|
|
|
+ node['faultDevice'] = faultDevice;
|
|
|
|
+ node['temp'] = Math.round(allTemp / node.children.length * 100) / 100;
|
|
|
|
+ node['humidity'] = Math.round(allHumidity / node.children.length * 100) / 100;
|
|
|
|
+ return node
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ treeclick(item) {
|
|
|
|
+ let obj = item.id ? {
|
|
|
|
+ projectItemTargetId: item.id
|
|
|
|
+ } : {}
|
|
|
|
+ this.init(obj);
|
|
|
|
+ },
|
|
|
|
+ },
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|