|
@@ -1,163 +1,55 @@
|
|
<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="monitor box-background">
|
|
<div class="monitor box-background">
|
|
<div class="monitor-box">
|
|
<div class="monitor-box">
|
|
<div class="monitor-center">
|
|
<div class="monitor-center">
|
|
- <test-alarm></test-alarm>
|
|
|
|
|
|
+ <test-alarm ref="testAlarm" :type="13"></test-alarm>
|
|
<div class="bim-box">
|
|
<div class="bim-box">
|
|
<model type="enviroment-monitor" fileId="10000786668573"></model>
|
|
<model type="enviroment-monitor" fileId="10000786668573"></model>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <div class="monitor-right">
|
|
|
|
|
|
+ <div class="monitor-right hui-flex">
|
|
<div class="hui-chart-title">
|
|
<div class="hui-chart-title">
|
|
环境设备列表
|
|
环境设备列表
|
|
</div>
|
|
</div>
|
|
- <div class="environment-list">
|
|
|
|
- <div class="smell-item">
|
|
|
|
- <div class="smell-item-title color-font">
|
|
|
|
- <span>财务室</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-box">
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">-12</div>
|
|
|
|
- <div class="smell-item-name">温度(°C)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">0.5</div>
|
|
|
|
- <div class="smell-item-name">Tvoc(ppm)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">55.3</div>
|
|
|
|
- <div class="smell-item-name">湿度(%)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">32</div>
|
|
|
|
- <div class="smell-item-name">PM2.5(ug/m3)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">589</div>
|
|
|
|
- <div class="smell-item-name">CO2(ppm)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">69</div>
|
|
|
|
- <div class="smell-item-name">PM10(ug/m3)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item">
|
|
|
|
- <div class="smell-item-title color-font">
|
|
|
|
- <span>财务室</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-box">
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">-12</div>
|
|
|
|
- <div class="smell-item-name">温度(°C)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">0.5</div>
|
|
|
|
- <div class="smell-item-name">Tvoc(ppm)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">55.3</div>
|
|
|
|
- <div class="smell-item-name">湿度(%)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">32</div>
|
|
|
|
- <div class="smell-item-name">PM2.5(ug/m3)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">589</div>
|
|
|
|
- <div class="smell-item-name">CO2(ppm)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">69</div>
|
|
|
|
- <div class="smell-item-name">PM10(ug/m3)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item">
|
|
|
|
- <div class="smell-item-title color-font">
|
|
|
|
- <span>财务室</span>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-box">
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">-12</div>
|
|
|
|
- <div class="smell-item-name">温度(°C)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">0.5</div>
|
|
|
|
- <div class="smell-item-name">Tvoc(ppm)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">55.3</div>
|
|
|
|
- <div class="smell-item-name">湿度(%)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">32</div>
|
|
|
|
- <div class="smell-item-name">PM2.5(ug/m3)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-row">
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">589</div>
|
|
|
|
- <div class="smell-item-name">CO2(ppm)</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item-label">
|
|
|
|
- <div class="smell-item-value alibaba color-green">69</div>
|
|
|
|
- <div class="smell-item-name">PM10(ug/m3)</div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="smell-item">
|
|
|
|
|
|
+ <div class="hui-flex-box hui-no-tips" v-if="list.length === 0">
|
|
|
|
+ <empty width="100" description="暂无空气检测设备"></empty>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="environment-list hui-flex-box" v-else>
|
|
|
|
+ <div class="smell-item" v-for="(item,index) in list" :key="index">
|
|
<div class="smell-item-title color-font">
|
|
<div class="smell-item-title color-font">
|
|
- <span>财务室</span>
|
|
|
|
|
|
+ <span>{{item.name}}</span>
|
|
</div>
|
|
</div>
|
|
<div class="smell-item-box">
|
|
<div class="smell-item-box">
|
|
<div class="smell-item-row">
|
|
<div class="smell-item-row">
|
|
<div class="smell-item-label">
|
|
<div class="smell-item-label">
|
|
- <div class="smell-item-value alibaba color-green">-12</div>
|
|
|
|
|
|
+ <div class="smell-item-value alibaba color-green">{{item.temperature}}</div>
|
|
<div class="smell-item-name">温度(°C)</div>
|
|
<div class="smell-item-name">温度(°C)</div>
|
|
</div>
|
|
</div>
|
|
<div class="smell-item-label">
|
|
<div class="smell-item-label">
|
|
- <div class="smell-item-value alibaba color-green">0.5</div>
|
|
|
|
|
|
+ <div class="smell-item-value alibaba color-green">{{item.tVoc}}</div>
|
|
<div class="smell-item-name">Tvoc(ppm)</div>
|
|
<div class="smell-item-name">Tvoc(ppm)</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="smell-item-row">
|
|
<div class="smell-item-row">
|
|
<div class="smell-item-label">
|
|
<div class="smell-item-label">
|
|
- <div class="smell-item-value alibaba color-green">55.3</div>
|
|
|
|
|
|
+ <div class="smell-item-value alibaba color-green">{{item.humidity}}</div>
|
|
<div class="smell-item-name">湿度(%)</div>
|
|
<div class="smell-item-name">湿度(%)</div>
|
|
</div>
|
|
</div>
|
|
<div class="smell-item-label">
|
|
<div class="smell-item-label">
|
|
- <div class="smell-item-value alibaba color-green">32</div>
|
|
|
|
|
|
+ <div class="smell-item-value color-green">{{item.pm25}}</div>
|
|
<div class="smell-item-name">PM2.5(ug/m3)</div>
|
|
<div class="smell-item-name">PM2.5(ug/m3)</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="smell-item-row">
|
|
<div class="smell-item-row">
|
|
<div class="smell-item-label">
|
|
<div class="smell-item-label">
|
|
- <div class="smell-item-value alibaba color-green">589</div>
|
|
|
|
|
|
+ <div class="smell-item-value alibaba color-green">{{item.co2}}</div>
|
|
<div class="smell-item-name">CO2(ppm)</div>
|
|
<div class="smell-item-name">CO2(ppm)</div>
|
|
</div>
|
|
</div>
|
|
<div class="smell-item-label">
|
|
<div class="smell-item-label">
|
|
- <div class="smell-item-value alibaba color-green">69</div>
|
|
|
|
|
|
+ <div class="smell-item-value alibaba color-green">{{item.pm10}}</div>
|
|
<div class="smell-item-name">PM10(ug/m3)</div>
|
|
<div class="smell-item-name">PM10(ug/m3)</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -172,34 +64,34 @@
|
|
</div>
|
|
</div>
|
|
<div class="pass-rate-box">
|
|
<div class="pass-rate-box">
|
|
<div class="pass-rate-item">
|
|
<div class="pass-rate-item">
|
|
- <progress-bar title="温度合格率" :percent="70"></progress-bar>
|
|
|
|
|
|
+ <progress-bar title="温度合格率" :percent="returnQualified('temperature')*100"></progress-bar>
|
|
</div>
|
|
</div>
|
|
<div class="pass-rate-item">
|
|
<div class="pass-rate-item">
|
|
- <progress-bar title="湿度合格率" :percent="49"></progress-bar>
|
|
|
|
|
|
+ <progress-bar title="湿度合格率" :percent="returnQualified('humidity')*100"></progress-bar>
|
|
</div>
|
|
</div>
|
|
<div class="pass-rate-item">
|
|
<div class="pass-rate-item">
|
|
- <progress-bar title="CO2合格率" :percent="81.12"></progress-bar>
|
|
|
|
|
|
+ <progress-bar title="CO2合格率" :percent="returnQualified('co2')*100"></progress-bar>
|
|
</div>
|
|
</div>
|
|
<div class="pass-rate-item">
|
|
<div class="pass-rate-item">
|
|
- <progress-bar title="甲醛合格率" :percent="12.6"></progress-bar>
|
|
|
|
|
|
+ <progress-bar title="PM10合格率" :percent="returnQualified('pm10')*100"></progress-bar>
|
|
</div>
|
|
</div>
|
|
<div class="pass-rate-item">
|
|
<div class="pass-rate-item">
|
|
- <progress-bar title="TVOC合格率" :percent="32"></progress-bar>
|
|
|
|
|
|
+ <progress-bar title="TVOC合格率" :percent="returnQualified('tVoc')*100"></progress-bar>
|
|
</div>
|
|
</div>
|
|
<div class="pass-rate-item">
|
|
<div class="pass-rate-item">
|
|
- <progress-bar title="PM2.5合格率" :percent="81.12"></progress-bar>
|
|
|
|
|
|
+ <progress-bar title="PM2.5合格率" :percent="returnQualified('pm25')*100"></progress-bar>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="statistics-box">
|
|
<div class="statistics-box">
|
|
<div class="hui-chart-title">
|
|
<div class="hui-chart-title">
|
|
- 近24小时统计
|
|
|
|
|
|
+ 环境统计
|
|
</div>
|
|
</div>
|
|
<div class="statistics-chart">
|
|
<div class="statistics-chart">
|
|
<div class="statistics-chart-item">
|
|
<div class="statistics-chart-item">
|
|
<div class="chart-box">
|
|
<div class="chart-box">
|
|
<div class="chart-title">
|
|
<div class="chart-title">
|
|
- 近24小时温度
|
|
|
|
|
|
+ 温度
|
|
</div>
|
|
</div>
|
|
<div ref="chart1" class="chart-dom"></div>
|
|
<div ref="chart1" class="chart-dom"></div>
|
|
</div>
|
|
</div>
|
|
@@ -207,7 +99,7 @@
|
|
<div class="statistics-chart-item">
|
|
<div class="statistics-chart-item">
|
|
<div class="chart-box">
|
|
<div class="chart-box">
|
|
<div class="chart-title">
|
|
<div class="chart-title">
|
|
- 近24小时湿度
|
|
|
|
|
|
+ 湿度
|
|
</div>
|
|
</div>
|
|
<div ref="chart2" class="chart-dom"></div>
|
|
<div ref="chart2" class="chart-dom"></div>
|
|
</div>
|
|
</div>
|
|
@@ -215,7 +107,7 @@
|
|
<div class="statistics-chart-item">
|
|
<div class="statistics-chart-item">
|
|
<div class="chart-box">
|
|
<div class="chart-box">
|
|
<div class="chart-title">
|
|
<div class="chart-title">
|
|
- 近24小时CO2
|
|
|
|
|
|
+ CO2
|
|
</div>
|
|
</div>
|
|
<div ref="chart3" class="chart-dom"></div>
|
|
<div ref="chart3" class="chart-dom"></div>
|
|
</div>
|
|
</div>
|
|
@@ -223,7 +115,7 @@
|
|
<div class="statistics-chart-item">
|
|
<div class="statistics-chart-item">
|
|
<div class="chart-box">
|
|
<div class="chart-box">
|
|
<div class="chart-title">
|
|
<div class="chart-title">
|
|
- 近24小时甲醛
|
|
|
|
|
|
+ 甲醛
|
|
</div>
|
|
</div>
|
|
<div ref="chart4" class="chart-dom"></div>
|
|
<div ref="chart4" class="chart-dom"></div>
|
|
</div>
|
|
</div>
|
|
@@ -231,7 +123,7 @@
|
|
<div class="statistics-chart-item">
|
|
<div class="statistics-chart-item">
|
|
<div class="chart-box">
|
|
<div class="chart-box">
|
|
<div class="chart-title">
|
|
<div class="chart-title">
|
|
- 近24小时TVOC
|
|
|
|
|
|
+ TVOC
|
|
</div>
|
|
</div>
|
|
<div ref="chart5" class="chart-dom"></div>
|
|
<div ref="chart5" class="chart-dom"></div>
|
|
</div>
|
|
</div>
|
|
@@ -239,7 +131,7 @@
|
|
<div class="statistics-chart-item">
|
|
<div class="statistics-chart-item">
|
|
<div class="chart-box">
|
|
<div class="chart-box">
|
|
<div class="chart-title">
|
|
<div class="chart-title">
|
|
- 近24小时PM2.5
|
|
|
|
|
|
+ PM2.5
|
|
</div>
|
|
</div>
|
|
<div ref="chart6" class="chart-dom"></div>
|
|
<div ref="chart6" class="chart-dom"></div>
|
|
</div>
|
|
</div>
|
|
@@ -253,31 +145,128 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import testAlarm from '@/components/work/common/testAlarm'
|
|
import testAlarm from '@/components/work/common/testAlarm'
|
|
- import selectSpace from '@/components/work/common/selectSpace'
|
|
|
|
|
|
+ import projectItemTree from '@/components/common/projectItemTree'
|
|
import progressBar from '@/components/common/progressBar'
|
|
import progressBar from '@/components/common/progressBar'
|
|
import model from '@/components/work/common/model'
|
|
import model from '@/components/work/common/model'
|
|
|
|
+ import {
|
|
|
|
+ getAirList
|
|
|
|
+ } from '@/httpApi/test'
|
|
export default {
|
|
export default {
|
|
data() {
|
|
data() {
|
|
- return {}
|
|
|
|
|
|
+ return {
|
|
|
|
+ list: [],
|
|
|
|
+ qualified: {
|
|
|
|
+ temperature: [0, 30],
|
|
|
|
+ humidity: [40, 100],
|
|
|
|
+ co2: [0, 1500],
|
|
|
|
+ pm25: [0, 35],
|
|
|
|
+ pm10: [0, 100],
|
|
|
|
+ tVoc: [0, 0.6]
|
|
|
|
+ },
|
|
|
|
+ qualifiedCount: {
|
|
|
|
+ temperature: 0,
|
|
|
|
+ humidity: 0,
|
|
|
|
+ co2: 0,
|
|
|
|
+ pm25: 0,
|
|
|
|
+ pm10: 0,
|
|
|
|
+ tVoc: 0
|
|
|
|
+ }
|
|
|
|
+ }
|
|
},
|
|
},
|
|
created() {
|
|
created() {
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
- this.chart(this.$refs.chart1, [1, 2, 2, 3, 2, 3], '#DE4749');
|
|
|
|
- this.chart(this.$refs.chart2, [1, 2, 2, 3, 2, 3], '#00D5FF');
|
|
|
|
- this.chart(this.$refs.chart3, [1, 2, 2, 3, 2, 3], '#A4B0D0');
|
|
|
|
- this.chart(this.$refs.chart4, [1, 2, 2, 3, 2, 3], '#8441C2');
|
|
|
|
- this.chart(this.$refs.chart5, [1, 2, 2, 3, 2, 3], '#FFC073');
|
|
|
|
- this.chart(this.$refs.chart6, [1, 2, 2, 3, 2, 3], '#49B788');
|
|
|
|
|
|
+ this.init();
|
|
})
|
|
})
|
|
},
|
|
},
|
|
components: {
|
|
components: {
|
|
testAlarm,
|
|
testAlarm,
|
|
- selectSpace,
|
|
|
|
|
|
+ projectItemTree,
|
|
progressBar,
|
|
progressBar,
|
|
model
|
|
model
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- chart(elem, data, color) {
|
|
|
|
|
|
+ init(option) {
|
|
|
|
+ let postData = {
|
|
|
|
+ type: this.type,
|
|
|
|
+ projectId: this.$store.getters.project.id
|
|
|
|
+ }
|
|
|
|
+ if (option) postData = Object.assign(postData, option);
|
|
|
|
+ getAirList(postData).then(res => {
|
|
|
|
+ if (res.state) {
|
|
|
|
+ this.list = res.data.dataList;
|
|
|
|
+ this.qualifiedFunc();
|
|
|
|
+ this.testChart();
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ qualifiedFunc() {
|
|
|
|
+ let qualifiedCount = {
|
|
|
|
+ temperature: 0,
|
|
|
|
+ humidity: 0,
|
|
|
|
+ co2: 0,
|
|
|
|
+ pm25: 0,
|
|
|
|
+ pm10: 0,
|
|
|
|
+ tVoc: 0
|
|
|
|
+ }
|
|
|
|
+ for (let i = 0; i < this.list.length; i++) {
|
|
|
|
+ for (let key in qualifiedCount) {
|
|
|
|
+ if (this.testQualifiedFunc(key, this.list[i][key])) qualifiedCount[key]++
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ this.qualifiedCount = qualifiedCount;
|
|
|
|
+ },
|
|
|
|
+ returnQualified(type) {
|
|
|
|
+ if (this.list.length === 0) return 0;
|
|
|
|
+ return Math.round((this.qualifiedCount[type] / this.list.length) * 100) / 100
|
|
|
|
+ },
|
|
|
|
+ testQualifiedFunc(type, value) {
|
|
|
|
+ return value > this.qualified[type][0] && value < this.qualified[type][1]
|
|
|
|
+ },
|
|
|
|
+ testChart() {
|
|
|
|
+ let nowList = this.list;
|
|
|
|
+ let qualifiedCount = [{
|
|
|
|
+ id: 1,
|
|
|
|
+ name: 'temperature',
|
|
|
|
+ color: '#DE4749'
|
|
|
|
+ }, {
|
|
|
|
+ id: 2,
|
|
|
|
+ name: 'humidity',
|
|
|
|
+ color: '#00D5FF'
|
|
|
|
+ }, {
|
|
|
|
+ id: 3,
|
|
|
|
+ name: 'co2',
|
|
|
|
+ color: '#A4B0D0'
|
|
|
|
+ }, {
|
|
|
|
+ id: 4,
|
|
|
|
+ name: 'pm25',
|
|
|
|
+ color: '#8441C2'
|
|
|
|
+ }, {
|
|
|
|
+ id: 5,
|
|
|
|
+ name: 'pm10',
|
|
|
|
+ color: '#FFC073'
|
|
|
|
+ }, {
|
|
|
|
+ id: 6,
|
|
|
|
+ name: 'tVoc',
|
|
|
|
+ color: '#49B788'
|
|
|
|
+ }];
|
|
|
|
+ for (let i = 0; i < qualifiedCount.length; i++) {
|
|
|
|
+ let x = [],
|
|
|
|
+ data = [];
|
|
|
|
+ for (let j = 0; j < nowList.length; j++) {
|
|
|
|
+ x.push(nowList[j].name)
|
|
|
|
+ data.push(nowList[j][qualifiedCount[i].name])
|
|
|
|
+ }
|
|
|
|
+ this.chart(this.$refs['chart' + qualifiedCount[i].id], data, qualifiedCount[i].color, x);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ treeclick(item) {
|
|
|
|
+ let obj = item.id ? {
|
|
|
|
+ projectItemTargetId: item.id
|
|
|
|
+ } : {};
|
|
|
|
+ if (this.$refs.testAlarm) this.$refs.testAlarm.init(obj);
|
|
|
|
+ this.init(obj);
|
|
|
|
+ },
|
|
|
|
+ chart(elem, data, color, x) {
|
|
let chart = echarts.init(elem);
|
|
let chart = echarts.init(elem);
|
|
let option = {
|
|
let option = {
|
|
tooltip: {
|
|
tooltip: {
|
|
@@ -306,7 +295,7 @@
|
|
color: [color],
|
|
color: [color],
|
|
xAxis: {
|
|
xAxis: {
|
|
type: 'category',
|
|
type: 'category',
|
|
- data: ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00'],
|
|
|
|
|
|
+ data: x,
|
|
axisLabel: {
|
|
axisLabel: {
|
|
margin: 4,
|
|
margin: 4,
|
|
color: '#D0DEEE',
|
|
color: '#D0DEEE',
|