Browse Source

1.中央热水设备监控页面修改数值

2.修改能源分析页面折线图
3.对接热水热泵运行记录
dev
selia-zx 6 days ago
parent
commit
bb06b39163
  1. 4
      .env.development
  2. BIN
      src/assets/flowimg/closepum.png
  3. BIN
      src/assets/flowimg/standbyhotpump.png
  4. BIN
      src/assets/flowimg/starthotpum.png
  5. BIN
      src/assets/flowimg/waterBox.png
  6. 1
      src/assets/icons/svg/hotPumpLog.svg
  7. 20
      src/assets/styles/element-ui.scss
  8. 168
      src/views/components/monitor/hotWaterMonitor.vue
  9. 1132
      src/views/hotWater/energyAnalysis/components/energyReport copy.vue
  10. 935
      src/views/hotWater/energyAnalysis/components/energyReport.vue
  11. 806
      src/views/hotWater/hotPumpLog/index.vue

4
.env.development

@ -7,9 +7,9 @@ ENV = 'development'
# 开发环境 # 开发环境
# VUE_APP_BASE_API = '/dev-api' # VUE_APP_BASE_API = '/dev-api'
# 后台 # 后台
# VUE_APP_BASE_API = 'http://192.168.1.222:8080' VUE_APP_BASE_API = 'http://192.168.1.222:8080'
# 海湾酒店-云端 # 海湾酒店-云端
VUE_APP_BASE_API = 'http://106.55.173.225:8090' # VUE_APP_BASE_API = 'http://106.55.173.225:8090'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

BIN
src/assets/flowimg/closepum.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

BIN
src/assets/flowimg/standbyhotpump.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
src/assets/flowimg/starthotpum.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
src/assets/flowimg/waterBox.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

After

Width:  |  Height:  |  Size: 202 KiB

1
src/assets/icons/svg/hotPumpLog.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1761181457603" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5548" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M670.208 223.053H193.183v0.017c-24.374 0.412-44.02 20.636-44.02 45.549 0 24.914 19.64 45.139 44.02 45.55v0.016h477.025c24.719 0 44.765-20.402 44.765-45.566 0-25.163-20.046-45.566-44.765-45.566zM395.732 439.798h-202.55v0.023c-24.374 0.406-44.02 20.635-44.02 45.543 0 24.914 19.64 45.143 44.02 45.55v0.015h202.556c24.719 0 44.76-20.395 44.76-45.565 0.001-25.164-20.04-45.566-44.766-45.566zM276.261 658.512h-83.083v0.022c-24.374 0.406-44.014 20.636-44.014 45.544 0 24.913 19.64 45.144 44.014 45.55v0.017h83.083c24.719 0 44.759-20.397 44.759-45.566 0-25.165-20.041-45.567-44.759-45.567z m0 0" p-id="5549"></path><path d="M715.201 1.954H148.93C67.141 1.954 0.84 68.257 0.84 150.043v724.501c0 81.786 66.301 148.09 148.09 148.09h241.713v-0.084c0.695 0.033 1.386 0.049 2.081 0.049 25.164 0 45.566-20.396 45.566-45.566 0-25.163-20.402-45.565-45.566-45.565-0.695 0-1.392 0.023-2.081 0.056v-0.021H148.93c-31.455 0-56.958-25.503-56.958-56.957V150.043c0-31.461 25.503-56.958 56.958-56.958h566.271c31.46 0 56.957 25.497 56.957 56.958V320.46c0 25.164 20.402 45.566 45.566 45.566 25.169 0 45.566-20.402 45.566-45.566V150.043c0.001-81.786-66.302-148.089-148.089-148.089z m0 0" p-id="5550"></path><path d="M676.148 840.226c-7.364 0-14.695-2.041-21.226-6.091-11.942-7.409-19.073-20.219-19.073-34.271V652.755c0-14.056 7.131-26.865 19.073-34.269 11.942-7.41 26.593-8.099 39.181-1.853l128.683 73.556c13.817 6.856 22.405 20.697 22.405 36.121 0 15.417-8.588 29.263-22.405 36.12l-128.683 73.557c-5.707 2.831-11.841 4.239-17.955 4.239z m0 0" p-id="5551"></path><path d="M726.854 430.13c-163.575 0-296.181 132.605-296.181 296.18s132.605 296.18 296.181 296.18c163.574 0 296.179-132.604 296.179-296.18S890.429 430.13 726.854 430.13z m0 501.227c-113.248 0-205.048-91.805-205.048-205.047s91.8-205.047 205.048-205.047c113.241 0 205.047 91.805 205.047 205.047s-91.805 205.047-205.047 205.047z m0 0" p-id="5552"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

