Browse Source

1.对接生活热水供水监控系统-项目总览-项目概况、当月数据统计

2.对接能源分析-能耗报表、温度变化表、水位变化表
3.对接用能查询-能耗、水表读数、电表读数
meizhou
selia-zx 6 days ago
parent
commit
7e78020d6e
  1. 4
      .env.development
  2. 34
      src/api/hotWater/energyAnalysis.js
  3. 10
      src/api/hotWater/energyQuery.js
  4. 18
      src/api/hotWater/overview.js
  5. 1
      src/assets/icons/svg/dataAnalysis.svg
  6. 1
      src/assets/icons/svg/energyQuery.svg
  7. 467
      src/views/hotWater/energyAnalysis/components/energyReport.vue
  8. 484
      src/views/hotWater/energyAnalysis/components/temReport.vue
  9. 484
      src/views/hotWater/energyAnalysis/components/waterReport.vue
  10. 124
      src/views/hotWater/energyQuery/components/electReading.vue
  11. 101
      src/views/hotWater/energyQuery/components/energy.vue
  12. 122
      src/views/hotWater/energyQuery/components/waterReading.vue
  13. 467
      src/views/hotWater/energyQuery/index.vue
  14. 470
      src/views/hotWater/overview/index.vue
  15. 1
      src/views/temSys/temMonitor/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:8091' # VUE_APP_BASE_API = 'http://106.55.173.225:8091'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

34
src/api/hotWater/energyAnalysis.js

@ -0,0 +1,34 @@
import request from "@/utils/request";
// 楼层
export function hotBuildList(query) {
return request({
url: "/space/building/hot_list",
method: "get",
params: query,
});
}
// 楼栋能耗环比
export function hotEnergySum(query) {
return request({
url: "/hot_energy/energySum",
method: "get",
params: query,
});
}
// 温度变化表
export function hotWaterTemp(query) {
return request({
url: "/hot_energy/waterTemp",
method: "get",
params: query,
});
}
// 温度变化表
export function hotWaterLevel(query) {
return request({
url: "/hot_energy/waterLevel",
method: "get",
params: query,
});
}

10
src/api/hotWater/energyQuery.js

@ -0,0 +1,10 @@
import request from "@/utils/request";
// 水电表读数
export function queryDeviceDatas(query) {
return request({
url: "/hot_energy/queryDeviceDatas",
method: "get",
params: query,
});
}

18
src/api/hotWater/overview.js

@ -0,0 +1,18 @@
import request from "@/utils/request";
// 设备状态
export function deviceState(query) {
return request({
url: "/device/hotWater/deviceState",
method: "get",
params: query,
});
}
// 楼栋能耗
export function hotEnergyQuery(query) {
return request({
url: "/hot_energy/query",
method: "get",
params: query,
});
}

1
src/assets/icons/svg/dataAnalysis.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="1750837487744" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6669" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M930.133333 900.266667H93.866667a8.533333 8.533333 0 0 1-8.533334-8.533334v-25.6a8.533333 8.533333 0 0 1 8.533334-8.533333h836.266666a8.533333 8.533333 0 0 1 8.533334 8.533333v25.6a8.533333 8.533333 0 0 1-8.533334 8.533334zM746.666667 661.333333h-170.666667a8.533333 8.533333 0 0 1-8.533333-8.533333v-25.6a8.533333 8.533333 0 0 1 8.533333-8.533333h170.666667a8.533333 8.533333 0 0 1 8.533333 8.533333v25.6a8.533333 8.533333 0 0 1-8.533333 8.533333z" fill="" p-id="6670"></path><path d="M904.533333 117.333333H119.466667a8.533333 8.533333 0 0 0-8.533334 8.533334v665.6a8.533333 8.533333 0 0 0 8.533334 8.533333h785.066666a8.533333 8.533333 0 0 0 8.533334-8.533333v-665.6a8.533333 8.533333 0 0 0-8.533334-8.533334z m-563.2 149.333334c51.84 0 93.866667 42.026667 93.866667 93.866666s-42.026667 93.866667-93.866667 93.866667-93.866667-42.026667-93.866666-93.866667 42.026667-93.866667 93.866666-93.866666zM247.466667 512a8.533333 8.533333 0 0 1 8.533333-8.533333h170.666667a8.533333 8.533333 0 0 1 8.533333 8.533333v25.6a8.533333 8.533333 0 0 1-8.533333 8.533333H256a8.533333 8.533333 0 0 1-8.533333-8.533333v-25.6z m520.682666-82.709333l-0.149333 0.149333v0.247467l-16.0256 16.0256h-0.247467l-68.053333 68.053333a8.533333 8.533333 0 0 1-12.066133 0l-18.103467-18.103467a8.533333 8.533333 0 0 1 0-12.066133l37.883733-37.883733h-54.135466l-212.241067 212.241066a8.503467 8.503467 0 0 1-6.8736 3.515734H256a8.533333 8.533333 0 0 1-8.533333-8.533334v-25.6a8.533333 8.533333 0 0 1 8.533333-8.533333h147.818667l212.245333-212.245333a8.503467 8.503467 0 0 1 6.8736-3.515734h70.8864l-40.315733-40.315733a8.533333 8.533333 0 0 1 0-12.066133l18.103466-18.103467a8.533333 8.533333 0 0 1 12.066134 0l84.475733 84.475733c1.6896 1.6896 2.513067 3.912533 2.491733 6.126934a8.533333 8.533333 0 0 1-2.496 6.1312z" fill="" p-id="6671"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

1
src/assets/icons/svg/energyQuery.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="1750837471498" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4744" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M896 64H128c-35.328 0-64 28.672-64 64v768c0 35.328 28.672 64 64 64h592a32 32 0 1 0 0-64H128V128h768v592a32 32 0 1 0 64 0V128c0-35.328-28.672-64-64-64z m-104.256 682.496A206.72 206.72 0 0 0 832 624 208.256 208.256 0 0 0 624 416 208.256 208.256 0 0 0 416 624 208.256 208.256 0 0 0 624 832c44.096 0 87.04-14.08 122.496-40.256l110.848 110.848a31.936 31.936 0 0 0 54.656-22.592 32 32 0 0 0-9.344-22.656l-110.912-110.848zM480 624c0-79.36 64.64-144 144-144S768 544.64 768 624 703.36 768 624 768 480 703.36 480 624z m320-360a32 32 0 0 0-32-32H256a32 32 0 0 0 0 64h512a32 32 0 0 0 32-32zM256 422.656a32 32 0 0 0 0 64h96a32 32 0 0 0 0-64H256z" fill="" p-id="4745"></path></svg>

After

Width:  |  Height:  |  Size: 1000 B

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

