|
@@ -1,14 +1,24 @@
|
|
|
<template>
|
|
|
- <div class="light" v-if="showLight && lampList && lampList.length">
|
|
|
+ <div class="light" v-if="floorHeatingList && floorHeatingList.length">
|
|
|
<!--如果有子设备-->
|
|
|
<div class="floor-top">
|
|
|
<div class="top-box">
|
|
|
- <div class="top-left">
|
|
|
+ <div
|
|
|
+ class="top-left"
|
|
|
+ v-if="floorHeatingList && floorHeatingList.length > 1"
|
|
|
+ >
|
|
|
<span>地暖</span>
|
|
|
- <span>26<sup>℃</sup></span>
|
|
|
+ <span>{{ realTemp }} <sup>℃</sup></span>
|
|
|
</div>
|
|
|
<div class="top-right">
|
|
|
- <img :src="parseImgUrl('page-officehome', 'heating.svg')" alt="" />
|
|
|
+ <img
|
|
|
+ :src="
|
|
|
+ floorHeatingData.runStatus
|
|
|
+ ? parseImgUrl('page-officehome', 'heating-active.svg')
|
|
|
+ : parseImgUrl('page-officehome', 'heating.svg')
|
|
|
+ "
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="top-switch">
|
|
@@ -38,11 +48,15 @@
|
|
|
<div class="control-box">
|
|
|
<div class="temp-slider" id="slideFloorId">
|
|
|
<div class="slider-bar" id="barFloorId">
|
|
|
- <div class="bar-temp">26℃</div>
|
|
|
+ <div class="bar-temp">{{ realTemp }}℃</div>
|
|
|
<div class="bar-circle" id="handFloorId"></div>
|
|
|
</div>
|
|
|
- <div class="temp-left" style="width: 22px">23</div>
|
|
|
- <div class="temp-right" style="width: 22px">28</div>
|
|
|
+ <div class="temp-left" style="width: 22px">
|
|
|
+ {{ floorHeatingData.minTempSet }}
|
|
|
+ </div>
|
|
|
+ <div class="temp-right" style="width: 22px">
|
|
|
+ {{ floorHeatingData.maxTempSet }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -50,16 +64,16 @@
|
|
|
<!--灯控制按钮-->
|
|
|
<div class="line" v-if="navType == 'child'"></div>
|
|
|
<div class="light-box" v-if="navType == 'child'">
|
|
|
- <template v-for="(item, index) in lampList" :key="item.id">
|
|
|
+ <template v-for="(item, index) in floorHeatingList" :key="item.id">
|
|
|
<div
|
|
|
class="light-control"
|
|
|
@click="showFloorHeating(item)"
|
|
|
- v-if="loadMore ? index < lampList.length : index < 2"
|
|
|
+ v-if="loadMore ? index < floorHeatingList.length : index < 2"
|
|
|
>
|
|
|
<div class="control-top">
|
|
|
<div class="control-temp">
|
|
|
- <span>26<sup>℃</sup></span>
|
|
|
- <span>已开启</span>
|
|
|
+ <span>{{ item.tempSet ? item.tempSet : "--" }}<sup>℃</sup></span>
|
|
|
+ <span>{{ item.runStatus ? "已开启" : "已关闭" }}</span>
|
|
|
</div>
|
|
|
<Switch
|
|
|
active-color="$elActiveColor"
|
|
@@ -89,7 +103,7 @@
|
|
|
|
|
|
<div
|
|
|
class="show-all"
|
|
|
- v-if="lampList && lampList.length > 2"
|
|
|
+ v-if="floorHeatingList && floorHeatingList.length > 2"
|
|
|
@click.stop="showAll"
|
|
|
>
|
|
|
<van-icon :name="lightIcon" class="light-icon" />
|
|
@@ -112,8 +126,13 @@ import {
|
|
|
onBeforeUnmount,
|
|
|
} from "vue";
|
|
|
import { Switch, Toast } from "vant";
|
|
|
-import { getLampHttp, getStatusHttp, setallLampHttp } from "@/apis/envmonitor";
|
|
|
-import { parseImgUrl } from "@/utils";
|
|
|
+import {
|
|
|
+ getLampHttp,
|
|
|
+ getStatusHttp,
|
|
|
+ querySapceFloorHeating,
|
|
|
+ setallLampHttp,
|
|
|
+} from "@/apis/envmonitor";
|
|
|
+import { parseImgUrl, setQueryConfig } from "@/utils";
|
|
|
import { type } from "os";
|
|
|
import { onDeactivated } from "vue";
|
|
|
import { AnyMxRecord } from "dns";
|
|
@@ -154,7 +173,8 @@ export default defineComponent({
|
|
|
},
|
|
|
components: { Switch },
|
|
|
setup(props, contx) {
|
|
|
- const lampList: any = [];
|
|
|
+ const floorHeatingList: any = [];
|
|
|
+ let floorHeatingData: any = {};
|
|
|
let lightsStatusTimer: any = null;
|
|
|
const timeOut: any = null;
|
|
|
const initData: any = [];
|
|
@@ -163,7 +183,7 @@ export default defineComponent({
|
|
|
minTempSet: 16,
|
|
|
maxTempSet: 35,
|
|
|
};
|
|
|
- const proxyData: any = reactive({
|
|
|
+ const proxyData = reactive({
|
|
|
seviceEquipmentList: props.seviceEquipmentList,
|
|
|
showLight: props.showLight,
|
|
|
spaceId: props.spaceId,
|
|
@@ -182,7 +202,8 @@ export default defineComponent({
|
|
|
loadingLight: false,
|
|
|
loading: false,
|
|
|
initData: initData,
|
|
|
- lampList: lampList,
|
|
|
+ floorHeatingList: floorHeatingList,
|
|
|
+ floorHeatingData: floorHeatingData,
|
|
|
lightsStatusTimer: lightsStatusTimer,
|
|
|
startCheckLightsTime: 0,
|
|
|
lightColorImg: parseImgUrl("page-officehome", "lightColorControl.svg"),
|
|
@@ -293,30 +314,34 @@ export default defineComponent({
|
|
|
},
|
|
|
// 设置温度条的位置
|
|
|
setBarNowPerstion() {
|
|
|
- proxyData.realTemp = proxyData.heatingTemp;
|
|
|
+ proxyData.realTemp =
|
|
|
+ proxyData.heatingData && proxyData.heatingData.tempSet
|
|
|
+ ? proxyData.heatingData.tempSet
|
|
|
+ : 0;
|
|
|
let barBox: any = document.querySelector("#barFloorId");
|
|
|
if (!barBox) {
|
|
|
return;
|
|
|
}
|
|
|
let sliderBox: any = document.querySelector("#slideFloorId");
|
|
|
if (
|
|
|
+ proxyData.realTemp !== 0 &&
|
|
|
proxyData.heatingTemp >= proxyData.heatingData.minTempSet &&
|
|
|
proxyData.heatingTemp <= proxyData.heatingData.maxTempSet
|
|
|
) {
|
|
|
// 正常温度范围
|
|
|
let left: any =
|
|
|
- (proxyData.heatingTemp - proxyData.heatingData.minTempSet) /
|
|
|
+ (proxyData.realTemp - proxyData.heatingData.minTempSet) /
|
|
|
proxyData.part;
|
|
|
left = Math.floor(left) + 24;
|
|
|
if (barBox) {
|
|
|
barBox.style.left = left + "px";
|
|
|
}
|
|
|
} else {
|
|
|
- if (!proxyData.heatingTemp) {
|
|
|
+ if (!proxyData.realTemp) {
|
|
|
barBox.style.left = 24 + "px";
|
|
|
- } else if (proxyData.heatingTemp < proxyData.heatingData.minTempSet) {
|
|
|
+ } else if (proxyData.realTemp < proxyData.heatingData.minTempSet) {
|
|
|
barBox.style.left = 24 + "px";
|
|
|
- } else if (proxyData.heatingTemp > proxyData.heatingData.maxTempSet) {
|
|
|
+ } else if (proxyData.realTemp > proxyData.heatingData.maxTempSet) {
|
|
|
let sliderWidth: any = sliderBox.offsetWidth;
|
|
|
let barWidth: any = barBox.offsetWidth;
|
|
|
barBox.style.left = sliderWidth - barWidth + "px";
|
|
@@ -365,62 +390,23 @@ export default defineComponent({
|
|
|
return flag;
|
|
|
},
|
|
|
// 获取灯的状态
|
|
|
- getLampList() {
|
|
|
- getLampHttp({ spaceId: proxyData.spaceId })
|
|
|
+ getFloorHeatingList() {
|
|
|
+ // let str: any = setQueryConfig({ spaceId: proxyData.spaceId });
|
|
|
+ let str: any = setQueryConfig({
|
|
|
+ spaceId: "Sp1101080259308f5ed92e964bc1b029038dea962de4",
|
|
|
+ });
|
|
|
+ querySapceFloorHeating(str)
|
|
|
.then((res) => {
|
|
|
const resData: any = res;
|
|
|
- if (!proxyData.setStatus) {
|
|
|
- if (resData && resData.result == "success") {
|
|
|
- let content = resData?.content ?? [];
|
|
|
- let lampOpen = false; // 如果有一个开 则总灯开
|
|
|
- for (let i = 0; i < content.length; i++) {
|
|
|
- content[i].type = "lamp";
|
|
|
- if (content[i].lightType == 1) {
|
|
|
- content[i].imgOpen = parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "lamp_open.png"
|
|
|
- );
|
|
|
- content[i].imgClose = parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "lamp_close.png"
|
|
|
- );
|
|
|
- } else {
|
|
|
- content[i].imgOpen = parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "atmLamp_small_open.png"
|
|
|
- );
|
|
|
- content[i].imgClose = parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "atmLamp_small_close.png"
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- content[i].switch = content[i].runStatus ? true : false;
|
|
|
- if (content[i].runStatus) {
|
|
|
- lampOpen = true;
|
|
|
- }
|
|
|
- content[i].loading = false;
|
|
|
- }
|
|
|
- proxyData.initData = JSON.parse(JSON.stringify(content)); // 灯的数据
|
|
|
- proxyData.lampSw = lampOpen; // 主灯开关
|
|
|
- proxyData.lampList = content;
|
|
|
-
|
|
|
- proxyData.lightImg = proxyData.lampSw
|
|
|
- ? parseImgUrl("page-officehome", "lamp_open.png")
|
|
|
- : parseImgUrl("page-officehome", "lamp_close.png");
|
|
|
- if (content[0]) {
|
|
|
- if (content[0].lightType !== 1) {
|
|
|
- proxyData.lightImg = proxyData.lampSw
|
|
|
- ? parseImgUrl("page-officehome", "atmLamp_small_open.png")
|
|
|
- : parseImgUrl(
|
|
|
- "page-officehome",
|
|
|
- "atmLamp_small_close.png"
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ const data: any = res?.data ?? {};
|
|
|
+ proxyData.floorHeatingData = data;
|
|
|
+ if (data.equipList && data.equipList.length) {
|
|
|
+ proxyData.floorHeatingList = data.equipList;
|
|
|
}
|
|
|
- // console.log("执行了----====");
|
|
|
+ nextTick(() => {
|
|
|
+ proxyData.endBoxSwiper();
|
|
|
+ proxyData.setBarNowPerstion();
|
|
|
+ });
|
|
|
proxyData.startLightsStatusTimer();
|
|
|
})
|
|
|
.catch(() => {
|
|
@@ -433,7 +419,7 @@ export default defineComponent({
|
|
|
// debugger
|
|
|
if (type === "allLamp") {
|
|
|
let isExeSpaceTime: Boolean = proxyData.checkDeviceIsExeSpaceTime(
|
|
|
- proxyData.lampList
|
|
|
+ proxyData.floorHeatingList
|
|
|
);
|
|
|
if (item !== "") {
|
|
|
proxyData.lampSw = item; // 点击全开和全关的时候item动态传值true或者false
|
|
@@ -538,16 +524,16 @@ export default defineComponent({
|
|
|
// 报错后关闭灯的loading
|
|
|
initLampLoading() {
|
|
|
proxyData.loadingLight = false;
|
|
|
- proxyData.lampList.map((item: any) => {
|
|
|
+ proxyData.floorHeatingList.map((item: any) => {
|
|
|
item.loading = false;
|
|
|
});
|
|
|
},
|
|
|
//手动修改灯的状态
|
|
|
updateAllLampStatus(statusFlag: any) {
|
|
|
proxyData.lampSw = statusFlag;
|
|
|
- for (let i = 0; i < proxyData.lampList.length; i++) {
|
|
|
- proxyData.lampList[i].switch = statusFlag;
|
|
|
- // if (proxyData.lampList[i].type == 'lamp') {
|
|
|
+ for (let i = 0; i < proxyData.floorHeatingList.length; i++) {
|
|
|
+ proxyData.floorHeatingList[i].switch = statusFlag;
|
|
|
+ // if (proxyData.floorHeatingList[i].type == 'lamp') {
|
|
|
// }
|
|
|
}
|
|
|
},
|
|
@@ -555,9 +541,9 @@ export default defineComponent({
|
|
|
updateLampStatus(item: any, statusFlag: any) {
|
|
|
item.switch = statusFlag;
|
|
|
// let flag: any = true
|
|
|
- // for (let i = 0; i < proxyData.lampList.length; i++) {
|
|
|
- // if (proxyData.lampList[i].type == 'lamp') {
|
|
|
- // if (proxyData.lampList[i].switch !== statusFlag) {
|
|
|
+ // for (let i = 0; i < proxyData.floorHeatingList.length; i++) {
|
|
|
+ // if (proxyData.floorHeatingList[i].type == 'lamp') {
|
|
|
+ // if (proxyData.floorHeatingList[i].switch !== statusFlag) {
|
|
|
// flag = false
|
|
|
// break
|
|
|
// }
|
|
@@ -580,7 +566,7 @@ export default defineComponent({
|
|
|
// 当个的时候修改loading的状态
|
|
|
proxyData.updateLampLoading(index);
|
|
|
}
|
|
|
- proxyData.getLampList();
|
|
|
+ proxyData.getFloorHeatingList();
|
|
|
}
|
|
|
if (checkData["processing"] && checkData["processing"].length) {
|
|
|
let checkParams: any = proxyData.lightParams;
|
|
@@ -649,16 +635,16 @@ export default defineComponent({
|
|
|
},
|
|
|
// 操作成功后更新所有灯的真实状态
|
|
|
updateAllLampLoading(arr: any) {
|
|
|
- for (let i = 0; i < proxyData.lampList.length; i++) {
|
|
|
- if (proxyData.lampList[i].type == "lamp") {
|
|
|
+ for (let i = 0; i < proxyData.floorHeatingList.length; i++) {
|
|
|
+ if (proxyData.floorHeatingList[i].type == "lamp") {
|
|
|
arr.map((item: any) => {
|
|
|
- if (proxyData.lampList[i].id === item.id) {
|
|
|
- proxyData.lampList[i].loading = false;
|
|
|
+ if (proxyData.floorHeatingList[i].id === item.id) {
|
|
|
+ proxyData.floorHeatingList[i].loading = false;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
- let loadingLen = proxyData.lampList.filter((item: any) => {
|
|
|
+ let loadingLen = proxyData.floorHeatingList.filter((item: any) => {
|
|
|
return item.loading;
|
|
|
});
|
|
|
if (loadingLen.length === 0) {
|
|
@@ -667,7 +653,7 @@ export default defineComponent({
|
|
|
},
|
|
|
// 动态切换主灯的状态
|
|
|
updateLampLoading(index: any) {
|
|
|
- proxyData.lampList[index].loading = false;
|
|
|
+ proxyData.floorHeatingList[index].loading = false;
|
|
|
},
|
|
|
// 灯的指令完成后更新状态
|
|
|
checkChangeLightStatusSuccess(
|
|
@@ -690,16 +676,19 @@ export default defineComponent({
|
|
|
proxyData.lightsStatusTimer = null;
|
|
|
},
|
|
|
// 定时刷新接口
|
|
|
- startLightsStatusTimer(timerLen: any = 2000) {
|
|
|
+ startLightsStatusTimer(timerLen: any = 15000) {
|
|
|
proxyData.clearLightStatusTimer();
|
|
|
proxyData.lightsStatusTimer = setTimeout(() => {
|
|
|
proxyData.clearLightStatusTimer();
|
|
|
- proxyData.getLampList();
|
|
|
+ proxyData.getFloorHeatingList();
|
|
|
}, timerLen);
|
|
|
},
|
|
|
});
|
|
|
const isShowChildLight: any = computed(() => {
|
|
|
- return proxyData.lampList.length && proxyData.lampList.length > 1;
|
|
|
+ return (
|
|
|
+ proxyData.floorHeatingList.length &&
|
|
|
+ proxyData.floorHeatingList.length > 1
|
|
|
+ );
|
|
|
});
|
|
|
// onDeactivated(()=>{
|
|
|
// destroyWatch()
|
|
@@ -722,9 +711,9 @@ export default defineComponent({
|
|
|
// 清除原始数据
|
|
|
proxyData.clearLightStatusTimer();
|
|
|
proxyData.loadMore = false;
|
|
|
- proxyData.lampList = [];
|
|
|
+ proxyData.floorHeatingList = [];
|
|
|
proxyData.spaceId = newProps[1];
|
|
|
- proxyData.getLampList();
|
|
|
+ proxyData.getFloorHeatingList();
|
|
|
}
|
|
|
},
|
|
|
{
|
|
@@ -739,13 +728,7 @@ export default defineComponent({
|
|
|
|
|
|
onMounted(() => {
|
|
|
// proxyData.clearLightStatusTimer();
|
|
|
- proxyData.getLampList();
|
|
|
- nextTick(() => {
|
|
|
- setTimeout(() => {
|
|
|
- proxyData.endBoxSwiper();
|
|
|
- proxyData.setBarNowPerstion();
|
|
|
- }, 3000);
|
|
|
- });
|
|
|
+ proxyData.getFloorHeatingList();
|
|
|
});
|
|
|
return {
|
|
|
isShowChildLight,
|
|
@@ -835,16 +818,11 @@ export default defineComponent({
|
|
|
height: 28px;
|
|
|
line-height: 14px;
|
|
|
color: #424c59;
|
|
|
- &:nth-child(1) {
|
|
|
- border: 1px solid #e1e5eb;
|
|
|
- border-radius: 21px;
|
|
|
- }
|
|
|
- &:nth-child(2) {
|
|
|
- // padding-left: 0px;
|
|
|
- }
|
|
|
}
|
|
|
.nav-active {
|
|
|
background: #fff;
|
|
|
+ border: 1px solid #e1e5eb;
|
|
|
+ border-radius: 21px;
|
|
|
}
|
|
|
}
|
|
|
.switch-btn {
|