Browse Source

1.风柜监测系统两个页面-添加每个点位是否正常采集的数据

2.风柜监测系统新增三个风阀的远程手自动状态和手动调节频率
3.中央空调-监控详情,添加偏移值定时设置功能
meizhou
selia-zx 4 days ago
parent
commit
f4d65ef7d5
  1. 581
      src/views/aircAndWindc/awSysMonitor/components/damperMonitor.vue
  2. 56
      src/views/aircAndWindc/awSysMonitor/components/normalMonitor.vue
  3. 487
      src/views/centerairC/sysMonitor/hostDetails.vue
  4. 20
      src/views/index.vue

581
src/views/aircAndWindc/awSysMonitor/components/damperMonitor.vue

@ -72,7 +72,7 @@
/> />
</div> </div>
<div class="wind-tem1" v-if="isObjectValid(backAirObj)"> <div class="wind-tem1" v-if="isObjectValid(backAirObj)">
<div class="wind-text">回风温度</div> <div :class="getTextClass(backAirObj, 'wind-text')">回风温度</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -92,7 +92,9 @@
></el-form> ></el-form>
</div> </div>
<div class="wind-tem1-set" v-if="isObjectValid(backAirObjSet)"> <div class="wind-tem1-set" v-if="isObjectValid(backAirObjSet)">
<div class="wind-text">回风温度设置</div> <div :class="getTextClass(backAirObjSet, 'wind-text')">
回风温度设置
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -110,10 +112,15 @@
</el-input> </el-form-item </el-input> </el-form-item
></el-form> ></el-form>
</div> </div>
<div class="wind-tem2" v-if="isObjectValid(damperOneObj)"> <div class="dampers-name1">宴会一厅风阀</div>
<div class="wind-text">宴会一厅风阀反馈</div> <div class="dampers-position1" v-if="isObjectValid(damperOneBackObj)">
<div class="back-text">{{ damperOneBackObj.collectValue }}%</div> <div :class="getTextClass(damperOneBackObj, 'wind-text')">反馈</div>
<div class="wind-text">调节</div> <div :class="getTextClass(damperOneBackObj, 'back-text')">
{{ damperOneBackObj.collectValue }}%
</div>
</div>
<div class="dampers-position2" v-if="isObjectValid(damperOneObj)">
<div :class="getTextClass(damperOneObj, 'wind-text')">自动调节</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -133,10 +140,56 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="wind-tem3" v-if="isObjectValid(damperTwoObj)"> <div class="dampers-position3" v-if="isObjectValid(damperOneRemoteObj)">
<div class="wind-text">餐厅风阀反馈</div> <div :class="getTextClass(damperOneRemoteObj, 'wind-text')">
<div class="back-text">{{ damperTwoBackObj.collectValue }}%</div> 远程手自动
<div class="wind-text">调节</div> </div>
<el-switch
style="display: block"
v-model="damperOneRemoteObj.collectValue"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="手动"
inactive-text="自动"
@change="handleControlText(damperOneRemoteObj,'手动','自动')"
>
</el-switch>
</div>
<div class="dampers-position4" v-if="isObjectValid(damperOneManualObj)">
<div :class="getTextClass(damperOneManualObj, 'wind-text')">
手动调节
</div>
<el-form @submit.native.prevent>
<el-form-item>
<el-input
style="width: 1.2rem"
@keyup.enter.native="
handleEnter(damperOneManualObj, $event, '%')
"
@input="handleInput(damperOneManualObj)"
@blur="handleBlur()"
v-model="damperOneManualObj.collectValue"
size="mini"
:disabled="damperOneRemoteObj.collectValue"
>
<svg-icon
slot="prefix"
icon-class="percentage-icon"
class="percentage-icon"
/>
</el-input>
</el-form-item>
</el-form>
</div>
<div class="dampers-name2">餐厅风阀</div>
<div class="dampers-position6" v-if="isObjectValid(damperTwoBackObj)">
<div :class="getTextClass(damperTwoBackObj, 'wind-text')">反馈</div>
<div :class="getTextClass(damperTwoBackObj, 'back-text')">
{{ damperTwoBackObj.collectValue }}%
</div>
</div>
<div class="dampers-position7" v-if="isObjectValid(damperTwoObj)">
<div :class="getTextClass(damperTwoObj, 'wind-text')">自动调节</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -156,10 +209,63 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="wind-tem4" v-if="isObjectValid(damperThreeObj)"> <div class="dampers-position8" v-if="isObjectValid(damperTwoRemoteObj)">
<div class="wind-text">会议风阀反馈</div> <div :class="getTextClass(damperTwoRemoteObj, 'wind-text')">
<div class="back-text">{{ damperThreeBackObj.collectValue }}%</div> 远程手自动
<div class="wind-text">调节</div> </div>
<el-switch
style="display: block"
v-model="damperTwoRemoteObj.collectValue"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="手动"
inactive-text="自动"
@change="handleControlText(damperTwoRemoteObj,'手动','自动')"
>
</el-switch>
</div>
<div class="dampers-position9" v-if="isObjectValid(damperTwoManualObj)">
<div :class="getTextClass(damperTwoManualObj, 'wind-text')">
手动调节
</div>
<el-form @submit.native.prevent>
<el-form-item>
<el-input
style="width: 1.2rem"
@keyup.enter.native="
handleEnter(damperTwoManualObj, $event, '%')
"
@input="handleInput(damperTwoManualObj)"
@blur="handleBlur()"
v-model="damperTwoManualObj.collectValue"
size="mini"
:disabled="damperTwoRemoteObj.collectValue"
>
<svg-icon
slot="prefix"
icon-class="percentage-icon"
class="percentage-icon"
/>
</el-input>
</el-form-item>
</el-form>
</div>
<div class="dampers-name3">会议风阀</div>
<div
class="dampers-position10"
v-if="isObjectValid(damperThreeBackObj)"
>
<div :class="getTextClass(damperThreeBackObj, 'wind-text')">
反馈
</div>
<div :class="getTextClass(damperThreeBackObj, 'back-text')">
{{ damperThreeBackObj.collectValue }}%
</div>
</div>
<div class="dampers-position11" v-if="isObjectValid(damperThreeObj)">
<div :class="getTextClass(damperThreeObj, 'wind-text')">
自动调节
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -179,13 +285,62 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div
class="dampers-position12"
v-if="isObjectValid(damperThreeRemoteObj)"
>
<div :class="getTextClass(damperThreeRemoteObj, 'wind-text')">
远程手自动
</div>
<el-switch
style="display: block"
v-model="damperThreeRemoteObj.collectValue"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="手动"
inactive-text="自动"
@change="handleControlText(damperThreeRemoteObj,'手动','自动')"
>
</el-switch>
</div>
<div
class="dampers-position13"
v-if="isObjectValid(damperThreeManualObj)"
>
<div :class="getTextClass(damperThreeManualObj, 'wind-text')">
手动调节
</div>
<el-form @submit.native.prevent>
<el-form-item>
<el-input
style="width: 1.2rem"
@keyup.enter.native="
handleEnter(damperThreeManualObj, $event, '%')
"
@input="handleInput(damperThreeManualObj)"
@blur="handleBlur()"
v-model="damperThreeManualObj.collectValue"
size="mini"
:disabled="damperThreeRemoteObj.collectValue"
>
<svg-icon
slot="prefix"
icon-class="percentage-icon"
class="percentage-icon"
/>
</el-input>
</el-form-item>
</el-form>
</div>
<div class="fan-satatus3"> <div class="fan-satatus3">
<div <div
class="context-li" class="context-li"
v-if="isObjectValid(startStopObj)" v-if="isObjectValid(startStopObj)"
style="width: 2.4rem" style="width: 2.4rem"
> >
<div class="wind-text">启停选择:</div> <div :class="getTextClass(startStopObj, 'wind-text')">
启停选择:
</div>
<el-select <el-select
size="mini" size="mini"
v-model="startStopObj.collectValue" v-model="startStopObj.collectValue"
@ -208,7 +363,9 @@
class="context-li" class="context-li"
v-if="isObjectValid(remoteManualObj) && startStopValue === 0" v-if="isObjectValid(remoteManualObj) && startStopValue === 0"
> >
<div class="wind-text">远程手动启停:</div> <div :class="getTextClass(remoteManualObj, 'wind-text')">
远程手动启停:
</div>
<el-switch <el-switch
style="display: block" style="display: block"
v-model="remoteManualObj.collectValue" v-model="remoteManualObj.collectValue"
@ -216,7 +373,7 @@
inactive-color="#ff4949" inactive-color="#ff4949"
active-text="开启" active-text="开启"
inactive-text="停止" inactive-text="停止"
@change="handleControlText(remoteManualObj)" @change="handleControlText(remoteManualObj,'开启','停止')"
:disabled="automaticObj.collectValue" :disabled="automaticObj.collectValue"
> >
</el-switch> </el-switch>
@ -225,7 +382,9 @@
class="context-li" class="context-li"
v-if="isObjectValid(timeScheduleObj) && startStopValue === 1" v-if="isObjectValid(timeScheduleObj) && startStopValue === 1"
> >
<div class="wind-text">时间表启停:</div> <div :class="getTextClass(timeScheduleObj, 'wind-text')">
时间表启停:
</div>
<el-switch <el-switch
style="display: block" style="display: block"
v-model="timeScheduleObj.collectValue" v-model="timeScheduleObj.collectValue"
@ -233,7 +392,7 @@
inactive-color="#ff4949" inactive-color="#ff4949"
active-text="开启" active-text="开启"
inactive-text="停止" inactive-text="停止"
@change="handleControlText(timeScheduleObj)" @change="handleControlText(timeScheduleObj,'开启','停止')"
:disabled="automaticObj.collectValue" :disabled="automaticObj.collectValue"
> >
</el-switch> </el-switch>
@ -243,7 +402,9 @@
v-if="isObjectValid(openingBackObj)" v-if="isObjectValid(openingBackObj)"
style="width: 2.4rem" style="width: 2.4rem"
> >
<div class="wind-text">风阀开度设置:</div> <div :class="getTextClass(openingBackObj, 'wind-text')">
风阀开度设置:
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -263,29 +424,35 @@
</el-form> </el-form>
</div> </div>
<div class="context-li" v-if="isObjectValid(faultAlarmObj)"> <div class="context-li" v-if="isObjectValid(faultAlarmObj)">
<div class="wind-text">风机故障状态:</div> <div :class="getTextClass(faultAlarmObj, 'wind-text')">
风机故障状态:
</div>
<div class="badStautus" v-if="faultAlarmObj.collectValue">故障</div> <div class="badStautus" v-if="faultAlarmObj.collectValue">故障</div>
<div class="goodStautus" v-else>正常</div> <div class="goodStautus" v-else>正常</div>
</div> </div>
<div class="context-li" v-if="isObjectValid(runStatusObj)"> <div class="context-li" v-if="isObjectValid(runStatusObj)">
<div class="wind-text">风机运行状态:</div> <div :class="getTextClass(runStatusObj, 'wind-text')">
风机运行状态:
</div>
<div class="goodStautus" v-if="runStatusObj.collectValue">运行</div> <div class="goodStautus" v-if="runStatusObj.collectValue">运行</div>
<div class="noneStautus" v-else>不运行</div> <div class="noneStautus" v-else>不运行</div>
</div> </div>
<div class="context-li" v-if="isObjectValid(pressureObj)"> <div class="context-li" v-if="isObjectValid(pressureObj)">
<div class="wind-text">风机压差:</div> <div :class="getTextClass(pressureObj, 'wind-text')">风机压差:</div>
<div class="badStautus" v-if="pressureObj.collectValue">故障</div> <div class="badStautus" v-if="pressureObj.collectValue">故障</div>
<div class="goodStautus" v-else>正常</div> <div class="goodStautus" v-else>正常</div>
</div> </div>
</div> </div>
<div class="fan-satatus1"> <div class="fan-satatus1">
<div class="context-li" v-if="isObjectValid(automaticObj)"> <div class="context-li" v-if="isObjectValid(automaticObj)">
<div class="wind-text">风机手自动状态:</div> <div :class="getTextClass(automaticObj, 'wind-text')">
风机手自动状态:
</div>
<div class="noneStautus" v-if="automaticObj.collectValue">手动</div> <div class="noneStautus" v-if="automaticObj.collectValue">手动</div>
<div class="goodStautus" v-else>自动</div> <div class="goodStautus" v-else>自动</div>
</div> </div>
<!-- <div class="context-li" v-if="isObjectValid(startControlObj)"> <!-- <div class="context-li" v-if="isObjectValid(startControlObj)">
<div class="wind-text">风机启停控制</div> <div :class="getTextClass(startControlObj, 'wind-text')">风机启停控制</div>
<el-switch <el-switch
style="display: block" style="display: block"
v-model="startControlObj.collectValue" v-model="startControlObj.collectValue"
@ -293,22 +460,28 @@
inactive-color="#ff4949" inactive-color="#ff4949"
active-text="开启" active-text="开启"
inactive-text="停止" inactive-text="停止"
@change="handleControlText(startControlObj)" @change="handleControlText(startControlObj,'开启','停止')"
> >
</el-switch> </el-switch>
</div> --> </div> -->
<div class="context-li" v-if="isObjectValid(damperHzBackObj)"> <div class="context-li" v-if="isObjectValid(damperHzBackObj)">
<div class="wind-text">风机频率反馈:</div> <div :class="getTextClass(damperHzBackObj, 'wind-text')">
风机频率反馈:
</div>
<div>{{ damperHzBackObj.collectValue }}Hz</div> <div>{{ damperHzBackObj.collectValue }}Hz</div>
</div> </div>
<div class="context-li" v-if="isObjectValid(damperHzObj)"> <div class="context-li" v-if="isObjectValid(damperHzObj)">
<div class="wind-text">风机频率调节:</div> <div :class="getTextClass(damperHzObj, 'wind-text')">
风机频率调节:
</div>
<div>{{ Math.floor(damperHzObj.collectValue / 2) }}Hz</div> <div>{{ Math.floor(damperHzObj.collectValue / 2) }}Hz</div>
</div> </div>
</div> </div>
<div class="fan-satatus2"> <div class="fan-satatus2">
<div class="context-li" v-if="isObjectValid(waterValveObj)"> <div class="context-li" v-if="isObjectValid(waterValveObj)">
<div class="wind-text">水阀反馈</div> <div :class="getTextClass(waterValveObj, 'wind-text')">
水阀反馈
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -331,7 +504,9 @@
</div> </div>
<div class="fan-satatus2-set"> <div class="fan-satatus2-set">
<div class="context-li" v-if="isObjectValid(waterValveObjSet)"> <div class="context-li" v-if="isObjectValid(waterValveObjSet)">
<div class="wind-text">水阀调节</div> <div :class="getTextClass(waterValveObjSet, 'wind-text')">
水阀调节
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -360,7 +535,9 @@
v-if="isObjectValid(modeChangeObj)" v-if="isObjectValid(modeChangeObj)"
style="width: 2.4rem" style="width: 2.4rem"
> >
<div class="wind-text">模式选择:</div> <div :class="getTextClass(modeChangeObj, 'wind-text')">
模式选择:
</div>
<el-select <el-select
size="mini" size="mini"
v-model="modeChangeObj.collectValue" v-model="modeChangeObj.collectValue"
@ -380,7 +557,9 @@
</el-select> </el-select>
</div> </div>
<div class="context-li" v-if="isObjectValid(modeOneObj)"> <div class="context-li" v-if="isObjectValid(modeOneObj)">
<div class="wind-text">宴会一厅模式-频率设定:</div> <div :class="getTextClass(modeOneObj, 'wind-text')">
宴会一厅模式-频率设定:
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -401,7 +580,9 @@
</el-form> </el-form>
</div> </div>
<div class="context-li" v-if="isObjectValid(modeTwoObj)"> <div class="context-li" v-if="isObjectValid(modeTwoObj)">
<div class="wind-text">餐厅模式-频率设定:</div> <div :class="getTextClass(modeTwoObj, 'wind-text')">
餐厅模式-频率设定:
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -422,7 +603,9 @@
</el-form> </el-form>
</div> </div>
<div class="context-li" v-if="isObjectValid(modeThreeObj)"> <div class="context-li" v-if="isObjectValid(modeThreeObj)">
<div class="wind-text">会议模式-频率设定:</div> <div :class="getTextClass(modeThreeObj, 'wind-text')">
会议模式-频率设定:
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -443,7 +626,9 @@
</el-form> </el-form>
</div> </div>
<div class="context-li" v-if="isObjectValid(modeFourObj)"> <div class="context-li" v-if="isObjectValid(modeFourObj)">
<div class="wind-text">全开模式-频率设定:</div> <div :class="getTextClass(modeFourObj, 'wind-text')">
全开模式-频率设定:
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -468,7 +653,11 @@
<div <div
class="offClass" class="offClass"
@click="handleOneKeyButton(remoteManualObj, '远程手动停止')" @click="handleOneKeyButton(remoteManualObj, '远程手动停止')"
v-if="isObjectValid(remoteManualObj) && startStopValue === 0 && !automaticObj.collectValue" v-if="
isObjectValid(remoteManualObj) &&
startStopValue === 0 &&
!automaticObj.collectValue
"
> >
<div v-if="remoteManualObj.collectValue" class="off-bg on-animation"> <div v-if="remoteManualObj.collectValue" class="off-bg on-animation">
运行 运行
@ -479,7 +668,11 @@
<div <div
class="offClass" class="offClass"
@click="handleOneKeyButton(timeScheduleObj, '时间表停止')" @click="handleOneKeyButton(timeScheduleObj, '时间表停止')"
v-if="isObjectValid(timeScheduleObj) && startStopValue === 1 && !automaticObj.collectValue" v-if="
isObjectValid(timeScheduleObj) &&
startStopValue === 1 &&
!automaticObj.collectValue
"
> >
<div v-if="timeScheduleObj.collectValue" class="off-bg on-animation"> <div v-if="timeScheduleObj.collectValue" class="off-bg on-animation">
运行 运行
@ -615,6 +808,12 @@ export default {
damperOneBackObj: {}, //1 damperOneBackObj: {}, //1
damperTwoBackObj: {}, //2 damperTwoBackObj: {}, //2
damperThreeBackObj: {}, //3 damperThreeBackObj: {}, //3
damperOneRemoteObj: {}, //1
damperTwoRemoteObj: {}, //2
damperThreeRemoteObj: {}, //3
damperOneManualObj: {}, //1
damperTwoManualObj: {}, //2
damperThreeManualObj: {}, //3
openingBackObj: {}, // openingBackObj: {}, //
startStopObj: {}, // startStopObj: {}, //
remoteManualObj: {}, // remoteManualObj: {}, //
@ -786,6 +985,12 @@ export default {
this.damperOneBackObj = {}; //1 this.damperOneBackObj = {}; //1
this.damperTwoBackObj = {}; //2 this.damperTwoBackObj = {}; //2
this.damperThreeBackObj = {}; //3 this.damperThreeBackObj = {}; //3
this.damperOneRemoteObj = {}; //1
this.damperTwoRemoteObj = {}; //2
this.damperThreeRemoteObj = {}; //3
this.damperOneManualObj = {}; //1
this.damperTwoManualObj = {}; //2
this.damperThreeManualObj = {}; //3
this.openingBackObj = {}; // this.openingBackObj = {}; //
this.startStopObj = {}; // this.startStopObj = {}; //
this.remoteManualObj = {}; // this.remoteManualObj = {}; //
@ -913,6 +1118,54 @@ export default {
) { ) {
this.damperThreeBackObj = item; this.damperThreeBackObj = item;
} }
//1 01
else if (
item.paramType === "2" &&
item.collectName.includes("1号风阀远程手自动")
) {
this.damperOneRemoteObj = item;
this.damperOneRemoteObj.collectValue =
Number(item.collectValue) == 1 ? true : false;
}
//2
else if (
item.paramType === "2" &&
item.collectName.includes("2号风阀远程手自动")
) {
this.damperTwoRemoteObj = item;
this.damperTwoRemoteObj.collectValue =
Number(item.collectValue) == 1 ? true : false;
}
//3
else if (
item.paramType === "2" &&
item.collectName.includes("3号风阀远程手自动")
) {
this.damperThreeRemoteObj = item;
this.damperThreeRemoteObj.collectValue =
Number(item.collectValue) == 1 ? true : false;
}
//1
else if (
item.paramType === "3" &&
item.collectName.includes("1号风阀手动调节")
) {
this.damperOneManualObj = item;
}
//2
else if (
item.paramType === "3" &&
item.collectName.includes("2号风阀手动调节")
) {
this.damperTwoManualObj = item;
}
//3
else if (
item.paramType === "3" &&
item.collectName.includes("3号风阀手动调节")
) {
this.damperThreeManualObj = item;
}
// //
else if ( else if (
item.paramType === "3" && item.paramType === "3" &&
@ -1067,6 +1320,12 @@ export default {
this.damperOneBackObj = {}; //1 this.damperOneBackObj = {}; //1
this.damperTwoBackObj = {}; //2 this.damperTwoBackObj = {}; //2
this.damperThreeBackObj = {}; //3 this.damperThreeBackObj = {}; //3
this.damperOneRemoteObj = {}; //1
this.damperTwoRemoteObj = {}; //2
this.damperThreeRemoteObj = {}; //3
this.damperOneManualObj = {}; //1
this.damperTwoManualObj = {}; //2
this.damperThreeManualObj = {}; //3
this.openingBackObj = {}; // this.openingBackObj = {}; //
this.startStopObj = {}; // this.startStopObj = {}; //
this.remoteManualObj = {}; // this.remoteManualObj = {}; //
@ -1094,6 +1353,11 @@ export default {
}); });
} }
}, },
// quality
getTextClass(obj, claseName) {
// console.log("quality······",obj.collectName, obj.quality);
return [claseName, obj.quality !== "0" ? "alarm-text" : ""];
},
// //
handleInput(item) { handleInput(item) {
console.log("校验"); console.log("校验");
@ -1188,9 +1452,9 @@ export default {
}); });
}, },
/// ///
handleControlText(item) { handleControlText(item, name1, name2) {
this.$confirm( this.$confirm(
`确定要切换设备的状态为:${item.collectValue ? "开启" : "停止 吗?"}`, `确定要切换设备的状态为:${item.collectValue ? name1 : name2}吗?`,
"提示", "提示",
{ {
confirmButtonText: "确定", confirmButtonText: "确定",
@ -1737,12 +2001,146 @@ export default {
margin-bottom: 0.15rem; margin-bottom: 0.15rem;
} }
} }
.wind-tem2 { .dampers-name1 {
z-index: 10;
position: absolute;
top: 1.5rem;
left: 10.1rem;
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
font-weight: bold;
}
.dampers-position1 {
z-index: 10;
// width: 3.8rem;
position: absolute;
top: 1.1rem;
left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position2 {
z-index: 10;
// width: 3.8rem;
position: absolute;
top: 1.45rem;
left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position3 {
z-index: 10;
width: 3rem;
position: absolute;
top: 1.85rem;
left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position4 {
z-index: 10; z-index: 10;
// width: 3.8rem; // width: 3.8rem;
position: absolute; position: absolute;
top: 2.2rem; top: 2.2rem;
left: 10.55rem; left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-name2 {
z-index: 10;
position: absolute;
top: 3.3rem;
left: 10.3rem;
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
font-weight: bold;
}
.dampers-position6 {
z-index: 10;
// width: 3.57rem;
position: absolute;
top: 2.9rem;
left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position7 {
z-index: 10;
// width: 3.57rem;
position: absolute;
top: 3.25rem;
left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position8 {
z-index: 10;
width: 3rem;
position: absolute;
top: 3.7rem;
left: 12rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
@ -1756,12 +2154,41 @@ export default {
margin-right: 0.1rem; margin-right: 0.1rem;
} }
} }
.wind-tem3 { .dampers-position9 {
z-index: 10; z-index: 10;
// width: 3.57rem; // width: 3.57rem;
position: absolute; position: absolute;
top: 4.1rem; top: 4.1rem;
left: 10.55rem; left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-name3 {
z-index: 10;
position: absolute;
top: 5.2rem;
left: 10.45rem;
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
font-weight: bold;
}
.dampers-position10 {
z-index: 10;
// width: 3.57rem;
position: absolute;
top: 4.8rem;
left: 12rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
@ -1775,12 +2202,50 @@ export default {
margin-right: 0.1rem; margin-right: 0.1rem;
} }
} }
.wind-tem4 { .dampers-position11 {
z-index: 10; z-index: 10;
// width: 3.57rem; // width: 3.57rem;
position: absolute; position: absolute;
top: 5.9rem; top: 5.15rem;
left: 10.55rem; left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position12 {
z-index: 10;
width: 3rem;
position: absolute;
top: 5.6rem;
left: 12rem;
display: flex;
flex-direction: row;
align-items: center;
font-size: 0.18rem;
.wind-text {
color: #00d2ff;
font-size: 0.18rem;
white-space: nowrap;
}
.back-text {
margin-right: 0.1rem;
}
}
.dampers-position13 {
z-index: 10;
// width: 3.57rem;
position: absolute;
top: 6rem;
left: 12rem;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
@ -2220,6 +2685,13 @@ export default {
.device-li { .device-li {
position: relative; position: relative;
} }
/* 报警文字样式 */
.alarm-text {
color: red !important;
animation: blink 1s infinite;
}
// 2000px // 2000px
@media (min-width: 2000px) { @media (min-width: 2000px) {
.device-container { .device-container {
@ -2277,6 +2749,15 @@ export default {
font-size: 15px !important; font-size: 15px !important;
} }
} }
.dampers-position2 {
top: 1.3rem !important;
}
.dampers-position7 {
top: 3.1rem !important;
}
.dampers-position11 {
top: 5rem !important;
}
} }
</style> </style>
<style scoped> <style scoped>
@ -2315,6 +2796,13 @@ export default {
.windC >>> .el-form-item--medium .el-form-item__content { .windC >>> .el-form-item--medium .el-form-item__content {
line-height: 0 !important; line-height: 0 !important;
} }
.windC >>> .el-switch {
display: flex !important;
flex-wrap: nowrap !important;
}
.windC >>> .el-switch__label {
white-space: nowrap !important;
}
/* 手机端样式 */ /* 手机端样式 */
@media (min-width: 0px) and (max-width: 990px) { @media (min-width: 0px) and (max-width: 990px) {
.windC >>> .el-input--mini .el-input__inner { .windC >>> .el-input--mini .el-input__inner {
@ -2343,6 +2831,7 @@ export default {
.windC >>> .el-switch__core:after { .windC >>> .el-switch__core:after {
width: 0.16rem !important; width: 0.16rem !important;
height: 0.16rem !important; height: 0.16rem !important;
top: 0.01rem !important;
} }
.windC >>> .el-switch.is-checked .el-switch__core::after { .windC >>> .el-switch.is-checked .el-switch__core::after {
margin-left: -0.17rem !important; margin-left: -0.17rem !important;

56
src/views/aircAndWindc/awSysMonitor/components/normalMonitor.vue

@ -72,7 +72,7 @@
/> />
</div> </div>
<div class="wind-tem1" v-if="isObjectValid(airSupplyObj)"> <div class="wind-tem1" v-if="isObjectValid(airSupplyObj)">
<div class="wind-text">实际回风温度</div> <div :class="getTextClass(backAirObj, 'wind-text')">实际回风温度</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -92,7 +92,9 @@
></el-form> ></el-form>
</div> </div>
<div class="wind-tem1-set" v-if="isObjectValid(airSupplyObj)"> <div class="wind-tem1-set" v-if="isObjectValid(airSupplyObj)">
<div class="wind-text">回风温度设置</div> <div :class="getTextClass(backAirObjSet, 'wind-text')">
回风温度设置
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -111,7 +113,7 @@
></el-form> ></el-form>
</div> </div>
<div class="wind-tem2" v-if="isObjectValid(airSupplyObj)"> <div class="wind-tem2" v-if="isObjectValid(airSupplyObj)">
<div class="wind-text">送风温度</div> <div :class="getTextClass(airSupplyObj, 'wind-text')">送风温度</div>
<el-input <el-input
@keyup.enter.native="handleEnter(airSupplyObj, $event, '℃')" @keyup.enter.native="handleEnter(airSupplyObj, $event, '℃')"
@input="handleInput(airSupplyObj)" @input="handleInput(airSupplyObj)"
@ -125,17 +127,21 @@
</div> </div>
<div class="fan-satatus3"> <div class="fan-satatus3">
<div class="context-li" v-if="isObjectValid(faultAlarmObj)"> <div class="context-li" v-if="isObjectValid(faultAlarmObj)">
<div class="wind-text">风机故障状态:</div> <div :class="getTextClass(faultAlarmObj, 'wind-text')">
风机故障状态:
</div>
<div class="badStautus" v-if="faultAlarmObj.collectValue">故障</div> <div class="badStautus" v-if="faultAlarmObj.collectValue">故障</div>
<div class="goodStautus" v-else>正常</div> <div class="goodStautus" v-else>正常</div>
</div> </div>
<div class="context-li" v-if="isObjectValid(runStatusObj)"> <div class="context-li" v-if="isObjectValid(runStatusObj)">
<div class="wind-text">风机运行状态:</div> <div :class="getTextClass(runStatusObj, 'wind-text')">
风机运行状态:
</div>
<div class="goodStautus" v-if="runStatusObj.collectValue">运行</div> <div class="goodStautus" v-if="runStatusObj.collectValue">运行</div>
<div class="noneStautus" v-else>不运行</div> <div class="noneStautus" v-else>不运行</div>
</div> </div>
<div class="context-li" v-if="isObjectValid(pressureObj)"> <div class="context-li" v-if="isObjectValid(pressureObj)">
<div class="wind-text">风机压差:</div> <div :class="getTextClass(pressureObj, 'wind-text')">风机压差:</div>
<div class="badStautus" v-if="pressureObj.collectValue">故障</div> <div class="badStautus" v-if="pressureObj.collectValue">故障</div>
<div class="goodStautus" v-else>正常</div> <div class="goodStautus" v-else>正常</div>
</div> </div>
@ -153,7 +159,9 @@
</div> </div>
<div class="fan-satatus1"> <div class="fan-satatus1">
<div class="context-li" v-if="isObjectValid(automaticObj)"> <div class="context-li" v-if="isObjectValid(automaticObj)">
<div class="wind-text">风机手自动状态</div> <div :class="getTextClass(automaticObj, 'wind-text')">
风机手自动状态
</div>
<!-- <el-switch <!-- <el-switch
style="display: block" style="display: block"
v-model="automaticObj.collectValue" v-model="automaticObj.collectValue"
@ -168,7 +176,9 @@
<div class="goodStautus" v-else>自动</div> <div class="goodStautus" v-else>自动</div>
</div> </div>
<div class="context-li" v-if="isObjectValid(startControlObj)"> <div class="context-li" v-if="isObjectValid(startControlObj)">
<div class="wind-text">风机启停控制</div> <div :class="getTextClass(startControlObj, 'wind-text')">
风机启停控制
</div>
<el-switch <el-switch
style="display: block" style="display: block"
v-model="startControlObj.collectValue" v-model="startControlObj.collectValue"
@ -184,7 +194,9 @@
</div> </div>
<div class="fan-satatus2"> <div class="fan-satatus2">
<div class="context-li" v-if="isObjectValid(waterSupplyObj)"> <div class="context-li" v-if="isObjectValid(waterSupplyObj)">
<div class="wind-text">供水温度</div> <div :class="getTextClass(waterSupplyObj, 'wind-text')">
供水温度
</div>
<el-input <el-input
@keyup.enter.native="handleEnter(waterSupplyObj, $event, '℃')" @keyup.enter.native="handleEnter(waterSupplyObj, $event, '℃')"
@input="handleInput(waterSupplyObj)" @input="handleInput(waterSupplyObj)"
@ -197,7 +209,7 @@
</el-input> </el-input>
</div> </div>
<div class="context-li" v-if="isObjectValid(backwaterObj)"> <div class="context-li" v-if="isObjectValid(backwaterObj)">
<div class="wind-text">回水温度</div> <div :class="getTextClass(backwaterObj, 'wind-text')">回水温度</div>
<el-input <el-input
@keyup.enter.native="handleEnter(backwaterObj, $event, '℃')" @keyup.enter.native="handleEnter(backwaterObj, $event, '℃')"
@input="handleInput(backwaterObj)" @input="handleInput(backwaterObj)"
@ -210,7 +222,9 @@
</el-input> </el-input>
</div> </div>
<div class="context-li" v-if="isObjectValid(waterValveObj)"> <div class="context-li" v-if="isObjectValid(waterValveObj)">
<div class="wind-text">水阀调节</div> <div :class="getTextClass(waterValveObj, 'wind-text')">
水阀调节
</div>
<el-form @submit.native.prevent> <el-form @submit.native.prevent>
<el-form-item> <el-form-item>
<el-input <el-input
@ -231,11 +245,13 @@
</div> </div>
</div> </div>
<div class="wind-valve" v-if="isObjectValid(airValveBackObj)"> <div class="wind-valve" v-if="isObjectValid(airValveBackObj)">
<div class="wind-text">新风阀反馈</div> <div :class="getTextClass(airValveBackObj, 'wind-text')">
新风阀反馈
</div>
<div>{{ airValveBackObj.collectValue }}%</div> <div>{{ airValveBackObj.collectValue }}%</div>
</div> </div>
<div class="wind-valve2" v-if="isObjectValid(airValveObj)"> <div class="wind-valve2" v-if="isObjectValid(airValveObj)">
<div class="wind-text">新风阀调节</div> <div :class="getTextClass(airValveObj, 'wind-text')">新风阀调节</div>
<el-input <el-input
@keyup.enter.native="handleEnter(airValveObj, $event, '%')" @keyup.enter.native="handleEnter(airValveObj, $event, '%')"
@input="handleInput(airValveObj)" @input="handleInput(airValveObj)"
@ -612,6 +628,11 @@ export default {
}); });
} }
}, },
// quality
getTextClass(obj, claseName) {
// console.log("quality······",obj.collectName, obj.quality);
return [claseName, obj.quality !== "0" ? "alarm-text" : ""];
},
// //
handleInput(item) { handleInput(item) {
console.log("校验"); console.log("校验");
@ -714,7 +735,7 @@ export default {
console.log("操作参数", data); console.log("操作参数", data);
// loading // loading
this.loading = true; this.loading = true;
debugger debugger;
operationConrol([data]) operationConrol([data])
.then((res) => { .then((res) => {
if (res.code == 200) { if (res.code == 200) {
@ -1550,6 +1571,12 @@ export default {
.device-li { .device-li {
position: relative; position: relative;
} }
/* 报警文字样式 */
.alarm-text {
color: red !important;
animation: blink 1s infinite;
}
// 2000px // 2000px
@media (min-width: 2000px) { @media (min-width: 2000px) {
.device-container { .device-container {
@ -1655,6 +1682,7 @@ export default {
.windC >>> .el-switch__core:after { .windC >>> .el-switch__core:after {
width: 0.16rem !important; width: 0.16rem !important;
height: 0.16rem !important; height: 0.16rem !important;
top: 0.01rem !important;
} }
.windC >>> .el-switch.is-checked .el-switch__core::after { .windC >>> .el-switch.is-checked .el-switch__core::after {
margin-left: -0.17rem !important; margin-left: -0.17rem !important;

487
src/views/centerairC/sysMonitor/hostDetails.vue

@ -147,6 +147,9 @@
></span ></span
> >
</div> </div>
<div class="hostStatus-li2" @click="openTimeSwitch">
偏移值定时设置
</div>
</div> </div>
<!-- 负载 --> <!-- 负载 -->
<LoadData class="loadData" :hostData="hostData"></LoadData> <LoadData class="loadData" :hostData="hostData"></LoadData>
@ -281,6 +284,118 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 定时开关内容 -->
<el-dialog
title="偏移值定时设置"
:visible.sync="isOpenTimeSwitch"
append-to-body
width="800px"
class="custom-dialog"
>
<div class="dialog-content">
<div class="device-container" v-loading="loading">
<div class="device-li">
<div class="device-name">定时名称</div>
<div class="device-name">设置时间1</div>
<div class="device-name">设置时间2</div>
<div class="device-name">偏移值</div>
<div class="device-name">当前设定值</div>
<div class="device-name">最终设定值</div>
<div class="device-name">启动状态</div>
</div>
<div
class="device-li"
v-for="(item, index) in delayList"
:key="index"
:class="{ highlight: item.name.includes(currentWeekday) }"
>
<div class="device-name">{{ item.name }}</div>
<div class="device-name">
<el-form @submit.native.prevent>
<el-form-item>
<el-input
size="mini"
v-model="item.delayOpenHour"
@keyup.enter.native="
handleSwitchEnter(item, 'openHour', $event)
"
@input="handleSwitchInput(item, 'delayOpenHour', 'hour')"
></el-input> </el-form-item
></el-form>
<div class="slip">:</div>
<el-form @submit.native.prevent>
<el-form-item>
<el-input
size="mini"
v-model="item.delayOpenMinute"
@keyup.enter.native="
handleSwitchEnter(item, 'openMinute', $event)
"
@input="
handleSwitchInput(item, 'delayOpenMinute', 'minute')
"
></el-input> </el-form-item
></el-form>
</div>
<div class="device-name">
<el-form @submit.native.prevent>
<el-form-item>
<el-input
size="mini"
v-model="item.delayCloseHour"
@keyup.enter.native="
handleSwitchEnter(item, 'closeHour', $event)
"
@input="handleSwitchInput(item, 'delayCloseHour', 'hour')"
></el-input></el-form-item
></el-form>
<div class="slip">:</div>
<el-form @submit.native.prevent>
<el-form-item>
<el-input
size="mini"
v-model="item.delayCloseMinute"
@keyup.enter.native="
handleSwitchEnter(item, 'closeMinute', $event)
"
@input="
handleSwitchInput(item, 'delayCloseMinute', 'minute')
"
></el-input></el-form-item
></el-form>
</div>
<!-- 三个值偏移值可输入 -->
<div class="device-name">
<el-form @submit.native.prevent>
<el-form-item>
<el-input
size="mini"
v-model="item.offsetValue"
@keyup.enter.native="
handleSwitchEnter(item, 'offset', $event)
"
@input="handleSwitchInput(item, 'offsetValue', 'offset')"
></el-input></el-form-item
></el-form>
</div>
<div class="device-name">{{ item.curValue }}</div>
<div class="device-name">{{ item.finalOutWaterTemp }}</div>
<div class="device-name">
<el-switch
style="display: block"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="开启"
inactive-text="停用"
v-model="item.delayStatus"
@change="handleSwitchStatus(item)"
>
</el-switch>
</div>
</div>
</div>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -291,7 +406,9 @@ import {
runTime, runTime,
operationConrol, operationConrol,
} from "@/api/centerairC/sysMonitor"; } from "@/api/centerairC/sysMonitor";
import { policyListData } from "@/api/centerairC/strategy";
import { alarmRecordList } from "@/api/alarm/alarmRecord"; import { alarmRecordList } from "@/api/alarm/alarmRecord";
import { undateTime } from "@/api/aircAndWindc/index";
import { cpmList } from "@/api/device/gather"; import { cpmList } from "@/api/device/gather";
import LoadData from "./components/loadData.vue"; import LoadData from "./components/loadData.vue";
import hostChart from "./components/hostChart.vue"; import hostChart from "./components/hostChart.vue";
@ -326,6 +443,11 @@ export default {
isShowWarning: false, // isShowWarning: false, //
dayData: "", // dayData: "", //
sharedIndex: 0, sharedIndex: 0,
isOpenTimeSwitch: false,
delayList: [],
currentWeekday: "",
timer: null, // ID
}; };
}, },
computed: { computed: {
@ -525,6 +647,17 @@ export default {
) { ) {
// //
this.offsetValuerControlObj = item; this.offsetValuerControlObj = item;
// curValue
if (
this.offsetValuerControlObj.curValue !== undefined &&
!isNaN(parseFloat(this.offsetValuerControlObj.curValue))
) {
// curValue
this.offsetValuerControlObj.curValue = parseInt(
this.offsetValuerControlObj.curValue,
10
);
}
} }
}); });
} }
@ -704,12 +837,11 @@ export default {
// //
handleInput(item) { handleInput(item) {
console.log("校验"); console.log("校验");
// //
let input = String(item).replace(/[^\d.]/g, ""); let input = String(item).replace(/[^\d]/g, "");
// // 0 1 0
if (input.startsWith(".")) { if (input.startsWith("0") && input.length > 1) {
// input = input.replace(/^0+/, "");
input = input.slice(1);
} }
this.offsetValuerControlObj.curValue = input; this.offsetValuerControlObj.curValue = input;
}, },
@ -726,7 +858,7 @@ export default {
// //
event.target.blur(); event.target.blur();
this.$confirm( this.$confirm(
`确定要修改冷水设定值偏移10V的温度为:${item.curValue} ℃吗?`, `确定要修改冷水设定值偏移的温度为:${item.curValue} ℃吗?`,
"提示", "提示",
{ {
confirmButtonText: "确定", confirmButtonText: "确定",
@ -740,6 +872,7 @@ export default {
.catch(() => { .catch(() => {
// //
// this.$emit("upList"); // this.$emit("upList");
this.getHostDetailsData();
}); });
}, },
// //
@ -773,6 +906,285 @@ export default {
this.getHostDetailsData(); this.getHostDetailsData();
}); });
}, },
//
openTimeSwitch() {
this.isOpenTimeSwitch = true;
this.getPolicyList();
},
//
getPolicyList() {
return new Promise((resolve, reject) => {
let data = {
systemType: "0",
funPolicyType: "4",
};
policyListData(data)
.then((res) => {
console.log("设备定时开关返回res", res);
if (res.code === 200) {
let handleList = res.rows;
this.delayList = [];
handleList.forEach((element, index) => {
if (element.values && element.values.length > 0) {
//
let delayItem = {
name: element.name,
};
const limitedChildren = element.values;
limitedChildren.forEach((child) => {
// console.log("${index}_", `${index}_`);
// console.log("child.pointName", child.pointName);
if (child.pointName) {
// 1-
if (child.pointName.includes(`偏移值设置时间${index + 1}-时1`)) {
// console.log("-·························");
delayItem.delayOpenHour = child.curValue;
delayItem.delayOpenHourId = child.id;
}
// 1-
else if (
child.pointName.includes(`偏移值设置时间${index + 1}-分1`)
) {
delayItem.delayOpenMinute = child.curValue;
delayItem.delayOpenMinuteId = child.id;
}
// 2-
else if (
child.pointName.includes(`偏移值设置时间${index + 1}-时2`)
) {
delayItem.delayCloseHour = child.curValue;
delayItem.delayCloseHourId = child.id;
}
// 2-
else if (
child.pointName.includes(`偏移值设置时间${index + 1}-分2`)
) {
delayItem.delayCloseMinute = child.curValue;
delayItem.delayCloseMinuteId = child.id;
}
//
else if (child.pointName.includes(`偏移值${index + 1}`)) {
delayItem.offsetValue = child.curValue;
delayItem.offsetValueId = child.id;
}
//
else if (child.pointName.includes("出水温度设置")) {
delayItem.curValue = child.curValue;
delayItem.curValueId = child.id;
}
//
else if (child.pointName.includes(`启动标志`)) {
delayItem.delayStatus =
Number(child.curValue) == 0 ? false : true;
delayItem.delayStatusId = child.id;
}
}
});
//
const offsetValue =
delayItem.offsetValue !== null &&
delayItem.offsetValue !== ""
? parseFloat(delayItem.offsetValue)
: NaN;
const curValue =
delayItem.curValue !== null && delayItem.curValue !== ""
? parseFloat(delayItem.curValue)
: NaN;
if (!isNaN(offsetValue) && !isNaN(curValue)) {
delayItem.finalOutWaterTemp = offsetValue + curValue;
}
// delayList
if (Object.keys(delayItem).length > 1) {
this.delayList.push(delayItem);
}
}
});
console.log("处理后的数组", this.delayList);
// this.delayList = res.rows;
} else {
this.delayList = [];
}
// Promise
resolve(res);
})
.catch((error) => {
// Promise
reject(error);
});
});
},
//
handleSwitchInput(item, propertyName, name) {
console.log("校验", item[propertyName]);
//
if (item[propertyName] === "") {
return;
}
let isValid = true;
//
let inputValue = String(item[propertyName]).replace(/[^\d]/g, "");
if (name === "hour") {
isValid =
!isNaN(inputValue) &&
parseInt(inputValue) >= 0 &&
parseInt(inputValue) <= 23;
if (!isValid) {
this.$message.error("输入值在0-23区间,请重新输入");
item[propertyName] = "";
return;
}
} else if (name === "minute") {
isValid =
!isNaN(inputValue) &&
parseInt(inputValue) >= 0 &&
parseInt(inputValue) <= 59;
if (!isValid) {
this.$message.error("输入值在0-59区间,请重新输入");
item[propertyName] = "";
return;
}
} else if (name === "offset") {
isValid = !isNaN(inputValue) && parseInt(inputValue) >= 0;
if (!isValid) {
this.$message.error("输入值大于0,请重新输入");
item[propertyName] = "";
return;
}
}
item[propertyName] = inputValue;
},
handleSwitchEnter(item, name, event) {
console.log("item", item);
console.log("接收到的事件对象:", event);
//
if (event && event.preventDefault) {
event.preventDefault();
}
//
event.target.blur();
let id = "";
let value = "";
let title = "";
let unit = "";
if (name === "openHour") {
id = item.delayOpenHourId;
value = item.delayOpenHour;
title = "设置时间1-小时";
unit = "时";
} else if (name === "openMinute") {
id = item.delayOpenMinuteId;
value = item.delayOpenMinute;
title = "设置时间1-分钟";
unit = "分";
} else if (name === "closeHour") {
id = item.delayCloseHourId;
value = item.delayCloseHour;
title = "设置时间2-小时";
unit = "时";
} else if (name === "closeMinute") {
id = item.delayCloseMinuteId;
value = item.delayCloseMinute;
title = "设置时间2-分钟";
unit = "分";
} else if (name === "offset") {
id = item.offsetValueId;
value = item.offsetValue;
title = "偏移值";
unit = "";
}
if (value === "") {
this.$message.warning("请输入当前设置值!");
return;
}
console.log("请求后端", item);
this.$confirm(
`确定要把"${item.name}"的${title}设置为:${value} ${unit}吗?`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
// console.log("id",id)
this.handleSwitchOperationConrol(id, value);
})
.catch(() => {
//
this.getPolicyList();
});
},
handleSwitchOperationConrol(id, param) {
let data = {
policyId: id,
timeValue: param,
};
// console.log("", data);
// loading
this.loading = true;
undateTime(data)
.then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("指令下发成功!");
// loading
// this.loading = true;
// ;
setTimeout(() => {
this.getPolicyList();
// loading
this.loading = false;
}, 500);
} else {
// loading
this.loading = false;
// this.$modal.msgError("");
console.log("应该更新状态的");
// ;
this.getPolicyList();
}
})
.catch((error) => {
// loading
this.loading = false;
console.log("请求发生错误,更新设备状态", error);
// ;
this.getPolicyList();
});
},
//
handleSwitchStatus(item) {
this.$confirm(
`确定要切换"${item.name}"的状态为:${
item.delayStatus ? "开启" : "停用 吗?"
}`,
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(() => {
//
console.log("请求后台", item.delayStatus);
let param = null;
if (item.delayStatus) {
param = 1;
} else {
param = 0;
}
this.handleSwitchOperationConrol(item.delayStatusId, param);
})
.catch(() => {
//
item.delayStatus = !item.delayStatus;
console.log("不请求后台");
});
},
}, },
}; };
</script> </script>
@ -893,7 +1305,7 @@ export default {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
.detail-top-left { .detail-top-left {
height: 4.4rem; height: 4.8rem;
// background-color: aquamarine; // background-color: aquamarine;
position: relative; position: relative;
.host-img1 { .host-img1 {
@ -1003,6 +1415,23 @@ export default {
white-space: nowrap; white-space: nowrap;
} }
} }
.hostStatus-li2 {
background-color: #136bf0;
color: #ffffff;
font-size: 0.16rem;
margin-bottom: 0.1rem;
padding: 0.1rem;
letter-spacing: 0.02rem;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
border-radius: 0.1rem;
cursor: pointer;
}
.hostStatus-li2:hover {
background-color: #217af0;
}
} }
.water-flow3 { .water-flow3 {
z-index: 10; z-index: 10;
@ -1089,7 +1518,7 @@ export default {
} }
.detail-top-right { .detail-top-right {
width: calc(100% - 7.6rem); width: calc(100% - 7.6rem);
height: 4.4rem; height: 4.8rem;
// background-color: rgb(127, 172, 255); // background-color: rgb(127, 172, 255);
} }
} }
@ -1354,25 +1783,51 @@ export default {
align-items: center; align-items: center;
} }
.goodData >>> .el-input { .goodData >>> .el-input {
width: 0.5rem !important; width: 1rem !important;
} }
.goodData >>> .el-input--mini .el-input__inner { .goodData >>> .el-input--mini .el-input__inner {
height: 0.28rem !important; height: 0.28rem !important;
line-height: 20.28rem !important; line-height: 20.28rem !important;
padding: 0 !important;
} }
.goodData >>> .el-input__inner { .goodData >>> .el-input__inner {
background: transparent !important;
border: 1px solid transparent !important;
color: #3df574 !important;
font-weight: bold; font-weight: bold;
box-shadow: none !important; box-shadow: none !important;
} }
.goodData >>> .el-input__suffix { .goodData >>> .el-input__suffix {
color: #3df574 !important;
font-weight: bold; font-weight: bold;
right: -0.02rem !important; right: 0.05rem !important;
height: 100% !important; height: 100% !important;
top: -0.01rem !important; top: -0.01rem !important;
} }
.device-name:nth-child(3) {
margin-left: 30px !important;
}
.device-name {
justify-content: center !important;
align-items: center !important;
}
.device-name .slip {
margin: 0 5px;
}
.device-name >>> .el-form {
width: 50px !important;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
flex-wrap: nowrap;
}
.device-name >>> .el-form-item {
margin-bottom: 0 !important;
}
.device-name >>> .el-input {
width: 50px !important;
}
.device-name {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
flex-wrap: nowrap;
}
</style> </style>

20
src/views/index.vue

@ -67,47 +67,47 @@
<div class="special-title">项目概况</div> <div class="special-title">项目概况</div>
</div> </div>
<div class="overview"> <div class="overview">
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>总耗电量(kwh)</div> <div>总耗电量(kwh)</div>
<div class="overview-details">{{ projectView.totalEle }}</div> <div class="overview-details">{{ projectView.totalEle }}</div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>总热水补水()</div> <div>总热水补水()</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.totalWater }} {{ projectView.totalWater }}
</div> </div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>总蒸汽流量()</div> <div>总蒸汽流量()</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.totalGas }} {{ projectView.totalGas }}
</div> </div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>总产冷量(kw)</div> <div>总产冷量(kw)</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.totalCold }} {{ projectView.totalCold }}
</div> </div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>今年耗电量(kwh)</div> <div>今年耗电量(kwh)</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.yearEle }} {{ projectView.yearEle }}
</div> </div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>今年热水补水()</div> <div>今年热水补水()</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.yearWater }} {{ projectView.yearWater }}
</div> </div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>今年蒸汽流量()</div> <div>今年蒸汽流量()</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.yearGas }} {{ projectView.yearGas }}
</div> </div>
</div> </div>
<div class="overview-li"> <div class="overview-li" @click="goEnergy">
<div>今年产冷量(kw)</div> <div>今年产冷量(kw)</div>
<div class="overview-details"> <div class="overview-details">
{{ projectView.yearCold }} {{ projectView.yearCold }}
@ -381,6 +381,9 @@ export default {
} }
}); });
}, },
goEnergy(){
this.$router.push("/comprehensiveEnergy/systemEnergy")
},
//chartInstance //chartInstance
initChart() { initChart() {
this.chartInstance = echarts.init(this.$refs.charts_ref); this.chartInstance = echarts.init(this.$refs.charts_ref);
@ -707,6 +710,7 @@ export default {
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
.overview-li { .overview-li {
cursor: pointer;
width: calc(25%); width: calc(25%);
height: 1.65rem; height: 1.65rem;
display: flex; display: flex;

Loading…
Cancel
Save