@ -5,13 +5,19 @@
<img class="use-icon" src="../../../../assets/images/use1.png" alt="" /> <img class="use-icon" src="../../../../assets/images/use1.png" alt="" />
<div class="use-text"> <div class="use-text">
<div>用水量()</div> <div>用水量()</div>
<div class="data-text">2</div> <div class="data-text">{{ useWater }}</div>
</div> </div>
<div class="use-text"> <div class="use-text">
<div>与昨日相比</div> <div v-if="dateType === 'day'">与昨日相比</div>
<div class="downText"> <div v-if="dateType === 'month'">与上月相比</div>
<div v-if="dateType === 'year'">与上年相比</div>
<div class="upText" v-if="useWaterRadio > 0">
<i class="el-icon-bottom"></i> <i class="el-icon-bottom"></i>
<span>-10%</span> <span>+{{ useWaterRadio }}</span>
</div>
<div class="downText" v-else>
<i class="el-icon-bottom"></i>
<span>-{{ useWaterRadio }}</span>
</div> </div>
</div> </div>
<img <img
@ -24,13 +30,19 @@
<img class="use-icon" src="../../../../assets/images/use2.png" alt="" /> <img class="use-icon" src="../../../../assets/images/use2.png" alt="" />
<div class="use-text"> <div class="use-text">
<div>用电量()</div> <div>用电量()</div>
<div class="data-text">31.600</div> <div class="data-text">{{ useElect }}</div>
</div> </div>
<div class="use-text"> <div class="use-text">
<div>与昨日相比</div> <div v-if="dateType === 'day'">与昨日相比</div>
<div class="upText"> <div v-if="dateType === 'month'">与上月相比</div>
<i class="el-icon-top"></i> <div v-if="dateType === 'year'">与上年相比</div>
<span>64.41%</span> <div class="upText" v-if="useElectRadio > 0">
<i class="el-icon-bottom"></i>
<span>+{{ useElectRadio }}</span>
</div>
<div class="downText" v-else>
<i class="el-icon-bottom"></i>
<span>-{{ useElectRadio }}</span>
</div> </div>
</div> </div>
<img <img
@ -43,13 +55,19 @@
<img class="use-icon" src="../../../../assets/images/use3.png" alt="" /> <img class="use-icon" src="../../../../assets/images/use3.png" alt="" />
<div class="use-text"> <div class="use-text">
<div>单耗(/)</div> <div>单耗(/)</div>
<div class="data-text">2</div> <div class="data-text">{{ useUnit }}</div>
</div> </div>
<div class="use-text"> <div class="use-text">
<div>与昨日相比</div> <div v-if="dateType === 'day'">与昨日相比</div>
<div class="upText"> <div v-if="dateType === 'month'">与上月相比</div>
<i class="el-icon-top"></i> <div v-if="dateType === 'year'">与上年相比</div>
<span>64.41%</span> <div class="upText" v-if="useUnitRadio > 0">
<i class="el-icon-bottom"></i>
<span>+{{ useUnitRadio }}</span>
</div>
<div class="downText" v-else>
<i class="el-icon-bottom"></i>
<span>-{{ useUnitRadio }}</span>
</div> </div>
</div> </div>
<img <img
@ -70,7 +88,7 @@
<el-option <el-option
v-for="(item, index) in builds" v-for="(item, index) in builds"
:key="index" :key="index"
:label="item.label" :label="item.building_name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
@ -131,7 +149,7 @@
<el-button type="success" @click="findData">查询</el-button> <el-button type="success" @click="findData">查询</el-button>
</div> </div>
<div class="warning-btn"> <div class="warning-btn">
<el-button type="warning" @click="exportData">导出</el-button> <el-button type="warning" @click="goExport">导出</el-button>
</div> </div>
</div> </div>
</div> </div>
@ -147,25 +165,19 @@
</div> </div>
</div> </div>
<div class="charts" ref="chart_ref"></div> <div class="charts" ref="chart_ref"></div>
<el-table <el-table :data="tableData" stripe>
v-loading="loading" <el-table-column label="日期" align="center" prop="curDate" />
:data="postList"
stripe
:cell-style="tableRowStyle"
>
<el-table-column label="日期" align="center" prop="dateAndWeek" />
<el-table-column label="所属楼栋" align="center" prop="maxTemp" />
<el-table-column label="用水量(吨)" align="center" prop="minTemp" />
<el-table-column <el-table-column
label="用电量(度)" label="所属楼栋"
v-if="isBuildNone"
align="center" align="center"
prop="weatherConditions" prop="buildingName"
/>
<el-table-column
label="单耗(度/吨)"
align="center"
prop="windDirection"
/> />
<el-table-column label="用水量(吨)" align="center" prop="useHotWater" />
<el-table-column label="用电量(度)" align="center" prop="electValue" />
<el-table-column label="单耗(度/吨)" align="center" prop="electWater" />
<el-table-column label="楼栋人数" align="center" prop="checkInCount" />
<el-table-column label="人均用水(人/升)" align="center" prop="perWater" />
</el-table> </el-table>
<pagination <pagination
@ -179,13 +191,14 @@
</template> </template>
<script> <script>
import { formatDay } from "@/utils/datetime"; import { formatDay, getDay, getMonth, getYear } from "@/utils/datetime";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import { hotBuildList, hotEnergySum } from "@/api/hotWater/energyAnalysis";
import { spaceTree } from "@/api/region"; import { hotEnergyQuery } from "@/api/hotWater/overview";
import * as echarts from "echarts"; import * as echarts from "echarts";
export default { export default {
data() { data() {
return { return {
isBuildNone: true,
listLoading: false, listLoading: false,
dateType: "day", // dateType: "day", //
dayDate: [], // dayDate: [], //
@ -196,12 +209,11 @@ export default {
dialogVisible: false, dialogVisible: false,
building: "", // building: "", //
builds: [], // builds: [], //
//
loading: true,
// //
total: 0, total: 0,
// //
postList: [], tableData: [],
exportData: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -217,6 +229,12 @@ export default {
brokenData2: [], brokenData2: [],
brokenData3: [], brokenData3: [],
brokenTime: [], brokenTime: [],
useWater: 0,
useWaterRadio: 0,
useElect: 0,
useElectRadio: 0,
useUnit: 0,
useUnitRadio: 0,
}; };
}, },
created() { created() {
@ -225,11 +243,9 @@ export default {
mounted() { mounted() {
this.initializeTimeDate(); this.initializeTimeDate();
this.getBuildList(); this.getBuildList();
this.getList();
this.initChart(); this.initChart();
window.addEventListener("resize", this.screenAdapter); window.addEventListener("resize", this.screenAdapter);
this.screenAdapter(); this.screenAdapter();
this.getChartData();
}, },
destroyed() { destroyed() {
// //
@ -242,32 +258,23 @@ export default {
}, },
/** 查询楼栋 */ /** 查询楼栋 */
getBuildList() { getBuildList() {
spaceTree().then((res) => { let data = {
systemType: "1",
};
hotBuildList(data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
// //
console.log("楼栋返回值", res); console.log("楼栋返回值", res);
let newRes = { ...res }; this.builds = res.rows;
if (newRes.data && newRes.data[0] && newRes.data[0].children) {
newRes.data[0].children = newRes.data[0].children.filter((item) => {
// label ""
return item.label && item.label.includes("热水");
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds); // console.log("", this.builds);
this.building = this.builds[0].id; this.building = res.rows[0].id;
this.getList(); this.getList();
this.getRadioData();
} }
}); });
}, },
// children // children
// 使this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
removeChildrenAfterLevel(obj, currentLevel, targetLevel) { removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) { if (currentLevel >= targetLevel) {
// children // children
@ -287,21 +294,41 @@ export default {
}, },
// //
initializeTimeDate() { initializeTimeDate() {
const now = new Date(); let date = new Date(); //
// //,
const start = new Date(now.getFullYear(), now.getMonth(), 1); let year = date.getFullYear().toString();
// //01
const end = new Date(now.getFullYear(), now.getMonth(), now.getDate()); //使10'0'
this.dayDate = [formatDay(start), formatDay(end)]; // let month =
date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1).toString()
: (date.getMonth() + 1).toString();
//10'0'
let day =
date.getDate() < 10
? "0" + date.getDate().toString()
: date.getDate().toString();
//
let start1 = year + "-" + month + "-01"; //
let end1 = year + "-" + month + "-" + day; //
let start2 = year + "-" + "01"; //
let end2 = getMonth(0); //
let start3 = getYear(0) - 1; //
let end3 = getYear(0); //
this.dayDate = [start1, end1]; //
this.monthDate = [start2, end2];
this.startYear = start3.toString();
this.endYear = end3.toString();
}, },
// //
updateDateType() { updateDateType() {
// this.dateType = this.radio;
console.log(this.dateType); console.log(this.dateType);
(this.dayDate = []), // // (this.dayDate = []), //
(this.monthDate = []), // // (this.monthDate = []), //
(this.startYear = ""), // // (this.startYear = ""), //
(this.endYear = ""); // // (this.endYear = ""); //
this.getList();
this.getRadioData();
}, },
// //
dateChange() { dateChange() {
@ -374,6 +401,7 @@ export default {
default: default:
break; break;
} }
this.getRadioData();
}, },
// //
showMessage(message, type) { showMessage(message, type) {
@ -382,110 +410,115 @@ export default {
type: type, type: type,
}); });
}, },
// //
getList() { getList() {
let timeType = null;
if (this.dateType == "day") { if (this.dateType == "day") {
timeType = 1;
this.queryParams.startTime = this.queryParams.startTime =
this.dayDate.length > 0 ? this.dayDate[0] : ""; this.dayDate.length > 0 ? this.dayDate[0] : "";
this.queryParams.endTime = this.queryParams.endTime =
this.dayDate.length > 0 ? this.dayDate[1] : ""; this.dayDate.length > 0 ? this.dayDate[1] : "";
} else if (this.dateType == "month") { } else if (this.dateType == "month") {
timeType = 2;
this.queryParams.startTime = this.queryParams.startTime =
this.monthDate.length > 0 ? this.monthDate[0] : ""; this.monthDate.length > 0 ? this.monthDate[0] : "";
this.queryParams.endTime = this.queryParams.endTime =
this.monthDate.length > 0 ? this.monthDate[1] : ""; this.monthDate.length > 0 ? this.monthDate[1] : "";
} else if (this.dateType == "year") { } else if (this.dateType == "year") {
(this.queryParams.startTime = this.startYear), timeType = 3;
(this.queryParams.endTime = this.endYear); this.queryParams.startTime = this.startYear;
this.queryParams.endTime = this.endYear;
} }
let data = { let data = {
timeType: this.dateType, type: timeType,
startTime: this.queryParams.startTime, page: this.queryParams.pageNum,
endTime: this.queryParams.endTime, limit: this.queryParams.pageSize,
building: this.building, startDate: this.queryParams.startTime,
endDate: this.queryParams.endTime,
buildingId: this.building,
}; };
console.log("查询数据参数", data); console.log("查询表格数据参数", data);
this.listLoading = true; this.listLoading = true;
hotEnergyQuery(data).then((res) => {
console.log("表格返回的数据", res);
if (res.code == 200 && res.rows.length > 0) {
this.tableData = res.rows;
this.total = res.total;
if (this.building == "所有") {
this.isBuildNone = false;
} else {
this.isBuildNone = true;
}
} else {
this.tableData = [];
this.total = 0;
}
this.getChartData();
});
// //
// Just to simulate the time of the request // Just to simulate the time of the request
setTimeout(() => { setTimeout(() => {
this.listLoading = false; this.listLoading = false;
}, 1.0 * 1000); }, 1.0 * 1000);
}, },
// //线
getChartData() { getChartData() {
this.queryParams.pageNum = 0;
console.log("图表参数", this.queryParams); console.log("图表参数", this.queryParams);
this.brokenData1 = [30, 40, 29]; let timeType = null;
this.brokenData2 = [10, 23, 12]; if (this.dateType == "day") {
this.brokenData3 = [3, 4, 2]; timeType = 1;
this.brokenTime = ["3月", "4月", "5月"]; this.queryParams.startTime =
// weatherTempData(this.queryParams).then((response) => { this.dayDate.length > 0 ? this.dayDate[0] : "";
// console.log(""); this.queryParams.endTime =
// if (response.rows.length > 0) { this.dayDate.length > 0 ? this.dayDate[1] : "";
// let data = response.rows; } else if (this.dateType == "month") {
// let timeValue = []; timeType = 2;
// let hightValue = []; this.queryParams.startTime =
// let lowValue = []; this.monthDate.length > 0 ? this.monthDate[0] : "";
// data.forEach((element) => { this.queryParams.endTime =
// timeValue.push(element.weatherDate); this.monthDate.length > 0 ? this.monthDate[1] : "";
// hightValue.push(element.maxTemp); } else if (this.dateType == "year") {
// lowValue.push(element.minTemp); timeType = 3;
// }); this.queryParams.startTime = this.startYear;
// let adapterOption = {}; this.queryParams.endTime = this.endYear;
// adapterOption = { }
// xAxis: { let data = {
// data: timeValue, type: timeType,
// }, page: this.queryParams.pageNum,
// series: [ limit: this.total,
// { startDate: this.queryParams.startTime,
// data: hightValue, endDate: this.queryParams.endTime,
// //线 buildingId: this.building,
// itemStyle: { };
// color: "rgb(18, 126, 226)", //线 hotEnergyQuery(data).then((res) => {
// }, console.log("图表返回的数据", res);
// lineStyle: { this.brokenData1 = [];
// color: "rgb(18, 126, 226)", //线 this.brokenData2 = [];
// }, this.brokenData3 = [];
// }, this.brokenTime = [];
// { if (res.code == 200 && res.rows.length > 0) {
// data: lowValue, this.exportData = res.rows;
// //线 res.rows.forEach((item) => {
// itemStyle: { this.brokenData1.push(item.useHotWater);
// color: "rgb(250, 169, 19)", //线 this.brokenData2.push(item.electValue);
// }, this.brokenData3.push(item.electWater);
// lineStyle: { this.brokenTime.push(item.curDate);
// color: "rgb(250, 169, 19)", //线 });
// }, //
// }, this.brokenData1.reverse();
// ], this.brokenData2.reverse();
// }; this.brokenData3.reverse();
// //.chartInstanceoptiondataoption this.brokenTime.reverse();
// this.brokenInstanc.setOption(adapterOption); this.renderingBroken();
// //resize } else {
// this.brokenInstanc.resize(); this.brokenData1 = [];
// } else { this.brokenData2 = [];
// let adapterOption = {}; this.brokenData3 = [];
// adapterOption = { this.brokenTime = [];
// xAxis: { }
// data: [], this.renderingBroken();
// }, });
// series: [
// {
// data: [],
// },
// {
// data: [],
// },
// ],
// };
// //.chartInstanceoptiondataoption
// this.brokenInstanc.setOption(adapterOption);
// //resize
// this.brokenInstanc.resize();
// }
// });
this.renderingBroken();
}, },
renderingBroken() { renderingBroken() {
if (this.currentIndex === 0) { if (this.currentIndex === 0) {
@ -552,55 +585,107 @@ export default {
this.brokenOption.xAxis.data = this.brokenTime; this.brokenOption.xAxis.data = this.brokenTime;
this.brokenInstanc.setOption(this.brokenOption); this.brokenInstanc.setOption(this.brokenOption);
}, },
// //
exportData() { getRadioData() {
let curType = "";
let curTime = "";
if (this.dateType == "day") {
curType = 1;
curTime = getDay(0);
} else if (this.dateType == "month") {
curType = 2;
curTime = getMonth(0);
} else if (this.dateType == "year") {
curType = 3;
curTime = getYear(0);
}
let data = { let data = {
timeType: this.dateType, curDate: curTime,
startTime: this.queryParams.startTime, type: curType,
endTime: this.endTime, buildingId: this.building,
building: this.building,
}; };
console.log("导出数据参数", data); hotEnergySum(data).then((res) => {
analyzeExport(data).then((res) => { console.log("上层数据返回", res);
console.log("导出返回", res); if (res.code == 200) {
if (res) { this.useWater = res.rows[0].waterValue;
// this.useWaterRadio = res.rows[0].waterP;
// blob URL this.useElect = res.rows[0].electValue;
const url = window.URL.createObjectURL(new Blob([res])); this.useElectRadio = res.rows[0].electP;
// <a>hrefdownload this.useUnit = res.rows[0].electWater;
const link = document.createElement("a"); this.useUnitRadio = res.rows[0].electWaterP;
link.href = url;
link.setAttribute("download", "机房能耗报表.xls"); //
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// blob URL
window.URL.revokeObjectURL(url);
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
} }
}); });
// .catch((err) => {
// this.$message.error('!');
// })
}, },
tableRowStyle({ row, column, rowIndex, columnIndex }) { //
// goExport() {
if (columnIndex === 1) { if (this.exportData) {
return "color: #fd1e00;!important;text-align:center"; import("@/assets/excel/Export2Excel").then((excel) => {
} // excel
if (columnIndex === 2) { if (this.building == "所有") {
return "color: #3390ff;!important;text-align:center"; var tHeader = [
} "日期",
if (columnIndex === 4) { "用水量(吨)",
return "color: #75d148;!important;text-align:center"; "用电量(度)",
"单耗(度/吨)",
"楼栋人数",
"人均用水(人/升)",
]; // excel
var filterVal = [
"curDate",
"useHotWater",
"electValue",
"electWater",
"checkInCount",
"perWater",
];
} else {
var tHeader = [
"日期",
"所属楼栋",
"用水量(吨)",
"用电量(度)",
"单耗(度/吨)",
"楼栋人数",
"人均用水(人/升)",
]; // excel
var filterVal = [
"curDate",
"buildingName",
"useHotWater",
"electValue",
"electWater",
"checkInCount",
"perWater",
];
}
const data = this.formatJson(filterVal, this.exportData);
const autoWidth = true;
excel.export_json_to_excel({
header: tHeader, //
data, //
filename: "能耗报表", //
autoWidth: true, //
});
});
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
} }
// return "text-align:center"; },
//,
formatJson(filterVal, jsonData) {
return jsonData.map((v) =>
filterVal.map((j) => {
if (j === "perWater") {
return (v[j] * 1000).toFixed(1);
} else {
return v[j];
}
})
);
}, },
// 线+ + 线 // 线+ + 线
screenAdapter() { screenAdapter() {

484
src/views/hotWater/energyAnalysis/components/temReport.vue

@ -11,7 +11,7 @@
<el-option <el-option
v-for="(item, index) in builds" v-for="(item, index) in builds"
:key="index" :key="index"
:label="item.label" :label="item.building_name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
@ -26,56 +26,51 @@
<el-button type="success" @click="findData">查询</el-button> <el-button type="success" @click="findData">查询</el-button>
</div> </div>
<div class="warning-btn"> <div class="warning-btn">
<el-button type="warning" @click="exportData">导出</el-button> <el-button type="warning" @click="goExport">导出</el-button>
</div> </div>
</div> </div>
</div> </div>
<div class="charts" ref="chart_ref"></div> <div class="charts" ref="chart_ref"></div>
<el-table <el-table
:data="postList" :data="tableData"
stripe
:cell-style="tableRowStyle"
@row-click="handlerow" @row-click="handlerow"
highlight-current-row highlight-current-row
height="500" height="500"
ref="maintable"
:cell-style="tableRowStyle"
> >
<el-table-column label="楼栋名称" align="center" prop="dateAndWeek" /> <el-table-column v-if="showBuild" prop="buildingName" label="楼栋名称">
<el-table-column label="0点" align="center" prop="maxTemp" /> </el-table-column>
<el-table-column label="2点" align="center" prop="minTemp" /> <el-table-column v-if="!showBuild" prop="deviceName" label="热泵名称">
<el-table-column label="6点" align="center" prop="minTemp" /> </el-table-column>
<el-table-column label="8点" align="center" prop="minTemp" /> <el-table-column label="0点" align="center" prop="temp00" />
<el-table-column label="11点" align="center" prop="minTemp" /> <el-table-column label="2点" align="center" prop="temp02" />
<el-table-column label="13点" align="center" prop="minTemp" /> <el-table-column label="6点" align="center" prop="temp06" />
<el-table-column label="14点" align="center" prop="minTemp" /> <el-table-column label="8点" align="center" prop="temp08" />
<el-table-column label="15点" align="center" prop="minTemp" /> <el-table-column label="11点" align="center" prop="temp11" />
<el-table-column label="16点" align="center" prop="minTemp" /> <el-table-column label="13点" align="center" prop="temp13" />
<el-table-column label="17点" align="center" prop="minTemp" /> <el-table-column label="14点" align="center" prop="temp14" />
<el-table-column label="18点" align="center" prop="minTemp" /> <el-table-column label="15点" align="center" prop="temp15" />
<el-table-column label="19点" align="center" prop="minTemp" /> <el-table-column label="16点" align="center" prop="temp16" />
<el-table-column label="20点" align="center" prop="minTemp" /> <el-table-column label="17点" align="center" prop="temp17" />
<el-table-column label="21点" align="center" prop="minTemp" /> <el-table-column label="18点" align="center" prop="temp18" />
<el-table-column label="22点" align="center" prop="minTemp" /> <el-table-column label="19点" align="center" prop="temp19" />
<el-table-column label="23点" align="center" prop="minTemp" /> <el-table-column label="20点" align="center" prop="temp20" />
<el-table-column label="21点" align="center" prop="temp21" />
<el-table-column label="22点" align="center" prop="temp22" />
<el-table-column label="23点" align="center" prop="temp23" />
</el-table> </el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
</template> </template>
<script> <script>
import { formatDay } from "@/utils/datetime"; import { formatDay } from "@/utils/datetime";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import { hotBuildList, hotWaterTemp } from "@/api/hotWater/energyAnalysis";
import { spaceTree } from "@/api/region";
import * as echarts from "echarts"; import * as echarts from "echarts";
export default { export default {
data() { data() {
return { return {
showBuild: true, //
listLoading: false, listLoading: false,
dayDate: [], // dayDate: [], //
dialogVisible: false, dialogVisible: false,
@ -86,7 +81,7 @@ export default {
// //
total: 0, total: 0,
// //
postList: [], tableData: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -100,6 +95,15 @@ export default {
brokenTime: [], brokenTime: [],
}; };
}, },
//
watch: {
//
tableData: function () {
this.$nextTick(function () {
this.$refs.maintable.setCurrentRow(this.tableData[0]);
});
},
},
created() { created() {
// //
}, },
@ -110,7 +114,6 @@ export default {
this.initChart(); this.initChart();
window.addEventListener("resize", this.screenAdapter); window.addEventListener("resize", this.screenAdapter);
this.screenAdapter(); this.screenAdapter();
this.getChartData();
}, },
destroyed() { destroyed() {
// //
@ -119,49 +122,20 @@ export default {
methods: { methods: {
/** 查询楼栋 */ /** 查询楼栋 */
getBuildList() { getBuildList() {
spaceTree().then((res) => { let data = {
systemType: "1",
};
hotBuildList(data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
// //
console.log("楼栋返回值", res); console.log("楼栋返回值", res);
let newRes = { ...res }; this.builds = res.rows;
if (newRes.data && newRes.data[0] && newRes.data[0].children) {
newRes.data[0].children = newRes.data[0].children.filter((item) => {
// label ""
return item.label && item.label.includes("热水");
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds); // console.log("", this.builds);
this.building = this.builds[0].id; this.building = res.rows[0].id;
this.getList(); this.getList();
} }
}); });
}, },
// children
removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) {
// children
obj.children = [];
return;
}
if (obj.children && obj.children.length > 0) {
// children
for (let i = 0; i < obj.children.length; i++) {
this.removeChildrenAfterLevel(
obj.children[i],
currentLevel + 1,
targetLevel
);
}
}
},
// //
initializeTimeDate() { initializeTimeDate() {
this.dayDate = formatDay(new Date()); // this.dayDate = formatDay(new Date()); //
@ -170,135 +144,50 @@ export default {
findData() { findData() {
this.getList(); this.getList();
}, },
// /* 加入小手状态 */
showMessage(message, type) { tableRowStyle({ row, column, rowIndex, columnIndex }) {
this.$message({ if (row) {
message: message, return "cursor:pointer;text-align:center";
type: type, }
});
}, },
// //
getList() { getList() {
if (this.building == "所有") {
this.showBuild = true;
} else {
this.showBuild = false;
}
let data = { let data = {
startTime: this.dayDate, buildingId: this.building,
endTime: this.dayDate, curDate: this.dayDate,
building: this.building,
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
// //
hotWaterTemp(data).then((res) => {
if (res.code == 200 && res.rows.length >0) {
this.tableData = res.rows;
// this.firstRow();
this.handlerow(this.tableData[0]);
} else {
this.rows = [];
}
});
// Just to simulate the time of the request // Just to simulate the time of the request
setTimeout(() => { setTimeout(() => {
this.listLoading = false; this.listLoading = false;
}, 1.0 * 1000); }, 1.0 * 1000);
}, },
//
getChartData() {
this.queryParams.pageNum = 0;
console.log("图表参数", this.queryParams);
this.brokenData1 = [30, 40, 29];
this.brokenTime = ["3月", "4月", "5月"];
this.brokenOption.series[0].data = this.brokenData1;
this.brokenOption.series[0].itemStyle.color = "#1f8dee";
this.brokenOption.series[0].areaStyle.color.colorStops = [
{
offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
];
// tooltip
this.brokenOption.tooltip = {
trigger: "axis",
formatter: function (params) {
//
const data = params[0];
const month = data.name;
const value = data.value;
return `${month}<br/>温度: ${value}`;
},
};
this.brokenOption.xAxis.data = this.brokenTime;
this.brokenInstanc.setOption(this.brokenOption);
// weatherTempData(this.queryParams).then((response) => {
// console.log("");
// if (response.rows.length > 0) {
// let data = response.rows;
// let timeValue = [];
// let hightValue = [];
// let lowValue = [];
// data.forEach((element) => {
// timeValue.push(element.weatherDate);
// hightValue.push(element.maxTemp);
// lowValue.push(element.minTemp);
// });
// let adapterOption = {};
// adapterOption = {
// xAxis: {
// data: timeValue,
// },
// series: [
// {
// data: hightValue,
// //线
// itemStyle: {
// color: "rgb(18, 126, 226)", //线
// },
// lineStyle: {
// color: "rgb(18, 126, 226)", //线
// },
// },
// {
// data: lowValue,
// //线
// itemStyle: {
// color: "rgb(250, 169, 19)", //线
// },
// lineStyle: {
// color: "rgb(250, 169, 19)", //线
// },
// },
// ],
// };
// //.chartInstanceoptiondataoption
// this.brokenInstanc.setOption(adapterOption);
// //resize
// this.brokenInstanc.resize();
// } else {
// let adapterOption = {};
// adapterOption = {
// xAxis: {
// data: [],
// },
// series: [
// {
// data: [],
// },
// {
// data: [],
// },
// ],
// };
// //.chartInstanceoptiondataoption
// this.brokenInstanc.setOption(adapterOption);
// //resize
// this.brokenInstanc.resize();
// }
// });
},
// //
handlerow(row, event, column) { handlerow(row, event, column) {
// console.log("----", row) console.log("点击的行数据----", row);
if (row) { if (row) {
const obj = Object.assign({}, row); const obj = Object.assign({}, row);
// //
delete obj.buildingID; delete obj.buildingId;
delete obj.curDate; delete obj.curDate;
delete obj.pumpID; delete obj.deviceNum;
delete obj.pumpName; delete obj.deviceName;
delete obj.buildingName; delete obj.buildingName;
// //
let newObj = {}; let newObj = {};
@ -307,10 +196,6 @@ export default {
newObj[key] = obj[key]; newObj[key] = obj[key];
} }
} }
// console.log("", newObj);
// key
// Object.setPrototypeOf(this.newObj);
// let data7 = Object.keys(newObj);
// console.log("x", data7); // console.log("x", data7);
const keysArr = Object.keys(newObj); // const keysArr = Object.keys(newObj); //
this.brokenTime = []; this.brokenTime = [];
@ -323,105 +208,152 @@ export default {
// console.log("", valuesArr); // console.log("", valuesArr);
// console.log("", this.brokenTime); // console.log("", this.brokenTime);
this.brokenData1 = valuesArr; this.brokenData1 = valuesArr;
const adapterOption = {
xAxis: {
data: this.brokenTime,
},
series: [
{
name: "温度",
data: this.brokenData1,
itemStyle: {
color: "#1f8dee",
},
areaStyle: {
color: {
colorStops: [
{
offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
],
},
},
},
],
};
//.chartInstanceoptiondataoption
this.brokenInstanc.setOption(adapterOption);
//resize
this.brokenInstanc.resize();
} else { } else {
const adapterOption = { this.brokenTime = [];
xAxis: { this.brokenData1 = [];
data: [],
},
series: [
{
name: "温度",
data: [],
},
],
};
//.chartInstanceoptiondataoption
this.brokenInstanc.setOption(adapterOption);
//resize
this.brokenInstanc.resize();
} }
this.renderingBroken();
}, },
// //
exportData() { renderingBroken() {
let data = { this.brokenOption.series[0].data = this.brokenData1;
timeType: this.dateType, this.brokenOption.series[0].itemStyle.color = "#1f8dee";
startTime: this.queryParams.startTime, this.brokenOption.series[0].areaStyle.color.colorStops = [
endTime: this.endTime, {
building: this.building, offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
];
// tooltip
this.brokenOption.tooltip = {
trigger: "axis",
formatter: function (params) {
//
const data = params[0];
const month = data.name;
const value = data.value;
return `${month}<br/>温度: ${value}`;
},
}; };
console.log("导出数据参数", data); this.brokenOption.xAxis.data = this.brokenTime;
analyzeExport(data).then((res) => { this.brokenInstanc.setOption(this.brokenOption);
console.log("导出返回", res);
if (res) {
//
// blob URL
const url = window.URL.createObjectURL(new Blob([res]));
// <a>hrefdownload
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", "机房能耗报表.xls"); //
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// blob URL
window.URL.revokeObjectURL(url);
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
}
});
// .catch((err) => {
// this.$message.error('!');
// })
}, },
tableRowStyle({ row, column, rowIndex, columnIndex }) { //
// goExport() {
if (columnIndex === 1) { if (this.tableData) {
return "color: #fd1e00;!important;text-align:center"; import("@/assets/excel/Export2Excel").then((excel) => {
} //
if (columnIndex === 2) { if (this.showBuild) {
return "color: #3390ff;!important;text-align:center"; var tHeader = [
} "楼栋名称",
if (columnIndex === 4) { "0点",
return "color: #75d148;!important;text-align:center"; "02点",
"06点",
"8点",
"11点",
"13点",
"14点",
"15点",
"16点",
"17点",
"18点",
"19点",
"20点",
"21点",
"22点",
"23点",
]; // excel
var filterVal = [
"buildingName",
"temp00",
"temp02",
"temp06",
"temp08",
"temp11",
"temp13",
"temp14",
"temp15",
"temp16",
"temp17",
"temp18",
"temp19",
"temp20",
"temp21",
"temp22",
"temp23",
]; // excel
} else {
var tHeader = [
"热泵名称",
"0点",
"02点",
"06点",
"8点",
"11点",
"13点",
"14点",
"15点",
"16点",
"17点",
"18点",
"19点",
"20点",
"21点",
"22点",
"23点",
]; // excel
var filterVal = [
"deviceName",
"temp00",
"temp02",
"temp06",
"temp08",
"temp11",
"temp13",
"temp14",
"temp15",
"temp16",
"temp17",
"temp18",
"temp19",
"temp20",
"temp21",
"temp22",
"temp23",
]; // excel
}
const data = this.formatJson(filterVal, this.tableData);
const autoWidth = true;
excel.export_json_to_excel({
header: tHeader, //
data, //
filename: "温度变化报表", //
autoWidth: true, //
});
});
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
} }
// return "text-align:center"; },
//,
formatJson(filterVal, jsonData) {
return jsonData.map((v) =>
filterVal.map((j) => {
if (j === "installDate") {
return format(v[j]);
} else {
return v[j];
}
})
);
}, },
// 线+ + 线 // 线+ + 线
screenAdapter() { screenAdapter() {

484
src/views/hotWater/energyAnalysis/components/waterReport.vue

@ -11,7 +11,7 @@
<el-option <el-option
v-for="(item, index) in builds" v-for="(item, index) in builds"
:key="index" :key="index"
:label="item.label" :label="item.building_name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
@ -26,56 +26,50 @@
<el-button type="success" @click="findData">查询</el-button> <el-button type="success" @click="findData">查询</el-button>
</div> </div>
<div class="warning-btn"> <div class="warning-btn">
<el-button type="warning" @click="exportData">导出</el-button> <el-button type="warning" @click="goExport">导出</el-button>
</div> </div>
</div> </div>
</div> </div>
<div class="charts" ref="chart_ref"></div> <div class="charts" ref="chart_ref"></div>
<el-table <el-table
:data="postList" :data="tableData"
stripe
:cell-style="tableRowStyle"
@row-click="handlerow" @row-click="handlerow"
highlight-current-row highlight-current-row
height="500" height="500"
ref="maintable"
:cell-style="tableRowStyle"
> >
<el-table-column label="楼栋名称" align="center" prop="dateAndWeek" /> <el-table-column prop="buildingName" label="楼栋名称"> </el-table-column>
<el-table-column label="0点" align="center" prop="maxTemp" /> <el-table-column v-if="showDeviceName" prop="deviceName" label="设备名称">
<el-table-column label="2点" align="center" prop="minTemp" /> </el-table-column>
<el-table-column label="6点" align="center" prop="minTemp" /> <el-table-column label="0点" align="center" prop="temp00" />
<el-table-column label="8点" align="center" prop="minTemp" /> <el-table-column label="2点" align="center" prop="temp02" />
<el-table-column label="11点" align="center" prop="minTemp" /> <el-table-column label="6点" align="center" prop="temp06" />
<el-table-column label="13点" align="center" prop="minTemp" /> <el-table-column label="8点" align="center" prop="temp08" />
<el-table-column label="14点" align="center" prop="minTemp" /> <el-table-column label="11点" align="center" prop="temp11" />
<el-table-column label="15点" align="center" prop="minTemp" /> <el-table-column label="13点" align="center" prop="temp13" />
<el-table-column label="16点" align="center" prop="minTemp" /> <el-table-column label="14点" align="center" prop="temp14" />
<el-table-column label="17点" align="center" prop="minTemp" /> <el-table-column label="15点" align="center" prop="temp15" />
<el-table-column label="18点" align="center" prop="minTemp" /> <el-table-column label="16点" align="center" prop="temp16" />
<el-table-column label="19点" align="center" prop="minTemp" /> <el-table-column label="17点" align="center" prop="temp17" />
<el-table-column label="20点" align="center" prop="minTemp" /> <el-table-column label="18点" align="center" prop="temp18" />
<el-table-column label="21点" align="center" prop="minTemp" /> <el-table-column label="19点" align="center" prop="temp19" />
<el-table-column label="22点" align="center" prop="minTemp" /> <el-table-column label="20点" align="center" prop="temp20" />
<el-table-column label="23点" align="center" prop="minTemp" /> <el-table-column label="21点" align="center" prop="temp21" />
<el-table-column label="22点" align="center" prop="temp22" />
<el-table-column label="23点" align="center" prop="temp23" />
</el-table> </el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
</template> </template>
<script> <script>
import { formatDay } from "@/utils/datetime"; import { formatDay } from "@/utils/datetime";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import { hotBuildList, hotWaterLevel } from "@/api/hotWater/energyAnalysis";
import { spaceTree } from "@/api/region";
import * as echarts from "echarts"; import * as echarts from "echarts";
export default { export default {
data() { data() {
return { return {
showDeviceName: false, //
listLoading: false, listLoading: false,
dayDate: [], // dayDate: [], //
dialogVisible: false, dialogVisible: false,
@ -86,7 +80,7 @@ export default {
// //
total: 0, total: 0,
// //
postList: [], tableData: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -100,6 +94,15 @@ export default {
brokenTime: [], brokenTime: [],
}; };
}, },
//
watch: {
//
tableData: function () {
this.$nextTick(function () {
this.$refs.maintable.setCurrentRow(this.tableData[0]);
});
},
},
created() { created() {
// //
}, },
@ -110,7 +113,6 @@ export default {
this.initChart(); this.initChart();
window.addEventListener("resize", this.screenAdapter); window.addEventListener("resize", this.screenAdapter);
this.screenAdapter(); this.screenAdapter();
this.getChartData();
}, },
destroyed() { destroyed() {
// //
@ -119,49 +121,20 @@ export default {
methods: { methods: {
/** 查询楼栋 */ /** 查询楼栋 */
getBuildList() { getBuildList() {
spaceTree().then((res) => { let data = {
systemType: "1",
};
hotBuildList(data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
// //
console.log("楼栋返回值", res); console.log("楼栋返回值", res);
let newRes = { ...res }; this.builds = res.rows;
if (newRes.data && newRes.data[0] && newRes.data[0].children) {
newRes.data[0].children = newRes.data[0].children.filter((item) => {
// label ""
return item.label && item.label.includes("热水");
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds); // console.log("", this.builds);
this.building = this.builds[0].id; this.building = res.rows[0].id;
this.getList(); this.getList();
} }
}); });
}, },
// children
removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) {
// children
obj.children = [];
return;
}
if (obj.children && obj.children.length > 0) {
// children
for (let i = 0; i < obj.children.length; i++) {
this.removeChildrenAfterLevel(
obj.children[i],
currentLevel + 1,
targetLevel
);
}
}
},
// //
initializeTimeDate() { initializeTimeDate() {
this.dayDate = formatDay(new Date()); // this.dayDate = formatDay(new Date()); //
@ -170,135 +143,50 @@ export default {
findData() { findData() {
this.getList(); this.getList();
}, },
// /* 加入小手状态 */
showMessage(message, type) { tableRowStyle({ row, column, rowIndex, columnIndex }) {
this.$message({ if (row) {
message: message, return "cursor:pointer;text-align:center";
type: type, }
});
}, },
// //
getList() { getList() {
if (this.building == "所有") {
this.showDeviceName = false;
} else {
this.showDeviceName = true;
}
let data = { let data = {
startTime: this.dayDate, buildingId: this.building,
endTime: this.dayDate, curDate: this.dayDate,
building: this.building,
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
// //
hotWaterLevel(data).then((res) => {
if (res.code == 200 && res.rows.length >0) {
this.tableData = res.rows;
// this.firstRow();
this.handlerow(this.tableData[0]);
} else {
this.rows = [];
}
});
// Just to simulate the time of the request // Just to simulate the time of the request
setTimeout(() => { setTimeout(() => {
this.listLoading = false; this.listLoading = false;
}, 1.0 * 1000); }, 1.0 * 1000);
}, },
//
getChartData() {
this.queryParams.pageNum = 0;
console.log("图表参数", this.queryParams);
this.brokenData1 = [30, 40, 29];
this.brokenTime = ["3月", "4月", "5月"];
this.brokenOption.series[0].data = this.brokenData1;
this.brokenOption.series[0].itemStyle.color = "#1f8dee";
this.brokenOption.series[0].areaStyle.color.colorStops = [
{
offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
];
// tooltip
this.brokenOption.tooltip = {
trigger: "axis",
formatter: function (params) {
//
const data = params[0];
const month = data.name;
const value = data.value;
return `${month}<br/>水位: ${value} %`;
},
};
this.brokenOption.xAxis.data = this.brokenTime;
this.brokenInstanc.setOption(this.brokenOption);
// weatherTempData(this.queryParams).then((response) => {
// console.log("");
// if (response.rows.length > 0) {
// let data = response.rows;
// let timeValue = [];
// let hightValue = [];
// let lowValue = [];
// data.forEach((element) => {
// timeValue.push(element.weatherDate);
// hightValue.push(element.maxTemp);
// lowValue.push(element.minTemp);
// });
// let adapterOption = {};
// adapterOption = {
// xAxis: {
// data: timeValue,
// },
// series: [
// {
// data: hightValue,
// //线
// itemStyle: {
// color: "rgb(18, 126, 226)", //线
// },
// lineStyle: {
// color: "rgb(18, 126, 226)", //线
// },
// },
// {
// data: lowValue,
// //线
// itemStyle: {
// color: "rgb(250, 169, 19)", //线
// },
// lineStyle: {
// color: "rgb(250, 169, 19)", //线
// },
// },
// ],
// };
// //.chartInstanceoptiondataoption
// this.brokenInstanc.setOption(adapterOption);
// //resize
// this.brokenInstanc.resize();
// } else {
// let adapterOption = {};
// adapterOption = {
// xAxis: {
// data: [],
// },
// series: [
// {
// data: [],
// },
// {
// data: [],
// },
// ],
// };
// //.chartInstanceoptiondataoption
// this.brokenInstanc.setOption(adapterOption);
// //resize
// this.brokenInstanc.resize();
// }
// });
},
// //
handlerow(row, event, column) { handlerow(row, event, column) {
// console.log("----", row) console.log("点击的行数据----", row);
if (row) { if (row) {
const obj = Object.assign({}, row); const obj = Object.assign({}, row);
// //
delete obj.buildingID; delete obj.buildingId;
delete obj.curDate; delete obj.curDate;
delete obj.pumpID; delete obj.deviceNum;
delete obj.pumpName; delete obj.deviceName;
delete obj.buildingName; delete obj.buildingName;
// //
let newObj = {}; let newObj = {};
@ -307,10 +195,6 @@ export default {
newObj[key] = obj[key]; newObj[key] = obj[key];
} }
} }
// console.log("", newObj);
// key
// Object.setPrototypeOf(this.newObj);
// let data7 = Object.keys(newObj);
// console.log("x", data7); // console.log("x", data7);
const keysArr = Object.keys(newObj); // const keysArr = Object.keys(newObj); //
this.brokenTime = []; this.brokenTime = [];
@ -323,105 +207,153 @@ export default {
// console.log("", valuesArr); // console.log("", valuesArr);
// console.log("", this.brokenTime); // console.log("", this.brokenTime);
this.brokenData1 = valuesArr; this.brokenData1 = valuesArr;
const adapterOption = {
xAxis: {
data: this.brokenTime,
},
series: [
{
name: "温度",
data: this.brokenData1,
itemStyle: {
color: "#1f8dee",
},
areaStyle: {
color: {
colorStops: [
{
offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
],
},
},
},
],
};
//.chartInstanceoptiondataoption
this.brokenInstanc.setOption(adapterOption);
//resize
this.brokenInstanc.resize();
} else { } else {
const adapterOption = { this.brokenTime = [];
xAxis: { this.brokenData1 = [];
data: [],
},
series: [
{
name: "温度",
data: [],
},
],
};
//.chartInstanceoptiondataoption
this.brokenInstanc.setOption(adapterOption);
//resize
this.brokenInstanc.resize();
} }
this.renderingBroken();
}, },
// //
exportData() { renderingBroken() {
let data = { this.brokenOption.series[0].data = this.brokenData1;
timeType: this.dateType, this.brokenOption.series[0].itemStyle.color = "#1f8dee";
startTime: this.queryParams.startTime, this.brokenOption.series[0].areaStyle.color.colorStops = [
endTime: this.endTime, {
building: this.building, offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
];
// tooltip
this.brokenOption.tooltip = {
trigger: "axis",
formatter: function (params) {
//
const data = params[0];
const month = data.name;
const value = data.value;
return `${month}<br/>温度: ${value}`;
},
}; };
console.log("导出数据参数", data); this.brokenOption.xAxis.data = this.brokenTime;
analyzeExport(data).then((res) => { this.brokenInstanc.setOption(this.brokenOption);
console.log("导出返回", res);
if (res) {
//
// blob URL
const url = window.URL.createObjectURL(new Blob([res]));
// <a>hrefdownload
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", "机房能耗报表.xls"); //
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// blob URL
window.URL.revokeObjectURL(url);
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
}
});
// .catch((err) => {
// this.$message.error('!');
// })
}, },
tableRowStyle({ row, column, rowIndex, columnIndex }) { //
// goExport() {
if (columnIndex === 1) { if (this.tableData) {
return "color: #fd1e00;!important;text-align:center"; import("@/assets/excel/Export2Excel").then((excel) => {
} if (this.showDeviceName) {
if (columnIndex === 2) { var tHeader = [
return "color: #3390ff;!important;text-align:center"; "楼栋名称",
} "设备名称",
if (columnIndex === 4) { "0点",
return "color: #75d148;!important;text-align:center"; "02点",
"06点",
"8点",
"11点",
"13点",
"14点",
"15点",
"16点",
"17点",
"18点",
"19点",
"20点",
"21点",
"22点",
"23点",
]; // excel
var filterVal = [
"buildingName",
"deviceName",
"temp00",
"temp02",
"temp06",
"temp08",
"temp11",
"temp13",
"temp14",
"temp15",
"temp16",
"temp17",
"temp18",
"temp19",
"temp20",
"temp21",
"temp22",
"temp23",
]; // excel
} else {
var tHeader = [
"楼栋名称",
"0点",
"02点",
"06点",
"8点",
"11点",
"13点",
"14点",
"15点",
"16点",
"17点",
"18点",
"19点",
"20点",
"21点",
"22点",
"23点",
]; // excel
var filterVal = [
"buildingName",
"temp00",
"temp02",
"temp06",
"temp08",
"temp11",
"temp13",
"temp14",
"temp15",
"temp16",
"temp17",
"temp18",
"temp19",
"temp20",
"temp21",
"temp22",
"temp23",
]; // excel
}
const data = this.formatJson(filterVal, this.tableData);
const autoWidth = true;
excel.export_json_to_excel({
header: tHeader, //
data, //
filename: "温度变化报表", //
autoWidth: true, //
});
});
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
} }
// return "text-align:center"; },
//,
formatJson(filterVal, jsonData) {
return jsonData.map((v) =>
filterVal.map((j) => {
if (j === "installDate") {
return format(v[j]);
} else {
return v[j];
}
})
);
}, },
// 线+ + 线 // 线+ + 线
screenAdapter() { screenAdapter() {

124
src/views/hotWater/energyQuery/components/electReading.vue

@ -11,7 +11,7 @@
<el-option <el-option
v-for="(item, index) in builds" v-for="(item, index) in builds"
:key="index" :key="index"
:label="item.label" :label="item.building_name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
@ -40,13 +40,20 @@
highlight-current-row highlight-current-row
height="500" height="500"
> >
<el-table-column label="所属楼栋" align="center" prop="dateAndWeek" /> <el-table-column
<el-table-column label="设备编号" align="center" prop="maxTemp" /> type="index"
<el-table-column label="设备名称" align="center" prop="minTemp" /> :index="indexAdd"
<el-table-column label="抄表时间" align="center" prop="minTemp" /> prop="number"
<el-table-column label="采集读数" align="center" prop="minTemp" /> label="序号"
<el-table-column label="用量" align="center" prop="minTemp" /> width="90"
<el-table-column label="倍率" align="center" prop="minTemp" /> ></el-table-column>
<el-table-column label="所属楼栋" align="center" prop="buildingName" />
<el-table-column label="设备编号" align="center" prop="deviceNum" />
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="抄表时间" align="center" prop="curTime" />
<el-table-column label="采集读数" align="center" prop="curValue" />
<el-table-column label="用量" align="center" prop="usedValue" />
<el-table-column label="倍率" align="center" prop="ratio" />
</el-table> </el-table>
<pagination <pagination
@ -61,8 +68,8 @@
<script> <script>
import { formatDay } from "@/utils/datetime"; import { formatDay } from "@/utils/datetime";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import { hotBuildList } from "@/api/hotWater/energyAnalysis";
import { spaceTree } from "@/api/region"; import { queryDeviceDatas } from "@/api/hotWater/energyQuery";
export default { export default {
data() { data() {
return { return {
@ -106,65 +113,77 @@ export default {
}, },
/** 查询楼栋 */ /** 查询楼栋 */
getBuildList() { getBuildList() {
spaceTree().then((res) => { let data = {
systemType: "1",
};
hotBuildList(data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
// //
console.log("楼栋返回值", res); console.log("楼栋返回值", res);
let newRes = { ...res }; this.builds = res.rows;
if (newRes.data && newRes.data[0] && newRes.data[0].children) {
newRes.data[0].children = newRes.data[0].children.filter((item) => {
// label ""
return item.label && item.label.includes("热水");
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds); // console.log("", this.builds);
this.building = res.rows[0].id;
this.getList(); this.getList();
} }
}); });
}, },
// children
removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) {
// children
obj.children = [];
return;
}
if (obj.children && obj.children.length > 0) {
// children
for (let i = 0; i < obj.children.length; i++) {
this.removeChildrenAfterLevel(
obj.children[i],
currentLevel + 1,
targetLevel
);
}
}
},
// //
initializeTimeDate() { initializeTimeDate() {
this.dayDate = formatDay(new Date()); // let date = new Date(); //
//,
let year = date.getFullYear().toString();
//01
//使10'0'
let month =
date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1).toString()
: (date.getMonth() + 1).toString();
//10'0'
let day =
date.getDate() < 10
? "0" + date.getDate().toString()
: date.getDate().toString();
//
let start1 = year + "-" + month + "-01"; //
let end1 = year + "-" + month + "-" + day; //
this.dayDate = [start1, end1]; //
}, },
// //
findData() { findData() {
this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },
//
indexAdd(index) {
return (
index + 1 + (this.queryParams.pageNum - 1) * this.queryParams.pageSize
);
},
// //
getList() { getList() {
if (this.dayDate.length == 0) {
this.initializeTimeDate();
}
let data = { let data = {
startTime: this.dayDate, pageNum: this.queryParams.pageNum,
endTime: this.dayDate, pageSize: this.queryParams.pageSize,
building: this.building, startDate: this.dayDate[0],
endDate: this.dayDate[1],
buildingId: this.building,
deviceType: "18",
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
queryDeviceDatas(data).then((res) => {
console.log("返回", res);
if (res.code == 200) {
this.postList = res.rows;
this.total = res.total;
} else {
this.postList = [];
this.total = 0;
}
});
// //
// Just to simulate the time of the request // Just to simulate the time of the request
setTimeout(() => { setTimeout(() => {
@ -209,14 +228,7 @@ export default {
// }) // })
}, },
tableRowStyle({ row, column, rowIndex, columnIndex }) { tableRowStyle({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 6) {
if (columnIndex === 1) {
return "color: #fd1e00;!important;text-align:center";
}
if (columnIndex === 2) {
return "color: #3390ff;!important;text-align:center";
}
if (columnIndex === 4) {
return "color: #75d148;!important;text-align:center"; return "color: #75d148;!important;text-align:center";
} }
// return "text-align:center"; // return "text-align:center";

101
src/views/hotWater/energyQuery/components/energy.vue

@ -11,7 +11,7 @@
<el-option <el-option
v-for="(item, index) in builds" v-for="(item, index) in builds"
:key="index" :key="index"
:label="item.label" :label="item.building_name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
@ -44,8 +44,8 @@
<script> <script>
import { formatDay } from "@/utils/datetime"; import { formatDay } from "@/utils/datetime";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import { hotBuildList } from "@/api/hotWater/energyAnalysis";
import { spaceTree } from "@/api/region"; import { hotEnergyQuery } from "@/api/hotWater/overview";
import * as echarts from "echarts"; import * as echarts from "echarts";
export default { export default {
data() { data() {
@ -81,7 +81,6 @@ export default {
this.initChart(); this.initChart();
window.addEventListener("resize", this.screenAdapter); window.addEventListener("resize", this.screenAdapter);
this.screenAdapter(); this.screenAdapter();
this.getList();
}, },
destroyed() { destroyed() {
// //
@ -90,49 +89,20 @@ export default {
methods: { methods: {
/** 查询楼栋 */ /** 查询楼栋 */
getBuildList() { getBuildList() {
spaceTree().then((res) => { let data = {
systemType: "1",
};
hotBuildList(data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
// //
console.log("楼栋返回值", res); console.log("楼栋返回值", res);
let newRes = { ...res }; this.builds = res.rows;
if (newRes.data && newRes.data[0] && newRes.data[0].children) {
newRes.data[0].children = newRes.data[0].children.filter((item) => {
// label ""
return item.label && item.label.includes("热水");
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds); // console.log("", this.builds);
this.building = this.builds[0].id; this.building = res.rows[0].id;
this.getList(); this.getList();
} }
}); });
}, },
// children
removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) {
// children
obj.children = [];
return;
}
if (obj.children && obj.children.length > 0) {
// children
for (let i = 0; i < obj.children.length; i++) {
this.removeChildrenAfterLevel(
obj.children[i],
currentLevel + 1,
targetLevel
);
}
}
},
// //
initializeTimeDate() { initializeTimeDate() {
this.dayDate = formatDay(new Date()); // this.dayDate = formatDay(new Date()); //
@ -144,17 +114,44 @@ export default {
// //
getList() { getList() {
let data = { let data = {
startTime: this.dayDate, type: 0,
endTime: this.dayDate, page: 1,
building: this.building, limit: 31,
// curDate:this.dayDate,
startDate: this.dayDate,
endDate: this.dayDate,
buildingId: this.building,
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
// //
this.brokenData1 = [30, 40, 29]; hotEnergyQuery(data).then((res) => {
this.brokenData2 = [40, 42, 29]; console.log("图表返回的数据", res);
this.brokenTime = ["3月", "4月", "5月"]; this.brokenData1 = [];
this.getChartData(); this.brokenData2 = [];
this.brokenTime = [];
if (res.code == 200 && res.rows.length > 0) {
this.exportData = res.rows;
res.rows.forEach((item) => {
this.brokenData1.push(item.useHotWater);
this.brokenData2.push(item.electValue);
if (item.curDate.includes(" ")) {
var oneStr = item.curDate.split(" ");
this.brokenTime.push(oneStr[oneStr.length - 1] + ":00");
}
});
//
this.brokenData1.reverse();
this.brokenData2.reverse();
this.brokenTime.reverse();
} else {
this.brokenData1 = [];
this.brokenData2 = [];
this.brokenTime = [];
}
this.getChartData();
});
// Just to simulate the time of the request // Just to simulate the time of the request
setTimeout(() => { setTimeout(() => {
this.listLoading = false; this.listLoading = false;
@ -162,18 +159,6 @@ export default {
}, },
// //
getChartData() { getChartData() {
this.brokenOption.series[0].data = this.brokenData1;
this.brokenOption.series[0].itemStyle.color = "#1f8dee";
this.brokenOption.series[0].areaStyle.color.colorStops = [
{
offset: 0,
color: "rgba(31, 141, 238, 0.3)", // 0%
},
{
offset: 0.8,
color: "rgba(31, 141, 238,0)", // 100%
},
];
if (this.currentIndex === 0) { if (this.currentIndex === 0) {
this.brokenOption.series[0].data = this.brokenData1; this.brokenOption.series[0].data = this.brokenData1;
this.brokenOption.series[0].itemStyle.color = "#1f8dee"; this.brokenOption.series[0].itemStyle.color = "#1f8dee";

122
src/views/hotWater/energyQuery/components/waterReading.vue

@ -11,7 +11,7 @@
<el-option <el-option
v-for="(item, index) in builds" v-for="(item, index) in builds"
:key="index" :key="index"
:label="item.label" :label="item.building_name"
:value="item.id" :value="item.id"
/> />
</el-select> </el-select>
@ -40,13 +40,20 @@
highlight-current-row highlight-current-row
height="500" height="500"
> >
<el-table-column label="所属楼栋" align="center" prop="dateAndWeek" /> <el-table-column
<el-table-column label="设备编号" align="center" prop="maxTemp" /> type="index"
<el-table-column label="设备名称" align="center" prop="minTemp" /> :index="indexAdd"
<el-table-column label="抄表时间" align="center" prop="minTemp" /> prop="number"
<el-table-column label="采集读数" align="center" prop="minTemp" /> label="序号"
<el-table-column label="用量" align="center" prop="minTemp" /> width="90"
<el-table-column label="倍率" align="center" prop="minTemp" /> ></el-table-column>
<el-table-column label="所属楼栋" align="center" prop="buildingName" />
<el-table-column label="设备编号" align="center" prop="deviceNum" />
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="抄表时间" align="center" prop="curTime" />
<el-table-column label="采集读数" align="center" prop="curValue" />
<el-table-column label="用量" align="center" prop="usedValue" />
<el-table-column label="倍率" align="center" prop="ratio" />
</el-table> </el-table>
<pagination <pagination
@ -61,8 +68,8 @@
<script> <script>
import { formatDay } from "@/utils/datetime"; import { formatDay } from "@/utils/datetime";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import { hotBuildList } from "@/api/hotWater/energyAnalysis";
import { spaceTree } from "@/api/region"; import { queryDeviceDatas } from "@/api/hotWater/energyQuery";
export default { export default {
data() { data() {
return { return {
@ -106,65 +113,75 @@ export default {
}, },
/** 查询楼栋 */ /** 查询楼栋 */
getBuildList() { getBuildList() {
spaceTree().then((res) => { let data = {
systemType: "1",
};
hotBuildList(data).then((res) => {
if (res.code == 200) { if (res.code == 200) {
// //
console.log("楼栋返回值", res); console.log("楼栋返回值", res);
let newRes = { ...res }; this.builds = res.rows;
if (newRes.data && newRes.data[0] && newRes.data[0].children) {
newRes.data[0].children = newRes.data[0].children.filter((item) => {
// label ""
return item.label && item.label.includes("热水");
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds); // console.log("", this.builds);
this.building = res.rows[0].id;
this.getList(); this.getList();
} }
}); });
}, },
// children
removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) {
// children
obj.children = [];
return;
}
if (obj.children && obj.children.length > 0) {
// children
for (let i = 0; i < obj.children.length; i++) {
this.removeChildrenAfterLevel(
obj.children[i],
currentLevel + 1,
targetLevel
);
}
}
},
// //
initializeTimeDate() { initializeTimeDate() {
this.dayDate = formatDay(new Date()); // let date = new Date(); //
//,
let year = date.getFullYear().toString();
//01
//使10'0'
let month =
date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1).toString()
: (date.getMonth() + 1).toString();
//10'0'
let day =
date.getDate() < 10
? "0" + date.getDate().toString()
: date.getDate().toString();
//
let start1 = year + "-" + month + "-01"; //
let end1 = year + "-" + month + "-" + day; //
this.dayDate = [start1, end1]; //
}, },
// //
findData() { findData() {
this.queryParams.pageNum = 1;
this.getList(); this.getList();
}, },
//
indexAdd(index) {
return index + 1 + (this.queryParams.pageNum - 1) * this.queryParams.pageSize;
},
// //
getList() { getList() {
if (this.dayDate.length == 0) {
this.initializeTimeDate();
}
let data = { let data = {
startTime: this.dayDate, pageNum: this.queryParams.pageNum,
endTime: this.dayDate, pageSize: this.queryParams.pageSize,
building: this.building, startDate: this.dayDate[0],
endDate: this.dayDate[1],
buildingId: this.building,
deviceType: "16",
}; };
console.log("查询数据参数", data); console.log("查询数据参数", data);
this.listLoading = true; this.listLoading = true;
queryDeviceDatas(data).then((res) => {
console.log("返回", res);
if (res.code == 200) {
this.postList = res.rows;
this.total = res.total;
} else {
this.postList = [];
this.total = 0;
}
});
// //
// Just to simulate the time of the request // Just to simulate the time of the request
setTimeout(() => { setTimeout(() => {
@ -209,14 +226,7 @@ export default {
// }) // })
}, },
tableRowStyle({ row, column, rowIndex, columnIndex }) { tableRowStyle({ row, column, rowIndex, columnIndex }) {
// if (columnIndex === 6) {
if (columnIndex === 1) {
return "color: #fd1e00;!important;text-align:center";
}
if (columnIndex === 2) {
return "color: #3390ff;!important;text-align:center";
}
if (columnIndex === 4) {
return "color: #75d148;!important;text-align:center"; return "color: #75d148;!important;text-align:center";
} }
// return "text-align:center"; // return "text-align:center";

467
src/views/hotWater/energyQuery/index.vue

@ -1,439 +1,94 @@
<template> <template>
<div class="big-machine" v-loading="listLoading"> <div class="paramsDetails">
<div class="condition"> <div class="details-content">
<div class="condition-left"> <div class="details-header">
<el-select <el-tabs v-model="activeName" @tab-click="handleClick">
style="margin-right: 0.1rem" <el-tab-pane label="能耗" name="first">
v-model="building" <energy v-if="activeName === 'first'"></energy>
placeholder="请选择楼栋" </el-tab-pane>
clearable <el-tab-pane label="水表读数" name="second">
> <water-reading v-if="activeName === 'second'"></water-reading>
<el-option </el-tab-pane>
v-for="(item, index) in builds" <el-tab-pane label="电表读数" name="three">
:key="index" <elect-reading v-if="activeName === 'three'"></elect-reading>
:label="item.label" </el-tab-pane>
:value="item.id" </el-tabs>
/>
</el-select>
<el-date-picker
v-model="dayDate"
type="daterange"
range-separator="至"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="dateChange"
>
</el-date-picker>
<div class="success-btn" style="margin: 0 0.12rem">
<el-button type="success" @click="findData">查询</el-button>
</div>
<div class="warning-btn">
<el-button type="warning" @click="exportData">导出</el-button>
</div>
</div> </div>
</div> </div>
<el-table
:data="postList"
stripe
:cell-style="tableRowStyle"
highlight-current-row
height="500"
>
<el-table-column label="所属楼栋" align="center" prop="dateAndWeek" />
<el-table-column label="设备编号" align="center" prop="maxTemp" />
<el-table-column label="设备名称" align="center" prop="minTemp" />
<el-table-column label="抄表时间" align="center" prop="minTemp" />
<el-table-column label="采集读数" align="center" prop="minTemp" />
<el-table-column label="用量" align="center" prop="minTemp" />
<el-table-column label="倍率" align="center" prop="minTemp" />
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
</template> </template>
<script> <script>
import { formatDay } from "@/utils/datetime"; import ElectReading from "./components/electReading.vue";
import { energyAnalyze, analyzeExport } from "@/api/centerairC/energyManage"; import WaterReading from "./components/waterReading.vue";
import { spaceTree } from "@/api/region"; import Energy from "./components/energy.vue";
export default { export default {
components: { Energy, ElectReading, WaterReading },
data() { data() {
return { return {
listLoading: false, activeName: "first", //
dayDate: [], //
dialogVisible: false,
building: "", //
builds: [], //
//
loading: false,
//
total: 0,
//
postList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
startTime: "",
endTime: "",
},
}; };
}, },
created() {
//
},
mounted() {
this.initializeTimeDate();
this.getBuildList();
this.getList();
},
methods: { methods: {
// handleClick(tab, event) {
dateChange() { console.log(tab, event);
// console.log("", this.timeform.time1);
if (!this.dayDate) {
this.$nextTick(() => {
this.dayDate = [];
});
}
}, },
/** 查询楼栋 */
getBuildList() {
spaceTree().then((res) => {
if (res.code == 200) {
//
console.log("楼栋返回值", res);
let newRes = { ...res };
if (newRes.data && newRes.data[0] && newRes.data[0].children) { //switch-tab
newRes.data[0].children = newRes.data[0].children.filter((item) => { // activeName'second'tabtab
// label "" switchToEquitesMess() {
return item.label && item.label.includes("热水"); this.activeName = "second";
});
}
// 1 4
const targetLevel = 4;
// data[0] 1
if (newRes.data[0]) {
this.removeChildrenAfterLevel(newRes.data[0], 1, targetLevel);
}
this.builds = newRes.data[0].children[0].children[0].children;
// console.log("", this.builds);
this.getList();
}
});
},
// children
removeChildrenAfterLevel(obj, currentLevel, targetLevel) {
if (currentLevel >= targetLevel) {
// children
obj.children = [];
return;
}
if (obj.children && obj.children.length > 0) {
// children
for (let i = 0; i < obj.children.length; i++) {
this.removeChildrenAfterLevel(
obj.children[i],
currentLevel + 1,
targetLevel
);
}
}
},
//
initializeTimeDate() {
this.dayDate = formatDay(new Date()); //
}, },
// switchToPatrolTem() {
findData() { // this.activeName = 'fourth';
this.getList();
},
//
getList() {
let data = {
startTime: this.dayDate,
endTime: this.dayDate,
building: this.building,
};
console.log("查询数据参数", data);
this.listLoading = true;
//
// Just to simulate the time of the request
setTimeout(() => {
this.listLoading = false;
}, 1.0 * 1000);
},
//
exportData() {
let data = {
timeType: this.dateType,
startTime: this.queryParams.startTime,
endTime: this.endTime,
building: this.building,
};
console.log("导出数据参数", data);
analyzeExport(data).then((res) => {
console.log("导出返回", res);
if (res) {
//
// blob URL
const url = window.URL.createObjectURL(new Blob([res]));
// <a>hrefdownload
const link = document.createElement("a");
link.href = url;
link.setAttribute("download", "机房能耗报表.xls"); //
//
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// blob URL
window.URL.revokeObjectURL(url);
this.$message({
type: "success",
message: "导出成功!",
});
} else {
this.$message.error("导出失败!");
}
});
// .catch((err) => {
// this.$message.error('!');
// })
},
tableRowStyle({ row, column, rowIndex, columnIndex }) {
//
if (columnIndex === 1) {
return "color: #fd1e00;!important;text-align:center";
}
if (columnIndex === 2) {
return "color: #3390ff;!important;text-align:center";
}
if (columnIndex === 4) {
return "color: #75d148;!important;text-align:center";
}
// return "text-align:center";
}, },
//
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.condition { .paramsDetails {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: stretch;
justify-content: space-between; justify-content: space-between;
align-items: center;
width: 100%;
margin-bottom: 0.24rem;
.condition-left {
display: flex;
flex-direction: row;
align-items: center;
flex-wrap: wrap;
.years-div { .details-content {
display: flex;
flex-direction: row;
align-items: center;
.years-word {
font-size: 14px;
margin: 0 5px;
color: #388ff3;
}
}
.time-label {
font-size: 16px;
line-height: 7px;
margin-right: 12px;
white-space: nowrap;
}
}
}
.data-content {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
margin-top: 23px;
.data-li {
background-color: transparent;
border-radius: 8px;
display: flex;
flex-direction: row;
align-items: center;
padding: 0.3rem;
width: 31%;
justify-content: space-between;
margin-bottom: 0.24rem;
font-family: SourceHanSansCN-Regular;
font-size: 0.16rem;
position: relative;
overflow: hidden;
.use-icon {
width: 0.6rem;
height: 0.6rem;
}
.use-text {
width: 33%;
display: flex;
flex-direction: column;
align-items: flex-start;
color: #dbdbdb;
.data-text {
z-index: 11 !important;
font-family: DIN-Bold;
font-size: 0.24rem;
margin-top: 0.05rem;
color: #ffffff;
}
.downText {
color: #ff4027;
z-index: 11 !important;
font-family: DIN-Bold;
font-size: 0.24rem;
margin-top: 0.05rem;
.el-icon-bottom {
margin-right: 0.08rem;
}
}
.upText {
color: #2ff016;
z-index: 11 !important;
font-family: DIN-Bold;
font-size: 0.24rem;
margin-top: 0.05rem;
.el-icon-bottom,
.el-icon-top {
margin-right: 0.08rem;
}
}
}
}
.type-img {
position: absolute;
bottom: 0;
width: 3.17rem;
height: 0.52rem;
z-index: 10;
}
.type1 {
border: 1px solid #e8aa13;
border-radius: 10px;
/* 设置渐变背景 */
background: linear-gradient(rgba(26, 56, 65, 0.5), rgba(184, 196, 51, 0.5));
}
.type1::after {
content: "";
width: 100%;
height: 90%;
box-shadow: 0 0 30px 40px rgba(243, 166, 23, 0.3);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
bottom: -100% !important;
z-index: 1;
}
.type2 {
border: 1px solid #27a0f2;
border-radius: 10px;
/* 设置渐变背景 */
background: linear-gradient(rgba(2, 43, 88, 0.5), rgba(8, 96, 179, 0.5));
}
.type2::after {
content: "";
width: 100%; width: 100%;
height: 90%; // height: 0.42rem;
box-shadow: 0 0 30px 40px rgba(28, 128, 241, 0.3); position: relative;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
bottom: -100% !important;
z-index: 1;
}
.type3 {
border: 1px solid #1ad3ef;
border-radius: 10px;
/* 设置渐变背景 */
background: linear-gradient(rgba(2, 50, 89, 0.5), rgba(17, 145, 151, 0.5));
}
.type3::after {
content: "";
width: 100%;
height: 90%;
box-shadow: 0 0 30px 40px rgba(117, 242, 248, 0.3);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
bottom: -100% !important;
z-index: 1;
}
.type4 {
border: 1px solid #11d47b;
border-radius: 10px;
/* 设置渐变背景 */
background: linear-gradient(rgba(2, 57, 82, 0.5), rgba(5, 91, 90, 0.5));
}
.type4::after {
content: "";
width: 100%;
height: 90%;
box-shadow: 0 0 30px 40px rgba(115, 245, 176, 0.3);
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
bottom: -100% !important;
z-index: 1;
} }
} }
.choice { </style>
margin: 20px; <style scoped>
.mr20 { .none-div {
padding: 0.05rem 0.2rem; padding-top: 0.31rem;
white-space: nowrap;
width: auto;
}
} }
.charts {
width: 100%; .none-div >>> .el-tree {
height: 300px; background: transparent;
margin-bottom: 0.1rem; color: #789d9f;
} }
// 2000px
@media (min-width: 2000px) {
.condition {
.condition-left {
.years-div {
.years-word {
font-size: 0.14rem !important;
margin: 0 0.05rem !important;
}
}
.time-label { .none-div >>> .el-tree-node:focus > .el-tree-node__content {
font-size: 0.16rem !important; background-color: #00be97;
line-height: 0.07rem !important; color: #fff;
margin-right: 0.12rem !important; }
}
} .none-div >>> .el-tree-node__content:hover,
} .none-div >>> .el-upload-list__item:hover {
background-color: #00be97;
color: #fff;
}
.none-div >>> .el-tree-node__content {
height: 0.48rem;
justify-content: center;
}
.none-div >>> .el-tree-node__expand-icon.is-leaf {
display: none !important;
} }
</style> </style>

470
src/views/hotWater/overview/index.vue

@ -13,7 +13,7 @@
src="../../../assets/images/overview1.png" src="../../../assets/images/overview1.png"
alt="" alt=""
/> />
<div class="overview-num">640.4</div> <div class="overview-num">{{ useHotWater }}</div>
<div class="overview-title">昨日用水量()</div> <div class="overview-title">昨日用水量()</div>
</div> </div>
<div class="overview-data-li"> <div class="overview-data-li">
@ -22,7 +22,7 @@
src="../../../assets/images/overview2.png" src="../../../assets/images/overview2.png"
alt="" alt=""
/> />
<div class="overview-num">2428.88</div> <div class="overview-num">{{ electValue }}</div>
<div class="overview-title">昨日用电量()</div> <div class="overview-title">昨日用电量()</div>
</div> </div>
<div class="overview-data-li"> <div class="overview-data-li">
@ -31,7 +31,7 @@
src="../../../assets/images/overview3.png" src="../../../assets/images/overview3.png"
alt="" alt=""
/> />
<div class="overview-num">3.79</div> <div class="overview-num">{{ electWater }}</div>
<div class="overview-title">昨日单耗(/)</div> <div class="overview-title">昨日单耗(/)</div>
</div> </div>
<div class="overview-data-li"> <div class="overview-data-li">
@ -40,7 +40,7 @@
src="../../../assets/images/overview4.png" src="../../../assets/images/overview4.png"
alt="" alt=""
/> />
<div class="overview-num">186</div> <div class="overview-num">{{ allData }}</div>
<div class="overview-title">通讯设备设备总数()</div> <div class="overview-title">通讯设备设备总数()</div>
</div> </div>
</div> </div>
@ -80,9 +80,14 @@
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import { getDay } from "@/utils/datetime";
import { deviceState, hotEnergyQuery } from "@/api/hotWater/overview";
export default { export default {
data() { data() {
return { return {
electWater: "",
electValue: "",
useHotWater: "",
loading: false, loading: false,
chartInstance: null, chartInstance: null,
option: {}, option: {},
@ -133,208 +138,219 @@ export default {
//resize //resize
this.chartInstance.resize(); this.chartInstance.resize();
}, },
// //
pumpEchartsData() { pumpEchartsData() {
let data = true; let data = {
this.chartData1 = 10; systemType: 1,
this.chartData2 = 3; };
this.allData = 13; deviceState(data).then((res) => {
if (data) { if (res.rows) {
const titleFontSize = (this.$refs.pumpChart_ref.offsetWidth / 100) * 2; console.log("进行赋值", res.rows);
const colorList = ["#ffe21e", "#08c8ff"]; // this.chartData1 = res.rows[0].pumpOnline;
const adapterOption = { this.chartData2 = parseInt(
tooltip: { res.rows[0].deviceNum - res.rows[0].pumpOnline
trigger: "item", );
formatter: "{a} <br/>{b} : {c} ({d}%)", this.allData = res.rows[0].deviceNum;
}, const titleFontSize =
// (this.$refs.pumpChart_ref.offsetWidth / 100) * 2;
title: { const colorList = ["#ffe21e", "#08c8ff"]; //
subtext: this.allData, const adapterOption = {
}, tooltip: {
legend: { trigger: "item",
itemWidth: titleFontSize, formatter: "{a} <br/>{b} : {c} ({d}%)",
itemHeight: titleFontSize,
itemGap: titleFontSize * 2,
formatter: function (name) {
var arr = [];
let data = adapterOption.series[0].data;
var index = 0;
var total = 0;
for (var i = 0; i < data.length; i++) {
total += data[i].value;
if (data[i].name == name) {
index = i;
}
}
arr.push(
"{name|" + name + "}",
"{text|" + " " + ":" + " " + "}",
"{value|" + data[index].value + "}",
"{text|" + " " + "台" + "}"
);
return arr.join("");
}, },
textStyle: { //
color: function (name) { title: {
const dataSeries = adapterOption.series[1].data; // data subtext: this.allData,
const index = dataSeries.findIndex( },
(item) => item.name === name legend: {
itemWidth: titleFontSize,
itemHeight: titleFontSize,
itemGap: titleFontSize * 2,
formatter: function (name) {
var arr = [];
let data = adapterOption.series[0].data;
var index = 0;
var total = 0;
for (var i = 0; i < data.length; i++) {
total += data[i].value;
if (data[i].name == name) {
index = i;
}
}
arr.push(
"{name|" + name + "}",
"{text|" + " " + ":" + " " + "}",
"{value|" + data[index].value + "}",
"{text|" + " " + "台" + "}"
); );
const colorList = ["#2df499", "#08c8ff"]; // return arr.join("");
return colorList[index];
}, },
rich: { textStyle: {
name: { color: function (name) {
align: "left", const dataSeries = adapterOption.series[1].data; // data
fontSize: titleFontSize * 1.6, const index = dataSeries.findIndex(
}, (item) => item.name === name
text: { );
align: "left", const colorList = ["#2df499", "#08c8ff"]; //
fontSize: titleFontSize * 1.6, return colorList[index];
}, },
value: { rich: {
align: "left", name: {
fontSize: titleFontSize * 1.6, align: "left",
// color: function (params) { fontSize: titleFontSize * 1.6,
// let data = adapterOption.series[1].data; },
// return data.itemStyle.color({ dataIndex: params.dataIndex }); text: {
// }, align: "left",
}, fontSize: titleFontSize * 1.6,
percentage: { },
align: "left", value: {
fontSize: titleFontSize * 2, align: "left",
// color: function (params) { fontSize: titleFontSize * 1.6,
// let data = adapterOption.series[1].data; // color: function (params) {
// return data.itemStyle.color({ dataIndex: params.dataIndex }); // let data = adapterOption.series[1].data;
// }, // return data.itemStyle.color({ dataIndex: params.dataIndex });
// },
},
percentage: {
align: "left",
fontSize: titleFontSize * 2,
// color: function (params) {
// let data = adapterOption.series[1].data;
// return data.itemStyle.color({ dataIndex: params.dataIndex });
// },
},
}, },
}, },
}, },
}, series: [
series: [ {
{ name: "温度监测:",
name: "温度监测:", data: [
data: [ { value: this.chartData1, name: "运行" },
{ value: this.chartData1, name: "运行" }, { value: this.chartData2, name: "不运行" },
{ value: this.chartData2, name: "不运行" }, ],
], itemStyle: {
itemStyle: { color: function (params) {
color: function (params) { var colorList = ["#2df499", "#08c8ff"];
var colorList = ["#2df499", "#08c8ff"]; return colorList[params.dataIndex];
return colorList[params.dataIndex]; },
// borderWidth: 5,
borderColor: "#002a56",
}, },
// borderWidth: 5,
borderColor: "#002a56",
}, },
{
data: [
{ value: this.chartData1, name: "运行" },
{ value: this.chartData2, name: "不运行" },
],
},
],
};
this.chartInstance.setOption(adapterOption);
this.chartInstance.resize();
} else {
this.allData = 0;
const titleFontSize =
(this.$refs.pumpChart_ref.offsetWidth / 100) * 2;
const adapterOption = {
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
}, },
{ //
data: [ title: {
{ value: this.chartData1, name: "运行" }, subtext: 0,
{ value: this.chartData2, name: "不运行" },
],
}, },
], legend: {
}; itemWidth: titleFontSize,
this.chartInstance.setOption(adapterOption); itemHeight: titleFontSize,
this.chartInstance.resize(); itemGap: titleFontSize * 2,
} else { formatter: function (name) {
const titleFontSize = (this.$refs.pumpChart_ref.offsetWidth / 100) * 2; var arr = [];
const adapterOption = { let data = adapterOption.series[0].data;
tooltip: { var index = 0;
trigger: "item", var total = 0;
formatter: "{a} <br/>{b} : {c} ({d}%)", for (var i = 0; i < data.length; i++) {
}, total += data[i].value;
// if (data[i].name == name) {
title: { index = i;
subtext: 0, }
},
legend: {
itemWidth: titleFontSize,
itemHeight: titleFontSize,
itemGap: titleFontSize * 2,
formatter: function (name) {
var arr = [];
let data = adapterOption.series[0].data;
var index = 0;
var total = 0;
for (var i = 0; i < data.length; i++) {
total += data[i].value;
if (data[i].name == name) {
index = i;
} }
} arr.push(
arr.push( "{name|" + name + "}",
"{name|" + name + "}", "{text|" + " " + ":" + " " + "}",
"{text|" + " " + ":" + " " + "}", "{value|" + data[index].value + "}",
"{value|" + data[index].value + "}", "{text|" + " " + "台" + "}"
"{text|" + " " + "台" + "}"
);
return arr.join("");
},
textStyle: {
color: function (name) {
const dataSeries = adapterOption.series[1].data; // data
const index = dataSeries.findIndex(
(item) => item.name === name
); );
const colorList = ["#2df499", "#08c8ff"]; // return arr.join("");
return colorList[index];
}, },
rich: { textStyle: {
name: { color: function (name) {
align: "left", const dataSeries = adapterOption.series[1].data; // data
fontSize: titleFontSize * 1.6, const index = dataSeries.findIndex(
}, (item) => item.name === name
text: { );
align: "left", const colorList = ["#2df499", "#08c8ff"]; //
fontSize: titleFontSize * 1.6, return colorList[index];
}, },
value: { rich: {
align: "left", name: {
fontSize: titleFontSize * 1.6, align: "left",
// color: function (params) { fontSize: titleFontSize * 1.6,
// let data = adapterOption.series[1].data; },
// return data.itemStyle.color({ dataIndex: params.dataIndex }); text: {
// }, align: "left",
}, fontSize: titleFontSize * 1.6,
percentage: { },
align: "left", value: {
fontSize: titleFontSize * 1.6, align: "left",
// color: function (params) { fontSize: titleFontSize * 1.6,
// let data = adapterOption.series[1].data; // color: function (params) {
// return data.itemStyle.color({ dataIndex: params.dataIndex }); // let data = adapterOption.series[1].data;
// }, // return data.itemStyle.color({ dataIndex: params.dataIndex });
// },
},
percentage: {
align: "left",
fontSize: titleFontSize * 1.6,
// color: function (params) {
// let data = adapterOption.series[1].data;
// return data.itemStyle.color({ dataIndex: params.dataIndex });
// },
},
}, },
}, },
}, },
}, series: [
series: [ {
{ name: "温度监测:",
name: "温度监测:", data: [
data: [ { value: 0, name: "运行" },
{ value: 0, name: "运行" }, { value: 0, name: "不运行" },
{ value: 0, name: "不运行" }, ],
], itemStyle: {
itemStyle: { color: function (params) {
color: function (params) { var colorList = ["#2df499", "#08c8ff"];
var colorList = ["#2df499", "#08c8ff"]; return colorList[params.dataIndex];
return colorList[params.dataIndex]; },
// borderWidth: 5,
borderColor: "#002a56",
}, },
// borderWidth: 5,
borderColor: "#002a56",
}, },
}, {
{ data: [
data: [ { value: 0, name: "运行" },
{ value: 0, name: "运行" }, { value: 0, name: "运行" },
{ value: 0, name: "不运行" }, ],
], },
}, ],
], };
}; this.chartInstance.setOption(adapterOption);
this.chartInstance.setOption(adapterOption); this.chartInstance.resize();
this.chartInstance.resize(); }
} });
}, },
//chartInstance- //chartInstance-
initChart() { initChart() {
@ -612,11 +628,87 @@ export default {
}, },
// 线 // 线
getTableData() { getTableData() {
this.brokenData1 = [30, 40, 29]; let date = new Date();
this.brokenData2 = [10, 23, 12]; let year = date.getFullYear().toString();
this.brokenData3 = [3, 4, 2]; let month =
this.brokenTime = ["3月", "4月", "5月"]; date.getMonth() + 1 < 10
this.renderingBroken(); ? "0" + (date.getMonth() + 1).toString()
: (date.getMonth() + 1).toString();
let day =
date.getDate() < 10
? "0" + date.getDate().toString()
: date.getDate().toString();
let start = year + "-" + month + "-01"; //
let end = year + "-" + month + "-" + day; //
const dailyParams = {
type: 1,
buildingId: "所有",
page: 1,
limit: 31,
startDate: getDay(-1),
endDate: getDay(-1),
};
const monthlyParams = {
type: 1,
buildingId: "所有",
page: 1,
limit: 31,
startDate: start,
endDate: end,
};
//
Promise.all([hotEnergyQuery(dailyParams), hotEnergyQuery(monthlyParams)])
.then(([dailyResponse, monthlyResponse]) => {
console.log("昨日数据", dailyResponse);
if (
dailyResponse.code == 200 &&
dailyResponse.rows !== null &&
dailyResponse.rows.length > 0
) {
this.electWater = dailyResponse.rows[0].electWater;
this.electValue = dailyResponse.rows[0].electValue;
this.useHotWater = dailyResponse.rows[0].useHotWater;
} else {
this.electWater = 0;
this.electValue = 0;
this.useHotWater = 0;
}
console.log("当月数据", monthlyResponse);
this.brokenData1 = [];
this.brokenData2 = [];
this.brokenData3 = [];
this.brokenTime = [];
if (monthlyResponse.code == 200) {
monthlyResponse.rows.forEach((item) => {
this.brokenData1.push(item.useHotWater);
this.brokenData2.push(item.electValue);
this.brokenData3.push(item.electWater);
if (item.curDate.includes("-")) {
var oneStr = item.curDate.split("-");
this.brokenTime.push(
oneStr[oneStr.length - 2] + "-" + oneStr[oneStr.length - 1]
);
}
});
//
this.brokenData1.reverse();
this.brokenData2.reverse();
this.brokenData3.reverse();
this.brokenTime.reverse();
this.renderingBroken();
} else {
this.brokenData1 = [];
this.brokenData2 = [];
this.brokenData3 = [];
this.brokenTime = [];
this.renderingBroken();
}
})
.catch((error) => {
console.error("请求数据时出错:", error);
});
}, },
renderingBroken() { renderingBroken() {
if (this.currentIndex === 0) { if (this.currentIndex === 0) {

1
src/views/temSys/temMonitor/index.vue

@ -212,6 +212,7 @@ export default {
return item.label && item.label.includes("温度监测"); return item.label && item.label.includes("温度监测");
}); });
} }
console.log("newRes.data[0]",newRes.data[0])
// 1 4 // 1 4
const targetLevel = 4; const targetLevel = 4;
// data[0] 1 // data[0] 1

Loading…
Cancel
Save