20
src/assets/styles/element-ui.scss

@ -1439,3 +1439,23 @@
align-items: center; align-items: center;
flex-wrap: nowrap; flex-wrap: nowrap;
} }
.el-table--group,
.el-table--border {
border: 1px solid #00264f !important;
}
.el-table--border .el-table__cell {
border-right: 1px solid #00264f !important;
}
.el-table--border th.el-table__cell {
border-bottom: 1px solid #00264f !important;
}
.el-table__expand-icon{
color: #fff !important;
}
.el-tag {
font-weight: bold !important;
}
.el-tag.el-tag--success{
font-weight: bold !important;
color: #03a249 !important;
}

168
src/views/components/monitor/hotWaterMonitor.vue

@ -48,8 +48,8 @@
<div class="flow-text text3">无线网关</div> <div class="flow-text text3">无线网关</div>
<div class="flow-text text4">回水阀</div> <div class="flow-text text4">回水阀</div>
<div class="flow-text text5">房间</div> <div class="flow-text text5">房间</div>
<div class="flow-text text20">水箱1(总容量:2.5)</div> <div class="flow-text text20">水箱1(总容量:30)</div>
<div class="flow-text text21">水箱2(总容量:2.5)</div> <div class="flow-text text21">水箱2(总容量:30)</div>
<!-- 供水定位 --> <!-- 供水定位 -->
<img class="supply" v-if=" <img class="supply" v-if="
this.upWaterState1 === '1' || this.upWaterState1 === '1' ||
@ -190,12 +190,14 @@
<div class="progressContainer1" v-if="getWaterPercentage(progress2, 2.5) > 50"> <div class="progressContainer1" v-if="getWaterPercentage(progress2, 2.5) > 50">
<div class="progress" :style="{ height: getWaterPercentage(progress2, 2.5) + '%' }"> <div class="progress" :style="{ height: getWaterPercentage(progress2, 2.5) + '%' }">
</div> </div>
<b class="propo">实际容量:{{ progress2 }}</b> <b>实际高度:{{ progress2 }}</b>
<div class="propo">实际容量:{{ getActualCapacity(progress2) }}</div>
</div> </div>
<div class="progressContainer2" v-else> <div class="progressContainer2" v-else>
<div class="progress" :style="{ height: getWaterPercentage(progress2, 2.5) + '%' }"> <div class="progress" :style="{ height: getWaterPercentage(progress2, 2.5) + '%' }">
</div> </div>
<b class="propo">实际容量:{{ progress2 }}</b> <b>实际高度:{{ progress2 }}</b>
<div class="propo">实际容量:{{ getActualCapacity(progress2) }}</div>
</div> </div>
<!-- 保温水箱1定位 --> <!-- 保温水箱1定位 -->
@ -211,12 +213,14 @@
<div class="progressContainer3" v-if="getWaterPercentage(progress1, 2.5) > 50"> <div class="progressContainer3" v-if="getWaterPercentage(progress1, 2.5) > 50">
<div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }"> <div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }">
</div> </div>
<b class="propo">实际容量:{{ progress1 }}</b> <b>实际高度:{{ progress1 }}</b>
<div class="propo">实际容量:{{ getActualCapacity(progress1) }}</div>
</div> </div>
<div class="progressContainer4" v-else> <div class="progressContainer4" v-else>
<div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }"> <div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }">
</div> </div>
<b class="propo">实际容量:{{ progress1 }}</b> <b class="propo">实际高度:{{ progress1 }}</b>
<div class="propo">实际容量:{{ getActualCapacity(progress1) }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -232,7 +236,7 @@
<div class="flow-text text17">低区回水泵1</div> <div class="flow-text text17">低区回水泵1</div>
<div class="flow-text text18">低区回水泵2</div> <div class="flow-text text18">低区回水泵2</div>
<div class="flow-text text19">回水管</div> <div class="flow-text text19">回水管</div>
<div class="flow-text text22">水箱(总容量:2.5)</div> <div class="flow-text text22">水箱(总容量:30)</div>
<!-- 左上 --> <!-- 左上 -->
<img class="upperLeft" src="../../../assets/flowimg/upperLeft.png" alt="" /> <img class="upperLeft" src="../../../assets/flowimg/upperLeft.png" alt="" />
<!-- 低区回水 --> <!-- 低区回水 -->
@ -310,12 +314,14 @@
<div class="progressContainer5" v-if="getWaterPercentage(progress1, 2.5) > 50"> <div class="progressContainer5" v-if="getWaterPercentage(progress1, 2.5) > 50">
<div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }"> <div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }">
</div> </div>
<b class="propo">实际容量:{{ progress1 }}</b> <b>实际高度:{{ progress1 }}</b>
<div class="propo">实际容量:{{ getActualCapacity(progress1) }}</div>
</div> </div>
<div class="progressContainer6" v-else> <div class="progressContainer6" v-else>
<div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }"> <div class="progress" :style="{ height: getWaterPercentage(progress1, 2.5) + '%' }">
</div> </div>
<b class="propo">实际容量:{{ progress1 }}</b> <b>实际容量:{{ progress1 }}</b>
<div class="propo">实际高度:{{ getActualCapacity(progress1) }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -379,14 +385,15 @@
</el-table-column> </el-table-column>
<el-table-column prop="runState" label="热泵状态"> <el-table-column prop="runState" label="热泵状态">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span v-if="row.runState === '0'">不运行 </span> <el-tag v-if="row.runState === '0'" type="info">关机</el-tag>
<span v-if="row.runState === '1'">运行 </span> <el-tag v-if="row.runState === '4'" type="success">运行</el-tag>
<el-tag v-if="row.runState === '9'">待机</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="isFault" label="是否故障"> <el-table-column prop="isFault" label="是否故障">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<span v-if="row.isFault === '0'">无故障</span> <el-tag v-if="row.isFault === '0'" type="success">无故障</el-tag>
<span v-if="row.isFault === '1'">有故障</span> <el-tag v-if="row.isFault === '1'" type="danger">有故障</el-tag>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -612,7 +619,7 @@ export default {
data() { data() {
return { return {
loading: false, loading: false,
dialogLoading:false, dialogLoading: false,
currentDate: new Date(), currentDate: new Date(),
nowTimer: null, nowTimer: null,
timer: null, // ID timer: null, // ID
@ -693,14 +700,22 @@ export default {
methods: { methods: {
getImageSrc(item) { getImageSrc(item) {
// console.log("item", item); // console.log("item", item);
if (Number(item.runState) === 1 && Number(item.isFault) !== 1) { //
// 使 require if (Number(item.isFault) === 1) {
return require("@/assets/flowimg/starthotpum.png");
} else if (Number(item.isFault) === 1) {
return require("@/assets/flowimg/badhotpum.png"); return require("@/assets/flowimg/badhotpum.png");
} else { }
//
if (Number(item.runState) === 0) {
return require("@/assets/flowimg/closehotpum.png"); return require("@/assets/flowimg/closehotpum.png");
} else if (Number(item.runState) === 4) {
return require("@/assets/flowimg/starthotpum.png");
} else if (Number(item.runState) === 9) {
return require("@/assets/flowimg/standbyhotpump.png");
} }
//
return require("@/assets/flowimg/closehotpum.png");
}, },
getSysBuild() { getSysBuild() {
floorTree().then((res) => { floorTree().then((res) => {
@ -1007,7 +1022,7 @@ export default {
res.rows.forEach((item) => { res.rows.forEach((item) => {
let deviceItem = { let deviceItem = {
...item, ...item,
runState: Number(item.runState) == 0 ? "0" : "1", // // runState: Number(item.runState) == 0 ? "0" : "1", //
upWaterState: Number(item.upWaterState) == 0 ? "0" : "1", // upWaterState: Number(item.upWaterState) == 0 ? "0" : "1", //
isFault: Number(item.isFault) == 0 ? "0" : "1", // isFault: Number(item.isFault) == 0 ? "0" : "1", //
}; };
@ -1018,6 +1033,7 @@ export default {
this.progress2 = 0; this.progress2 = 0;
this.temdata1 = 0; this.temdata1 = 0;
this.temdata2 = 0; this.temdata2 = 0;
this.webstate = 0;
if (this.tableData.length > 0 && this.isShowHotWater) { if (this.tableData.length > 0 && this.isShowHotWater) {
// //
@ -1040,8 +1056,14 @@ export default {
this.progress1 = this.tableData[0].waterLevel1; this.progress1 = this.tableData[0].waterLevel1;
this.temdata1 = this.tableData[0].tankWaterTemp; this.temdata1 = this.tableData[0].tankWaterTemp;
} }
this.webstate = Number(this.tableData[0].gatewayStatus);
} else { } else {
this.tableData = []; this.tableData = [];
this.progress1 = 0;
this.progress2 = 0;
this.temdata1 = 0;
this.temdata2 = 0;
this.webstate = 0;
} }
}); });
}, },
@ -1051,7 +1073,7 @@ export default {
}, },
// //
isHotPumpRunning() { isHotPumpRunning() {
return this.tableData.some(item => Number(item.runState) !== 0); return this.tableData.some(item => Number(item.runState) == 4);
}, },
// //
getCyclePumpImg(stateKey) { getCyclePumpImg(stateKey) {
@ -1091,7 +1113,7 @@ export default {
console.log("点击循环泵", pumpName); console.log("点击循环泵", pumpName);
this.currentPumpType = "cyclepump"; this.currentPumpType = "cyclepump";
this.hotPumpTitle = pumpName; this.hotPumpTitle = pumpName;
this.loadOperateData("贵宾楼循环泵", pumpName); this.loadOperateData("循环泵", pumpName);
}, },
// //
loadOperateData(groupName, itemName) { loadOperateData(groupName, itemName) {
@ -1161,6 +1183,11 @@ export default {
// 100100 // 100100
return Number(percentage) > 100 ? 100 : Number(percentage); return Number(percentage) > 100 ? 100 : Number(percentage);
}, },
//
getActualCapacity(actualHeight, totalHeight = 2.5, totalCapacity = 30) {
let actualCapacity = (actualHeight / totalHeight * totalCapacity).toFixed(2);
return Number(actualCapacity);
},
// //
handleHotPump(item) { handleHotPump(item) {
this.$confirm( this.$confirm(
@ -1715,6 +1742,7 @@ export default {
left: 2.2rem; left: 2.2rem;
z-index: 1; z-index: 1;
} }
.text22 { .text22 {
position: absolute; position: absolute;
top: 3.2rem; top: 3.2rem;
@ -2087,9 +2115,23 @@ export default {
color: #d22727; color: #d22727;
position: absolute; position: absolute;
top: -0.3rem; top: -0.3rem;
left:-0.5rem; left: -0.5rem;
z-index: 3;
white-space: nowrap;
}
.propo {
font-family: AdobeHeitiStd-Regular;
font-size: 0.17rem;
line-height: 0.2rem;
letter-spacing: 0rem;
color: #d22727;
position: absolute;
top: -0.6rem;
left: -0.5rem;
z-index: 3; z-index: 3;
white-space: nowrap; white-space: nowrap;
font-weight: bold;
} }
} }
@ -2120,10 +2162,24 @@ export default {
color: #d22727; color: #d22727;
position: absolute; position: absolute;
top: -0.3rem; top: -0.3rem;
left:-0.5rem; left: -0.5rem;
z-index: 3; z-index: 3;
white-space: nowrap; white-space: nowrap;
} }
.propo {
font-family: AdobeHeitiStd-Regular;
font-size: 0.17rem;
line-height: 0.2rem;
letter-spacing: 0rem;
color: #d22727;
position: absolute;
top: -0.6rem;
left: -0.5rem;
z-index: 3;
white-space: nowrap;
font-weight: bold;
}
} }
.progressContainer3 { .progressContainer3 {
@ -2153,10 +2209,24 @@ export default {
color: #d22727; color: #d22727;
position: absolute; position: absolute;
top: -0.3rem; top: -0.3rem;
left:-0.4rem; left: -0.4rem;
z-index: 3; z-index: 3;
white-space: nowrap; white-space: nowrap;
} }
.propo {
font-family: AdobeHeitiStd-Regular;
font-size: 0.17rem;
line-height: 0.2rem;
letter-spacing: 0rem;
color: #d22727;
position: absolute;
top: -0.6rem;
left: -0.4rem;
z-index: 3;
white-space: nowrap;
font-weight: bold;
}
} }
.progressContainer4 { .progressContainer4 {
@ -2186,10 +2256,24 @@ export default {
color: #d22727; color: #d22727;
position: absolute; position: absolute;
top: -0.3rem; top: -0.3rem;
left:-0.4rem; left: -0.4rem;
z-index: 3; z-index: 3;
white-space: nowrap; white-space: nowrap;
} }
.propo {
font-family: AdobeHeitiStd-Regular;
font-size: 0.17rem;
line-height: 0.2rem;
letter-spacing: 0rem;
color: #d22727;
position: absolute;
top: -0.6rem;
left: -0.4rem;
z-index: 3;
white-space: nowrap;
font-weight: bold;
}
} }
.progressContainer5 { .progressContainer5 {
@ -2219,10 +2303,24 @@ export default {
color: #d22727; color: #d22727;
position: absolute; position: absolute;
top: -0.3rem; top: -0.3rem;
left:-0.4rem; left: -0.4rem;
z-index: 3; z-index: 3;
white-space: nowrap; white-space: nowrap;
} }
.propo {
font-family: AdobeHeitiStd-Regular;
font-size: 0.17rem;
line-height: 0.2rem;
letter-spacing: 0rem;
color: #d22727;
position: absolute;
top: -0.6rem;
left: -0.4rem;
z-index: 3;
white-space: nowrap;
font-weight: bold;
}
} }
.progressContainer6 { .progressContainer6 {
@ -2252,9 +2350,23 @@ export default {
color: #d22727; color: #d22727;
position: absolute; position: absolute;
top: -0.3rem; top: -0.3rem;
left:-0.4rem; left: -0.4rem;
z-index: 3;
white-space: nowrap;
}
.propo {
font-family: AdobeHeitiStd-Regular;
font-size: 0.17rem;
line-height: 0.2rem;
letter-spacing: 0rem;
color: #d22727;
position: absolute;
top: -0.6rem;
left: -0.4rem;
z-index: 3; z-index: 3;
white-space: nowrap; white-space: nowrap;
font-weight: bold;
} }
} }

1132
src/views/hotWater/energyAnalysis/components/energyReport copy.vue

File diff suppressed because it is too large Load Diff

935
src/views/hotWater/energyAnalysis/components/energyReport.vue

File diff suppressed because it is too large Load Diff

806
src/views/hotWater/hotPumpLog/index.vue

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save