Compare commits

..

No commits in common. "cf28b195052ec15aec0c6ccdac86aa159b176d1a" and "25be1a7ad91b6c0fe4143451640f3199d0b544c5" have entirely different histories.

11 changed files with 1254 additions and 1623 deletions

View File

@ -78,21 +78,6 @@ export default {
this.dataInit(); this.dataInit();
}, },
methods: { methods: {
countData(data) {
if (data) {
return (data - 400) / 10
} else {
return 0
}
},
// x/10
countData10(data) {
if (data) {
return data / 10
} else {
return 0
}
},
dataInit() { dataInit() {
var store = this.$store.state; var store = this.$store.state;
var data = store.equipmentList[store.equipmentIndex - 1].deviceId; var data = store.equipmentList[store.equipmentIndex - 1].deviceId;
@ -127,40 +112,7 @@ export default {
this.routerNow != "/rollByRoll" && this.routerNow != "/rollByRoll" &&
this.routerNow != "/snowRemoval" this.routerNow != "/snowRemoval"
) { ) {
// this.$router.push({ path: `/waterPump` });
var store = this.$store.state;
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then((res) => {
store.ControlData=res.data.data
//waterPump
store.ControlData['21521'] = this.countData(store.ControlData['21521'])
store.ControlData['21522'] = this.countData10(store.ControlData['21522'])
store.ControlData['21523'] = this.countData(store.ControlData['21523'])
store.ControlData['21524'] = this.countData(store.ControlData['21524'])
//downtake
store.ControlData["21544"] = this.countData(store.ControlData["21544"]);
//geothermalFan
store.ControlData['21527'] = this.countData(store.ControlData['21527'])
store.ControlData['21528'] = this.countData10(store.ControlData['21528'])
//rollByRoll
store.ControlData['21552'] = this.countData(store.ControlData['21552'])
store.ControlData['21550'] = this.countData10(store.ControlData['21550'])
//snowRemoval
store.ControlData['21544'] = this.countData(store.ControlData['21544'])
//
store.ControlData['21532'] = this.countData(store.ControlData['21532'])
store.ControlData['21533'] = this.countData10(store.ControlData['21533'])
store.ControlData['21562'] = this.countData10(store.ControlData['21562'])
this.$router.push({ path: `/waterPump` });
});
} }
} }

View File

@ -13,7 +13,7 @@ export default new Vuex.Store({
equipmentName: null,//当前设备 小设备的各个名字 equipmentName: null,//当前设备 小设备的各个名字
nameList: ['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Elven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen'], nameList: ['One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Elven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen'],
formulaNum: [16, 48, 80, 112, 144, 176, 208, 240], formulaNum: [16, 48, 80, 112, 144, 176, 208, 240],
ControlData:null,//控制器五方数据
activeNames:[],//组件内active activeNames:[],//组件内active
//label是名称 //label是名称
//value是code码 //value是code码

View File

@ -1,2 +0,0 @@
import Vue from 'vue';
export const util = new Vue();

View File

@ -1,31 +1,29 @@
<template> <template>
<div class="formula control"> <div class="formula control">
<setParamsControl></setParamsControl> <setParamsControl></setParamsControl>
<div class="page-content"> <div class="page-content">
<router-view></router-view> <router-view></router-view>
</div>
</div> </div>
</div> </template>
</template>
<script> <script>
import setParamsControl from "../components/setParamsControl.vue"; import setParamsControl from "../components/setParamsControl.vue";
export default { export default {
components: { components: {
setParamsControl, setParamsControl,
}, },
// data(){
beforeDestroy() { return {}
var store = this.$store.state; },
store.ControlData = null; mounted(){},
}, methods:{},
data() {
return {}; }
}, </script>
mounted() {},
methods: {},
};
</script>
<style lang="scss"> <style lang="scss">
</style>
</style>

View File

@ -143,6 +143,7 @@ export default {
this.limitUserId = res.data.data; this.limitUserId = res.data.data;
const foundObject = this.limitUserId.find(item => item.id == 3); const foundObject = this.limitUserId.find(item => item.id == 3);
const foundName = this.headerList.findIndex(item => item.name == '二维码追溯'); const foundName = this.headerList.findIndex(item => item.name == '二维码追溯');
console.log(foundObject,foundName,123456);
if(foundObject){ if(foundObject){
if(foundName==-1){ if(foundName==-1){
this.headerList.push({ name: '二维码追溯', router: 'setsuyuan', index: 1, routerList: ['setsuyuan'], img: require('../assets/image/header-img4.png') }) this.headerList.push({ name: '二维码追溯', router: 'setsuyuan', index: 1, routerList: ['setsuyuan'], img: require('../assets/image/header-img4.png') })

View File

@ -1,334 +1,279 @@
<template> <template>
<div class="waterPump wufang"> <div class="waterPump wufang">
<div class="table-title"> <div class="table-title">
<img src="../../assets/img/downtake.png" alt="" /> 下风口 <img src="../../assets/img/downtake.png" alt=""> 下风口
</div>
<div class="title-tips">下风口有效性设置</div>
<div class="flex-view">
<div class="input-btn">
<div
class="btn"
@click="changeOpen(1)"
:class="openIndex == 1 ? 'blue' : 'green'"
>
<img src="../../assets/image/irrigateSet2.png" alt="" />自动运行
</div> </div>
<div <div class="title-tips">下风口有效性设置</div>
class="btn" <div class="flex-view">
@click="changeOpen(2)" <div class="input-btn">
:class="openIndex == 2 ? 'blue' : 'green'" <div class="btn" @click="changeOpen(1)" :class="openIndex == 1 ? 'blue' : 'green'">
> <img src="../../assets/image/irrigateSet2.png" alt="" />自动运行
<img src="../../assets/image/irrigateSet3.png" alt="" />手动打开 </div>
</div> <div class="btn" @click="changeOpen(2)" :class="openIndex == 2 ? 'blue' : 'green'">
<div <img src="../../assets/image/irrigateSet3.png" alt="" />手动打开
class="btn" </div>
@click="changeOpen(3)" <div class="btn" @click="changeOpen(3)" :class="openIndex == 3 ? 'blue' : 'green'">
:class="openIndex == 3 ? 'blue' : 'green'" <img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭
> </div>
<img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭 <div class="btn" @click="changeOpen(4)" :class="openIndex == 4 ? 'blue' : 'green'">
</div> <img src="../../assets/image/irrigateSet1.png" alt="" />停止
<div </div>
class="btn" </div>
@click="changeOpen(4)"
:class="openIndex == 4 ? 'blue' : 'green'"
>
<img src="../../assets/image/irrigateSet1.png" alt="" />停止
</div>
</div>
</div>
<div class="flex-view"> </div>
<div class="flex-sel padding-none" @click="changeOpenTrue()">
<div v-if="!openTrue" class="no-sel margin-none"></div> <div class="flex-view">
<div v-else class="sel margin-none"></div> <div class="flex-sel padding-none" @click="changeOpenTrue()">
</div> <div v-if="!openTrue" class="no-sel margin-none"></div>
<div class="input-main"> <div v-else class="sel margin-none"></div>
<span>室外温度大于</span> </div>
<input <div class="input-main">
@blur="blurChangeCount('21544', $event)" <span>室外温度大于</span>
v-model="inputData['21544']" <input @blur="blurChangeCount('21544', $event)" v-model="inputData['21544']" @input="changeCountData('21544', $event)"
@input="changeCountData('21544', $event)" type="text" value="60" placeholder="60" />
type="text" <span>打开下风口</span>
value="60" </div>
placeholder="60" </div>
/> <div class="flex-view">
<span>打开下风口</span> <div class="input-main">
</div> <div>上风口全部打开 (100%) </div>
<input @blur="blurChange('21543', $event)" v-model="inputData['21543']" @input="change('21543', $event)"
type="text" value="60" placeholder="60" />
<span>分钟温度降不下来打开下风口</span>
</div>
</div>
<div class="flex-view border-none">
<div class="input-main">
<div>下风口的行程时间</div>
<input @blur="blurChange('21545', $event)" v-model="inputData['21545']" @input="change('21545', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>打开的通道</div>
<input @blur="blurChange('21546', $event)" v-model="inputData['21546']" @input="change('21546', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>关闭的通道</div>
<input @blur="blurChange('21547', $event)" v-model="inputData['21547']" @input="change('21547', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
</div>
</div> </div>
<div class="flex-view">
<div class="input-main">
<div>上风口全部打开 (100%) </div>
<input
@blur="blurChange('21543', $event)"
v-model="inputData['21543']"
@input="change('21543', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>分钟温度降不下来打开下风口</span>
</div>
</div>
<div class="flex-view border-none">
<div class="input-main">
<div>下风口的行程时间</div>
<input
@blur="blurChange('21545', $event)"
v-model="inputData['21545']"
@input="change('21545', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>打开的通道</div>
<input
@blur="blurChange('21546', $event)"
v-model="inputData['21546']"
@input="change('21546', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>关闭的通道</div>
<input
@blur="blurChange('21547', $event)"
v-model="inputData['21547']"
@input="change('21547', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
openIndex: 1, openIndex: 1,
inputData: {}, inputData: {},
openTrue: false, openTrue: false,
}; }
}, },
mounted() { mounted() {
var store = this.$store.state; this.dataInit();
// this.dataInit(); //input
if(store.ControlData){ let inputList = document.querySelectorAll('input');
this.dataInit(); for (let index = 0; index < inputList.length; index++) {
inputList[index].onfocus = this.selectValue;//input
}
},
methods: {
changeOpenTrue() {
this.openTrue = !this.openTrue
var dataNum = {
target: {
value: this.openTrue ? 1 : 0,
},
};
this.changeBtn('21542', dataNum);
},
padString(str, length) {
return str.padStart(length, '0');
},
changeOpen(index) {
this.openIndex = index
var dataNum = {
target: {
value: this.openIndex,
},
};
this.changeBtn(21541, dataNum);
},
// x/10
blurChange10(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
} }
let inputList = document.querySelectorAll("input");
for (let index = 0; index < inputList.length; index++) {
inputList[index].onfocus = this.selectValue; //input
}
},
//
watch: {
"$store.state.ControlData"(newVal) {
this.dataInit();
},
},
// vuex
beforeDestroy() {
var store = this.$store.state;
this.inputData["21541"]= this.openIndex;
this.inputData["21542"] = this.openTrue ? 1 : 0;
store.ControlData = this.inputData;
},
methods: {
changeOpenTrue() {
this.openTrue = !this.openTrue;
var dataNum = {
target: {
value: this.openTrue ? 1 : 0,
},
};
this.changeBtn("21542", dataNum);
},
padString(str, length) {
return str.padStart(length, "0");
},
changeOpen(index) {
this.openIndex = index;
var dataNum = {
target: {
value: this.openIndex,
},
};
this.changeBtn(21541, dataNum);
},
// x/10
blurChange10(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
// x/10
changeCount10(code, el) {
var data = el.target.value * 10;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
//
blurChangeCount(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10 + 400,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeCountData(code, el) {
var data = el.target.value * 10 + 400;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
countData(data) {
if (data) {
return (data - 400) / 10;
} else {
return 0;
}
},
// x/10
countData10(data) {
if (data) {
return data / 10;
} else {
return 0;
}
},
dataInit() {
var store = this.$store.state;
var store = this.$store.state
this.inputData = store.ControlData
this.openIndex = this.inputData["21541"];
this.openTrue = this.inputData["21542"] == 0 ? false : true;
// this.inputData["21544"] = this.countData(this.inputData["21544"]);
// var data = {
// deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
// };
// this.api.readControl_fiveControl(data).then((res) => {
// if (res.data.code == 200) {
// }
// });
},
//
selectValue(e) {
var store = this.$store.state;
store.nowInput = e.target.value;
e.currentTarget.select();
},
//
blurChange(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeBtn(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimerBtn(0, data);
},
//btn j*100
delayTimerBtn(i, data) {
const that = this;
//
let j = this.$store.state.lateSendBtn;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { },
++i; // x/10
if (i == j) { changeCount10(code, el) {
that.changeData(data); var data = el.target.value * 10
clearInterval(this.timer); var sendData = {
} target: {
}, 100); value: data
}, }
change(code, el) { }
var store = this.$store.state; this.change(code, sendData)
var data = { },
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, //
regAddress: code, blurChangeCount(code, el) {
num: el.target.value, var store = this.$store.state
}; var data = {
this.delayTimer(0, data); equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
}, regAddress: code,
// j*100 num: (el.target.value * 10) + 400,
delayTimer(i, data) { }; //
const that = this; if (this.timer) {
// this.timer && clearInterval(this.timer);
let j = this.$store.state.lateSend; this.changeData(data);
// }
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { },
++i; changeCountData(code, el) {
if (i == j) { var data = (el.target.value * 10) + 400
that.changeData(data); var sendData = {
clearInterval(this.timer); target: {
} value: data
}, 100); }
}, }
changeData(data) { this.change(code, sendData)
var store = this.$store.state; },
countData(data) {
if (data) {
return (data - 400) / 10
} else {
return 0
}
},
// x/10
countData10(data) {
if (data) {
return data / 10
} else {
return 0
}
},
dataInit() {
var store = this.$store.state
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
this.api.postControlWrite(data).then((res) => { };
if (res.data.code == 200) { this.api.readControl_fiveControl(data).then(res => {
this.$message({ if(res.data.code==200){
message: res.data.msg, this.inputData = res.data.data
type: "success", this.openIndex = this.inputData['21541']
}); this.openTrue = this.inputData['21542'] == 0 ? false : true
store.nowInput = ""; this.inputData['21544'] = this.countData(this.inputData['21544'])
// this.dataInit();
} else { }
this.inputData[data.regAddress] = store.nowInput;
this.$message.error(res.data.msg);
} })
this.timer = null; },
}); //
selectValue(e) {
var store = this.$store.state
store.nowInput=e.target.value
e.currentTarget.select();
},
//
blurChange(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeBtn(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimerBtn(0, data);
},
//btn j*100
delayTimerBtn(i, data) {
const that = this;
//
let j = this.$store.state.lateSendBtn;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => {
++i;
if (i == j) {
that.changeData(data);
clearInterval(this.timer);
}
}, 100);
},
change(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimer(0, data);
},
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => {
++i;
if (i == j) {
that.changeData(data);
clearInterval(this.timer);
}
}, 100);
},
changeData(data) {
var store = this.$store.state
this.api.postControlWrite(data).then((res) => {
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: "success",
});
store.nowInput=''
// this.dataInit();
} else {
this.inputData[data.regAddress]=store.nowInput
this.$message.error(res.data.msg);
}
this.timer = null
});
},
}, },
},
}; }
</script> </script>
<style lang="scss"></style> <style lang="scss"></style>

View File

@ -57,24 +57,8 @@ export default {
inputData: {}, inputData: {},
} }
}, },
//
watch: {
"$store.state.ControlData"(newVal) {
this.dataInit();
},
},
// vuex
beforeDestroy() {
var store = this.$store.state;
this.inputData['21526']=this.openIndex
store.ControlData = this.inputData;
},
mounted() { mounted() {
var store = this.$store.state; this.dataInit();
// this.dataInit();
if(store.ControlData){
this.dataInit();
}
//input //input
let inputList = document.querySelectorAll('input'); let inputList = document.querySelectorAll('input');
for (let index = 0; index < inputList.length; index++) { for (let index = 0; index < inputList.length; index++) {
@ -158,20 +142,19 @@ export default {
}, },
dataInit() { dataInit() {
var store = this.$store.state var store = this.$store.state
this.inputData = store.ControlData var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then(res => {
if(res.data.code==200){
this.inputData = res.data.data
this.openIndex = this.inputData['21526'] this.openIndex = this.inputData['21526']
// this.inputData['21527'] = this.countData(this.inputData['21527']) this.inputData['21527'] = this.countData(this.inputData['21527'])
// this.inputData['21528'] = this.countData10(this.inputData['21528']) this.inputData['21528'] = this.countData10(this.inputData['21528'])
// var data = { }
// deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
// }; })
// this.api.readControl_fiveControl(data).then(res => {
// if(res.data.code==200){
// }
// })
}, },
// //
selectValue(e) { selectValue(e) {

View File

@ -1,464 +1,368 @@
<template> <template>
<div class="waterPump wufang"> <div class="waterPump wufang">
<div class="table-title"> <div class="table-title">
<img src="../../assets/img/rollByRoll.png" alt="" /> 卷被 <img src="../../assets/img/rollByRoll.png" alt=""> 卷被
<div class="title-text">日出:{{ sunrise }}</div> <div class="title-text">日出:{{ sunrise }}</div>
<div class="title-text">日落:{{ sunset }}</div> <div class="title-text">日落:{{ sunset }}</div>
</div>
<div class="title-tips">卷被有效性设置</div>
<div class="flex-view">
<div class="input-btn">
<div
class="btn"
@click="changeOpen(1)"
:class="openIndex == 1 ? 'blue' : 'green'"
>
<img src="../../assets/image/irrigateSet2.png" alt="" />自动运行
</div> </div>
<div <div class="title-tips">卷被有效性设置</div>
class="btn" <div class="flex-view">
@click="changeOpen(2)" <div class="input-btn">
:class="openIndex == 2 ? 'blue' : 'green'" <div class="btn" @click="changeOpen(1)" :class="openIndex == 1 ? 'blue' : 'green'">
> <img src="../../assets/image/irrigateSet2.png" alt="" />自动运行
<img src="../../assets/image/irrigateSet3.png" alt="" />手动打开 </div>
</div> <div class="btn" @click="changeOpen(2)" :class="openIndex == 2 ? 'blue' : 'green'">
<div <img src="../../assets/image/irrigateSet3.png" alt="" />手动打开
class="btn" </div>
@click="changeOpen(3)" <div class="btn" @click="changeOpen(3)" :class="openIndex == 3 ? 'blue' : 'green'">
:class="openIndex == 3 ? 'blue' : 'green'" <img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭
> </div>
<img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭 <div class="btn" @click="changeOpen(4)" :class="openIndex == 4 ? 'blue' : 'green'">
</div> <img src="../../assets/image/irrigateSet1.png" alt="" />停止
<div </div>
class="btn" </div>
@click="changeOpen(4)"
:class="openIndex == 4 ? 'blue' : 'green'"
>
<img src="../../assets/image/irrigateSet1.png" alt="" />停止
</div>
</div>
</div>
<div class="flex-view"> </div>
<div
class="flex-sel padding-none" <div class="flex-view">
v-if="openTrue.length" <div class="flex-sel padding-none" v-if="openTrue.length" @click="changeOpenTrue(0)">
@click="changeOpenTrue(0)" <div v-if="openTrue[0] == 0" class="no-sel margin-none"></div>
> <div v-else class="sel margin-none"></div>
<div v-if="openTrue[0] == 0" class="no-sel margin-none"></div> </div>
<div v-else class="sel margin-none"></div> <div class="input-main">
</div> <span>①室外光照大于</span>
<div class="input-main"> <input @blur="blurChange10('21550', $event)" v-model="inputData['21550']"
<span>①室外光照大于</span> @input="changeCount10('21550', $event)" type="text" value="60" placeholder="60" />
<input <span>klx收拢卷被</span>
@blur="blurChange10('21550', $event)" </div>
v-model="inputData['21550']" </div>
@input="changeCount10('21550', $event)" <div class="flex-view">
type="text" <div class="flex-sel padding-none" v-if="openTrue.length" @click="changeOpenTrue(1)">
value="60" <div v-if="openTrue[1] == 0" class="no-sel margin-none"></div>
placeholder="60" <div v-else class="sel margin-none"></div>
/> </div>
<span>klx收拢卷被</span> <div class="input-main">
</div> <span>②日出</span>
<input @blur="blurChange('21551', $event)" v-model="inputData['21551']" @input="change('21551', $event)"
type="text" value="60" placeholder="60" />
<span>分钟收拢卷被</span>
</div>
</div>
<div class="flex-view">
<div class="flex-sel padding-none" v-if="openTrue.length" @click="changeOpenTrue(2)">
<div v-if="openTrue[2] == 0" class="no-sel margin-none"></div>
<div v-else class="sel margin-none"></div>
</div>
<div class="input-main">
<span>③室内1#平均温度低于</span>
<input @blur="blurChangeCount('21552', $event)" v-model="inputData['21552']"
@input="changeCountData('21552', $event)" type="text" value="60" placeholder="60" />
<span>展开卷被</span>
</div>
</div>
<div class="flex-view">
<div class="flex-sel padding-none" v-if="openTrue.length" @click="changeOpenTrue(3)">
<div v-if="openTrue[3] == 0" class="no-sel margin-none"></div>
<div v-else class="sel margin-none"></div>
</div>
<div class="input-main">
<span>④日落前</span>
<input @blur="blurChange('21553', $event)" v-model="inputData['21553']" @input="change('21553', $event)"
type="text" value="60" placeholder="60" />
<span>分钟展开卷被</span>
</div>
</div>
<div class="flex-view border-none">
<div class="input-main">
<div>卷被的行程时间</div>
<input @blur="blurChange('21554', $event)" v-model="inputData['21554']" @input="change('21554', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>卷被开窗的行程时间</div>
<input @blur="blurChange('21555', $event)" v-model="inputData['21555']" @input="change('21555', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>展开的输出通道</div>
<input @blur="blurChange('21556', $event)" v-model="inputData['21556']" @input="change('21556', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>收拢的输出通道</div>
<input @blur="blurChange('21557', $event)" v-model="inputData['21557']" @input="change('21557', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
</div>
</div> </div>
<div class="flex-view">
<div
class="flex-sel padding-none"
v-if="openTrue.length"
@click="changeOpenTrue(1)"
>
<div v-if="openTrue[1] == 0" class="no-sel margin-none"></div>
<div v-else class="sel margin-none"></div>
</div>
<div class="input-main">
<span>②日出</span>
<input
@blur="blurChange('21551', $event)"
v-model="inputData['21551']"
@input="change('21551', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>分钟收拢卷被</span>
</div>
</div>
<div class="flex-view">
<div
class="flex-sel padding-none"
v-if="openTrue.length"
@click="changeOpenTrue(2)"
>
<div v-if="openTrue[2] == 0" class="no-sel margin-none"></div>
<div v-else class="sel margin-none"></div>
</div>
<div class="input-main">
<span>③室内1#平均温度低于</span>
<input
@blur="blurChangeCount('21552', $event)"
v-model="inputData['21552']"
@input="changeCountData('21552', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>展开卷被</span>
</div>
</div>
<div class="flex-view">
<div
class="flex-sel padding-none"
v-if="openTrue.length"
@click="changeOpenTrue(3)"
>
<div v-if="openTrue[3] == 0" class="no-sel margin-none"></div>
<div v-else class="sel margin-none"></div>
</div>
<div class="input-main">
<span>④日落前</span>
<input
@blur="blurChange('21553', $event)"
v-model="inputData['21553']"
@input="change('21553', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>分钟展开卷被</span>
</div>
</div>
<div class="flex-view border-none">
<div class="input-main">
<div>卷被的行程时间</div>
<input
@blur="blurChange('21554', $event)"
v-model="inputData['21554']"
@input="change('21554', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>卷被开窗的行程时间</div>
<input
@blur="blurChange('21555', $event)"
v-model="inputData['21555']"
@input="change('21555', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>展开的输出通道</div>
<input
@blur="blurChange('21556', $event)"
v-model="inputData['21556']"
@input="change('21556', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>收拢的输出通道</div>
<input
@blur="blurChange('21557', $event)"
v-model="inputData['21557']"
@input="change('21557', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
openIndex: 1, openIndex: 1,
inputData: {}, inputData: {},
openTrue: [], openTrue: [],
sunrise: "00:00", sunrise: '00:00',
sunset: "00:00", sunset: '00:00'
};
},
//
watch: {
"$store.state.ControlData"(newVal) {
this.dataInit();
},
},
// vuex
beforeDestroy() {
var store = this.$store.state;
this.inputData["21548"] = this.openIndex;
var num = this.myReverse(this.openTrue).join("");
this.inputData["21549"] = parseInt(num, 2);
store.ControlData = this.inputData;
},
mounted() {
var store = this.$store.state;
// this.dataInit();
if (store.ControlData) {
this.dataInit();
}
//input
let inputList = document.querySelectorAll("input");
for (let index = 0; index < inputList.length; index++) {
inputList[index].onfocus = this.selectValue; //input
}
},
methods: {
//
myReverse(arr) {
return [...arr].reverse();
},
padString(str, length) {
return str.padStart(length, "0");
},
changeOpenTrue(index) {
if (this.openTrue[index] == 0) {
this.openTrue[index] = 1;
} else {
this.openTrue[index] = 0;
}
this.$forceUpdate();
var num = this.myReverse(this.openTrue).join("");
var dataNum = {
target: {
value: parseInt(num, 2),
},
};
this.changeBtn("21549", dataNum);
},
padString(str, length) {
return str.padStart(length, "0");
},
changeOpen(index) {
this.openIndex = index;
var dataNum = {
target: {
value: this.openIndex,
},
};
this.changeBtn(21548, dataNum);
},
// x/10
blurChange10(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
// x/10
changeCount10(code, el) {
var data = el.target.value * 10;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
//
blurChangeCount(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10 + 400,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeCountData(code, el) {
var data = el.target.value * 10 + 400;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
countData(data) {
if (data) {
return (data - 400) / 10;
} else {
return 0;
}
},
// x/10
countData10(data) {
if (data) {
return data / 10;
} else {
return 0;
}
},
get21549() {
var num1 = this.inputData["21549"];
var num11 = this.padString(num1.toString(2), 4);
var openList1New;
openList1New = num11.split("");
this.openTrue = openList1New.reverse();
},
getStatus(data) {
this.api.getControlGetState(data).then((res) => {
if (res.data.code == 200) {
this.sunrise = this.insertColonEveryTwoDigits(
this.convertToTimeMinutes(res.data.data["1021"])
);
this.sunset = this.insertColonEveryTwoDigits(
this.convertToTimeMinutes(res.data.data["1022"])
);
} }
});
}, },
//16 16 mounted() {
convertToTimeMinutes(hexValue) { this.dataInit();
// 16 //input
let hexString = hexValue.toString(16); let inputList = document.querySelectorAll('input');
for (let index = 0; index < inputList.length; index++) {
// 416 inputList[index].onfocus = this.selectValue;//input
while (hexString.length < 4) { }
hexString = "0" + hexString;
}
return hexString;
}, },
insertColonEveryTwoDigits(inputString) { methods: {
// 使 //
const chunks = inputString.match(/.{1,2}/g); myReverse(arr) {
return chunks.join(":"); return [...arr].reverse()
// 使join },
}, padString(str, length) {
dataInit() { return str.padStart(length, '0');
var store = this.$store.state; },
var store = this.$store.state; changeOpenTrue(index) {
this.inputData = store.ControlData; if (this.openTrue[index] == 0) {
this.openIndex = this.inputData["21548"]; this.openTrue[index] = 1
this.get21549(); } else {
// this.inputData['21552'] = this.countData(this.inputData['21552']) this.openTrue[index] = 0
// this.inputData['21550'] = this.countData10(this.inputData['21550']) }
// var data = { this.$forceUpdate();
// deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId, var num = this.myReverse(this.openTrue).join("")
// }; var dataNum = {
// this.api.readControl_fiveControl(data).then(res => { target: {
// console.log(res, 111); value: parseInt(num, 2),
// if (res.data.code == 200) { },
};
this.changeBtn('21549', dataNum);
},
padString(str, length) {
return str.padStart(length, '0');
},
changeOpen(index) {
this.openIndex = index
var dataNum = {
target: {
value: this.openIndex,
},
};
this.changeBtn(21548, dataNum);
},
// x/10
blurChange10(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
// } },
// x/10
changeCount10(code, el) {
var data = el.target.value * 10
var sendData = {
target: {
value: data
}
}
this.change(code, sendData)
},
//
blurChangeCount(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: (el.target.value * 10) + 400,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
// }) },
this.getStatus(data); changeCountData(code, el) {
}, var data = (el.target.value * 10) + 400
// var sendData = {
target: {
value: data
}
}
this.change(code, sendData)
},
countData(data) {
if (data) {
return (data - 400) / 10
} else {
return 0
}
},
// x/10
countData10(data) {
if (data) {
return data / 10
} else {
return 0
}
},
get21549() {
var num1 = this.inputData['21549']
var num11 = this.padString(num1.toString(2), 4)
var openList1New
openList1New = num11.split("")
this.openTrue = openList1New.reverse()
},
getStatus(data) {
this.api.getControlGetState(data).then(res => {
if (res.data.code == 200) {
this.sunrise = this.insertColonEveryTwoDigits(this.convertToTimeMinutes(res.data.data['1021']))
this.sunset = this.insertColonEveryTwoDigits(this.convertToTimeMinutes(res.data.data['1022']))
}
})
},
//16 16
convertToTimeMinutes(hexValue) {
// 16
let hexString = hexValue.toString(16);
// 416
while (hexString.length < 4) {
hexString = '0' + hexString;
}
return hexString;
},
insertColonEveryTwoDigits(inputString) {
// 使
const chunks = inputString.match(/.{1,2}/g);
return chunks.join(':')
// 使join
},
dataInit() {
var store = this.$store.state
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then(res => {
console.log(res, 111);
if (res.data.code == 200) {
this.inputData = res.data.data
this.openIndex = this.inputData['21548']
this.get21549()
this.inputData['21552'] = this.countData(this.inputData['21552'])
this.inputData['21550'] = this.countData10(this.inputData['21550'])
}
})
this.getStatus(data)
},
//
selectValue(e) { selectValue(e) {
var store = this.$store.state; var store = this.$store.state
store.nowInput = e.target.value; store.nowInput=e.target.value
e.currentTarget.select(); e.currentTarget.select();
}, },
// //
blurChange(code, el) { blurChange(code, el) {
var store = this.$store.state; var store = this.$store.state
var data = { var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code, regAddress: code,
num: el.target.value, num: el.target.value,
}; // }; //
if (this.timer) { if (this.timer) {
this.timer && clearInterval(this.timer); this.timer && clearInterval(this.timer);
this.changeData(data); this.changeData(data);
} }
},
changeBtn(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimerBtn(0, data);
},
//btn j*100
delayTimerBtn(i, data) {
const that = this;
//
let j = this.$store.state.lateSendBtn;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { },
++i; changeBtn(code, el) {
if (i == j) { var store = this.$store.state
that.changeData(data); var data = {
clearInterval(this.timer); equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
} regAddress: code,
}, 100); num: el.target.value,
}, };
change(code, el) { this.delayTimerBtn(0, data);
var store = this.$store.state; },
var data = { //btn j*100
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, delayTimerBtn(i, data) {
regAddress: code, const that = this;
num: el.target.value, //
}; let j = this.$store.state.lateSendBtn;
this.delayTimer(0, data); //
}, this.timer && clearInterval(this.timer);
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { this.timer = setInterval(() => {
++i; ++i;
if (i == j) { if (i == j) {
that.changeData(data); that.changeData(data);
clearInterval(this.timer); clearInterval(this.timer);
} }
}, 100); }, 100);
}, },
changeData(data) { change(code, el) {
var store = this.$store.state; var store = this.$store.state
this.api.postControlWrite(data).then((res) => { var data = {
if (res.data.code == 200) { equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
this.$message({ regAddress: code,
message: res.data.msg, num: el.target.value,
type: "success", };
this.delayTimer(0, data);
},
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => {
++i;
if (i == j) {
that.changeData(data);
clearInterval(this.timer);
}
}, 100);
},
changeData(data) {
var store = this.$store.state
this.api.postControlWrite(data).then((res) => {
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: "success",
});
store.nowInput=''
// this.dataInit();
} else {
this.inputData[data.regAddress]=store.nowInput
this.$message.error(res.data.msg);
}
this.timer = null
}); });
store.nowInput = ""; },
// this.dataInit();
} else {
this.inputData[data.regAddress] = store.nowInput;
this.$message.error(res.data.msg);
}
this.timer = null;
});
}, },
},
}; }
</script> </script>
<style lang="scss"></style> <style lang="scss"></style>

View File

@ -1,306 +1,267 @@
<template> <template>
<div class="waterPump wufang"> <div class="waterPump wufang">
<div class="table-title"> <div class="table-title">
<img src="../../assets/img/snowRemoval.png" alt="" /> 除雪 <img src="../../assets/img/snowRemoval.png" alt=""> 除雪
</div>
<div class="title-tips">除雪有效性设置</div>
<div class="flex-view">
<div class="input-btn">
<div
class="btn"
@click="changeOpen(1)"
:class="openIndex == 1 ? 'blue' : 'green'"
>
<img src="../../assets/image/irrigateSet2.png" alt="" />自动除雪
</div> </div>
<div <div class="title-tips">除雪有效性设置</div>
class="btn" <div class="flex-view">
@click="changeOpen(2)" <div class="input-btn">
:class="openIndex == 2 ? 'blue' : 'green'" <div class="btn" @click="changeOpen(1)" :class="openIndex == 1 ? 'blue' : 'green'">
> <img src="../../assets/image/irrigateSet2.png" alt="" />自动除雪
<img src="../../assets/image/irrigateSet3.png" alt="" />手动打开 </div>
</div> <div class="btn" @click="changeOpen(2)" :class="openIndex == 2 ? 'blue' : 'green'">
<div <img src="../../assets/image/irrigateSet3.png" alt="" />手动打开
class="btn" </div>
@click="changeOpen(3)" <div class="btn" @click="changeOpen(3)" :class="openIndex == 3 ? 'blue' : 'green'">
:class="openIndex == 3 ? 'blue' : 'green'" <img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭
> </div>
<img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭 </div>
</div>
</div>
</div>
<div class="flex-view"> </div>
<div class="input-main">
<span>一键除雪</span>
</div>
<div class="flex-sel">
<div
v-if="!openTrue"
class="no-sel"
@click="changeOpenTrue(true)"
></div>
<div v-else class="sel"></div>
启动
</div>
<div class="flex-sel">
<div
v-if="openTrue"
class="no-sel"
@click="changeOpenTrue(false)"
></div>
<div v-else class="sel"></div>
关闭
</div>
</div>
<div class="flex-view border-none"> <div class="flex-view">
<div class="input-main"> <div class="input-main">
<div>除雪时间</div> <span>一键除雪</span>
<input </div>
@blur="blurChange('21560', $event)" <div class="flex-sel">
v-model="inputData['21560']" <div v-if="!openTrue" class="no-sel" @click="changeOpenTrue(true)"></div>
@input="change('21560', $event)" <div v-else class="sel" ></div>
type="text" 启动
value="60" </div>
placeholder="60" <div class="flex-sel">
/> <div v-if="openTrue" class="no-sel" @click="changeOpenTrue(false)"></div>
<span></span> <div v-else class="sel" ></div>
</div> 关闭
<div class="input-main"> </div>
<div>打开或关闭输出通道</div> </div>
<input
@blur="blurChange('21561', $event)" <div class="flex-view border-none">
v-model="inputData['21561']" <div class="input-main">
@input="change('21561', $event)" <div>除雪时间</div>
type="text" <input @blur="blurChange('21560', $event)"
value="60" v-model="inputData['21560']"
placeholder="60" @input="change('21560', $event)"
/> type="text" value="60" placeholder="60" />
<span></span> <span></span>
</div> </div>
<div class="input-main">
<div>打开或关闭输出通道</div>
<input @blur="blurChange('21561', $event)"
v-model="inputData['21561']"
@input="change('21561', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
</div>
</div> </div>
</div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
openIndex: 1, openIndex: 1,
inputData: {}, inputData: {},
openTrue: false, openTrue: false,
}; }
},
//
watch: {
"$store.state.ControlData"(newVal) {
this.dataInit();
}, },
}, mounted() {
// vuex this.dataInit();
beforeDestroy() { //input
var store = this.$store.state; let inputList = document.querySelectorAll('input');
this.inputData["21558"]= this.openIndex for (let index = 0; index < inputList.length; index++) {
this.inputData["21559"] = this.openTrue ? 1 : 0; inputList[index].onfocus = this.selectValue;//input
store.ControlData = this.inputData; }
}, },
mounted() { methods: {
var store = this.$store.state; changeOpenTrue(istrue) {
// this.dataInit(); this.openTrue = istrue
if (store.ControlData) { var dataNum = {
this.dataInit(); target: {
} value: this.openTrue ? 1 : 0,
//input },
let inputList = document.querySelectorAll("input"); };
for (let index = 0; index < inputList.length; index++) { this.changeBtn(21559, dataNum);
inputList[index].onfocus = this.selectValue; //input
}
},
methods: {
changeOpenTrue(istrue) {
this.openTrue = istrue;
var dataNum = {
target: {
value: this.openTrue ? 1 : 0,
}, },
}; padString(str, length) {
this.changeBtn(21559, dataNum); return str.padStart(length, '0');
},
padString(str, length) {
return str.padStart(length, "0");
},
changeOpen(index) {
this.openIndex = index;
var dataNum = {
target: {
value: this.openIndex,
}, },
}; changeOpen(index) {
this.changeBtn(21558, dataNum); this.openIndex = index
}, var dataNum = {
// x/10 target: {
blurChange10(code, el) { value: this.openIndex,
var store = this.$store.state; },
var data = { };
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, this.changeBtn(21558, dataNum);
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
// x/10
changeCount10(code, el) {
var data = el.target.value * 10;
var sendData = {
target: {
value: data,
}, },
}; // x/10
this.change(code, sendData); blurChange10(code, el) {
}, var store = this.$store.state
// var data = {
blurChangeCount(code, el) { equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
var store = this.$store.state; regAddress: code,
var data = { num: el.target.value * 10,
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, }; //
regAddress: code, if (this.timer) {
num: el.target.value * 10 + 400, this.timer && clearInterval(this.timer);
}; // this.changeData(data);
if (this.timer) { }
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeCountData(code, el) {
var data = el.target.value * 10 + 400;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
countData(data) {
if (data) {
return (data - 400) / 10;
} else {
return 0;
}
},
// x/10
countData10(data) {
if (data) {
return data / 10;
} else {
return 0;
}
},
dataInit() {
var store = this.$store.state;
this.inputData = store.ControlData;
this.openIndex = this.inputData["21558"];
this.openTrue = this.inputData["21559"] == 0 ? false : true;
// this.inputData['21544'] = this.countData(this.inputData['21544'])
// var data = {
// deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
// }; },
// this.api.readControl_fiveControl(data).then(res => { // x/10
// console.log(res, 111); changeCount10(code, el) {
var data = el.target.value * 10
var sendData = {
target: {
value: data
}
}
this.change(code, sendData)
},
//
blurChangeCount(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: (el.target.value * 10) + 400,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
// }) },
}, changeCountData(code, el) {
// var data = (el.target.value * 10) + 400
var sendData = {
target: {
value: data
}
}
this.change(code, sendData)
},
countData(data) {
if (data) {
return (data - 400) / 10
} else {
return 0
}
},
// x/10
countData10(data) {
if (data) {
return data / 10
} else {
return 0
}
},
dataInit() {
var store = this.$store.state
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then(res => {
console.log(res, 111);
this.inputData = res.data.data
this.openIndex = this.inputData['21558']
this.openTrue = this.inputData['21559'] == 0 ? false : true
this.inputData['21544'] = this.countData(this.inputData['21544'])
})
},
//
selectValue(e) { selectValue(e) {
var store = this.$store.state; var store = this.$store.state
store.nowInput = e.target.value; store.nowInput=e.target.value
e.currentTarget.select(); e.currentTarget.select();
}, },
// //
blurChange(code, el) { blurChange(code, el) {
var store = this.$store.state; var store = this.$store.state
var data = { var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code, regAddress: code,
num: el.target.value, num: el.target.value,
}; // }; //
if (this.timer) { if (this.timer) {
this.timer && clearInterval(this.timer); this.timer && clearInterval(this.timer);
this.changeData(data); this.changeData(data);
} }
},
changeBtn(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimerBtn(0, data);
},
//btn j*100
delayTimerBtn(i, data) {
const that = this;
//
let j = this.$store.state.lateSendBtn;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { },
++i; changeBtn(code, el) {
if (i == j) { var store = this.$store.state
that.changeData(data); var data = {
clearInterval(this.timer); equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
} regAddress: code,
}, 100); num: el.target.value,
}, };
change(code, el) { this.delayTimerBtn(0, data);
var store = this.$store.state; },
var data = { //btn j*100
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, delayTimerBtn(i, data) {
regAddress: code, const that = this;
num: el.target.value, //
}; let j = this.$store.state.lateSendBtn;
this.delayTimer(0, data); //
}, this.timer && clearInterval(this.timer);
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { this.timer = setInterval(() => {
++i; ++i;
if (i == j) { if (i == j) {
that.changeData(data); that.changeData(data);
clearInterval(this.timer); clearInterval(this.timer);
} }
}, 100); }, 100);
}, },
changeData(data) { change(code, el) {
var store = this.$store.state; var store = this.$store.state
this.api.postControlWrite(data).then((res) => { var data = {
if (res.data.code == 200) { equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
this.$message({ regAddress: code,
message: res.data.msg, num: el.target.value,
type: "success", };
this.delayTimer(0, data);
},
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => {
++i;
if (i == j) {
that.changeData(data);
clearInterval(this.timer);
}
}, 100);
},
changeData(data) {
var store = this.$store.state
this.api.postControlWrite(data).then((res) => {
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: "success",
});
store.nowInput=''
// this.dataInit();
} else {
this.inputData[data.regAddress]=store.nowInput
this.$message.error(res.data.msg);
}
this.timer = null
}); });
store.nowInput = ""; },
// this.dataInit();
} else {
this.inputData[data.regAddress] = store.nowInput;
this.$message.error(res.data.msg);
}
this.timer = null;
});
}, },
},
}; }
</script> </script>
<style lang="scss"></style> <style lang="scss"></style>

View File

@ -1,467 +1,372 @@
<template> <template>
<div class="waterPump wufang"> <div class="waterPump wufang">
<div class="table-title"> <div class="table-title">
<img src="../../assets/img/uptake.png" alt="" /> 上风口 <img src="../../assets/img/uptake.png" alt=""> 上风口
</div>
<div class="title-tips">上风口有效性设置</div>
<div class="flex-view">
<div class="input-btn">
<div
class="btn"
@click="changeOpen(1)"
:class="openIndex == 1 ? 'blue' : 'green'"
>
<img src="../../assets/image/irrigateSet2.png" alt="" />自动运行
</div> </div>
<div <div class="title-tips">上风口有效性设置</div>
class="btn" <div class="flex-view">
@click="changeOpen(2)" <div class="input-btn">
:class="openIndex == 2 ? 'blue' : 'green'" <div class="btn" @click="changeOpen(1)" :class="openIndex == 1 ? 'blue' : 'green'">
> <img src="../../assets/image/irrigateSet2.png" alt="" />自动运行
<img src="../../assets/image/irrigateSet3.png" alt="" />手动打开 </div>
<div class="btn" @click="changeOpen(2)" :class="openIndex == 2 ? 'blue' : 'green'">
<img src="../../assets/image/irrigateSet3.png" alt="" />手动打开
</div>
<div class="btn" @click="changeOpen(3)" :class="openIndex == 3 ? 'blue' : 'green'">
<img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭
</div>
<div class="btn" @click="changeOpen(4)" :class="openIndex == 4 ? 'blue' : 'green'">
<img src="../../assets/image/irrigateSet1.png" alt="" />停止
</div>
</div>
</div> </div>
<div <div class="flex-view">
class="btn" <div class="input-main border-right">
@click="changeOpen(3)" <span>室内1#平均温度达到</span>
:class="openIndex == 3 ? 'blue' : 'green'" <input @blur="blurChangeCount('21532', $event)" v-model="inputData['21532']"
> @input="changeCountData('21532', $event)" type="text" value="60" placeholder="60" />
<img src="../../assets/image/irrigateSet1.png" alt="" />手动关闭 <span>启动</span>
</div>
<div class="input-main border-right">
<span>滞回带</span>
<input @blur="blurChange10('21533', $event)" v-model="inputData['21533']"
@input="changeCount10('21533', $event)" type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main border-right">
<span></span>
<input @blur="blurChange('21534', $event)" v-model="inputData['21534']" @input="change('21534', $event)"
type="text" value="60" placeholder="60" />
<span>步打开</span>
</div>
<div class="input-main">
<span>分步打开间隔时间</span>
<input @blur="blurChange('21537', $event)" v-model="inputData['21537']" @input="change('21537', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
</div> </div>
<div <div class="flex-view">
class="btn" <div class="flex-sel border-right" @click="changeOpenTrue(0)">
@click="changeOpen(4)" <div v-if="openTrue[0] == 0" class="no-sel"></div>
:class="openIndex == 4 ? 'blue' : 'green'" <div v-else class="sel"></div>
> 计算的最大开度
<img src="../../assets/image/irrigateSet1.png" alt="" />停止 </div>
<div class="flex-sel border-right" @click="changeOpenTrue(1)">
<div v-if="openTrue[1] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
大风保护有效
</div>
<div class="flex-sel border-right" @click="changeOpenTrue(2)">
<div v-if="openTrue[2] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
下雨保护
</div>
<div class="flex-sel border-right" @click="changeOpenTrue(3)">
<div v-if="openTrue[3] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
有雨量桶检测
</div>
<div class="input-main border-right">
<span>最大开度</span>
<span>{{ statusNum }}</span>
<span>%</span>
</div>
<div class="input-main">
<span>开度系数</span>
<input @blur="blurChange('21536', $event)" v-model="inputData['21536']" @input="change('21536', $event)"
type="text" value="60" placeholder="60" />
</div>
</div>
<div class="flex-view">
<div class="input-main">
<div>上风口的行程时间</div>
<input @blur="blurChange('21538', $event)" v-model="inputData['21538']" @input="change('21538', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>打开的通道</div>
<input @blur="blurChange('21539', $event)" v-model="inputData['21539']" @input="change('21539', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<div>关闭的通道</div>
<input @blur="blurChange('21540', $event)" v-model="inputData['21540']" @input="change('21540', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
</div>
<div class="flex-view border-none">
<div class="input-main border-right">
<span>上风口风速大于多少</span>
<input @blur="blurChange10('21562', $event)"
v-model="inputData['21562']"
@input="changeCount10('21562', $event)"
type="text" value="60" placeholder="60" />
<span>m/s,禁止开窗</span>
</div>
<div class="input-main border-right">
<span>大风保护时间</span>
<input @blur="blurChange('21563', $event)" v-model="inputData['21563']" @input="change('21563', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
<div class="input-main">
<span>下雨检测时间</span>
<input @blur="blurChange('21564', $event)" v-model="inputData['21564']" @input="change('21564', $event)"
type="text" value="60" placeholder="60" />
<span></span>
</div>
</div> </div>
</div>
</div> </div>
<div class="flex-view">
<div class="input-main border-right">
<span>室内1#平均温度达到</span>
<input
@blur="blurChangeCount('21532', $event)"
v-model="inputData['21532']"
@input="changeCountData('21532', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>启动</span>
</div>
<div class="input-main border-right">
<span>滞回带</span>
<input
@blur="blurChange10('21533', $event)"
v-model="inputData['21533']"
@input="changeCount10('21533', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main border-right">
<span></span>
<input
@blur="blurChange('21534', $event)"
v-model="inputData['21534']"
@input="change('21534', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>步打开</span>
</div>
<div class="input-main">
<span>分步打开间隔时间</span>
<input
@blur="blurChange('21537', $event)"
v-model="inputData['21537']"
@input="change('21537', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
</div>
<div class="flex-view">
<div class="flex-sel border-right" @click="changeOpenTrue(0)">
<div v-if="openTrue[0] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
计算的最大开度
</div>
<div class="flex-sel border-right" @click="changeOpenTrue(1)">
<div v-if="openTrue[1] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
大风保护有效
</div>
<div class="flex-sel border-right" @click="changeOpenTrue(2)">
<div v-if="openTrue[2] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
下雨保护
</div>
<div class="flex-sel border-right" @click="changeOpenTrue(3)">
<div v-if="openTrue[3] == 0" class="no-sel"></div>
<div v-else class="sel"></div>
有雨量桶检测
</div>
<div class="input-main border-right">
<span>最大开度</span>
<span>{{ statusNum }}</span>
<span>%</span>
</div>
<div class="input-main">
<span>开度系数</span>
<input
@blur="blurChange('21536', $event)"
v-model="inputData['21536']"
@input="change('21536', $event)"
type="text"
value="60"
placeholder="60"
/>
</div>
</div>
<div class="flex-view">
<div class="input-main">
<div>上风口的行程时间</div>
<input
@blur="blurChange('21538', $event)"
v-model="inputData['21538']"
@input="change('21538', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>打开的通道</div>
<input
@blur="blurChange('21539', $event)"
v-model="inputData['21539']"
@input="change('21539', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<div>关闭的通道</div>
<input
@blur="blurChange('21540', $event)"
v-model="inputData['21540']"
@input="change('21540', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
</div>
<div class="flex-view border-none">
<div class="input-main border-right">
<span>上风口风速大于多少</span>
<input
@blur="blurChange10('21562', $event)"
v-model="inputData['21562']"
@input="changeCount10('21562', $event)"
type="text"
value="60"
placeholder="60"
/>
<span>m/s,禁止开窗</span>
</div>
<div class="input-main border-right">
<span>大风保护时间</span>
<input
@blur="blurChange('21563', $event)"
v-model="inputData['21563']"
@input="change('21563', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
<div class="input-main">
<span>下雨检测时间</span>
<input
@blur="blurChange('21564', $event)"
v-model="inputData['21564']"
@input="change('21564', $event)"
type="text"
value="60"
placeholder="60"
/>
<span></span>
</div>
</div>
</div>
</template> </template>
<script> <script>
export default { export default {
data() { data() {
return { return {
openIndex: 1, openIndex: 1,
inputData: {}, inputData: {},
openTrue: [], openTrue: [],
statusNum: 0, statusNum:0,
statusInterval: null, statusInterval:null,
};
},
//
watch: {
"$store.state.ControlData"(newVal) {
this.dataInit();
},
},
// vuex
beforeDestroy() {
var store = this.$store.state;
this.inputData["21530"] = this.openIndex;
var num = this.myReverse(this.openTrue).join("");
this.inputData["21531"] = parseInt(num, 2);
store.ControlData = this.inputData;
},
beforeDestroy() {
clearInterval(this.statusInterval) && this.statusInterval;
},
mounted() {
var store = this.$store.state;
// this.dataInit();
if (store.ControlData) {
this.dataInit();
}
//input
let inputList = document.querySelectorAll("input");
for (let index = 0; index < inputList.length; index++) {
inputList[index].onfocus = this.selectValue; //input
}
},
methods: {
//
myReverse(arr) {
return [...arr].reverse();
},
changeOpenTrue(index) {
if (this.openTrue[index] == 0) {
this.openTrue[index] = 1;
} else {
this.openTrue[index] = 0;
}
this.$forceUpdate();
var num = this.myReverse(this.openTrue).join("");
var dataNum = {
target: {
value: parseInt(num, 2),
},
};
this.changeBtn("21531", dataNum);
},
get21531() {
var num1 = this.inputData["21531"];
var num11 = this.padString(num1.toString(2), 4);
var openList1New;
openList1New = num11.split("");
this.openTrue = openList1New.reverse();
},
padString(str, length) {
return str.padStart(length, "0");
},
changeOpen(index) {
this.openIndex = index;
var dataNum = {
target: {
value: this.openIndex,
},
};
this.changeBtn(21530, dataNum);
},
// x/10
blurChange10(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
// x/10
changeCount10(code, el) {
var data = el.target.value * 10;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
//
blurChangeCount(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10 + 400,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeCountData(code, el) {
var data = el.target.value * 10 + 400;
var sendData = {
target: {
value: data,
},
};
this.change(code, sendData);
},
countData(data) {
if (data) {
return (data - 400) / 10;
} else {
return 0;
}
},
// x/10
countData10(data) {
if (data) {
return data / 10;
} else {
return 0;
}
},
dataInit() {
var store = this.$store.state;
this.inputData = store.ControlData;
this.openIndex = this.inputData["21530"];
this.get21531();
// this.inputData['21532'] = this.countData(this.inputData['21532'])
// this.inputData['21533'] = this.countData10(this.inputData['21533'])
// this.inputData['21562'] = this.countData10(this.inputData['21562'])
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
// this.api.readControl_fiveControl(data).then(res => {
// if(res.data.code==200){
// this.inputData = res.data.data
// }
// })
this.getStatus(data);
clearInterval(this.statusInterval) && this.statusInterval;
this.statusInterval = setInterval(() => {
this.getStatus(data);
}, 3000);
},
getStatus(data) {
this.api.getControlGetState(data).then((res) => {
if (res.data.code == 200) {
this.statusNum = res.data.data["1015"];
} }
});
}, },
// beforeDestroy(){
clearInterval(this.statusInterval)&&this.statusInterval
},
mounted() {
this.dataInit();
//input
let inputList = document.querySelectorAll('input');
for (let index = 0; index < inputList.length; index++) {
inputList[index].onfocus = this.selectValue;//input
}
},
methods: {
//
myReverse(arr) {
return [...arr].reverse()
},
changeOpenTrue(index) {
if (this.openTrue[index] == 0) {
this.openTrue[index] = 1
} else {
this.openTrue[index] = 0
}
this.$forceUpdate();
var num = this.myReverse(this.openTrue).join("")
var dataNum = {
target: {
value: parseInt(num, 2),
},
};
this.changeBtn('21531', dataNum);
},
get21531() {
var num1 = this.inputData['21531']
var num11 = this.padString(num1.toString(2), 4)
var openList1New
openList1New = num11.split("")
this.openTrue = openList1New.reverse()
},
padString(str, length) {
return str.padStart(length, '0');
},
changeOpen(index) {
this.openIndex = index
var dataNum = {
target: {
value: this.openIndex,
},
};
this.changeBtn(21530, dataNum);
},
// x/10
blurChange10(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value * 10,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
// x/10
changeCount10(code, el) {
var data = el.target.value * 10
var sendData = {
target: {
value: data
}
}
this.change(code, sendData)
},
//
blurChangeCount(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: (el.target.value * 10) + 400,
}; //
if (this.timer) {
this.timer && clearInterval(this.timer);
this.changeData(data);
}
},
changeCountData(code, el) {
var data = (el.target.value * 10) + 400
var sendData = {
target: {
value: data
}
}
this.change(code, sendData)
},
countData(data) {
if (data) {
return (data - 400) / 10
} else {
return 0
}
},
// x/10
countData10(data) {
if (data) {
return data / 10
} else {
return 0
}
},
dataInit() {
var store = this.$store.state
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then(res => {
if(res.data.code==200){
this.inputData = res.data.data
this.openIndex = this.inputData['21530']
this.get21531()
this.inputData['21532'] = this.countData(this.inputData['21532'])
this.inputData['21533'] = this.countData10(this.inputData['21533'])
this.inputData['21562'] = this.countData10(this.inputData['21562'])
}
})
this.getStatus(data)
clearInterval(this.statusInterval)&&this.statusInterval
this.statusInterval=setInterval(() => {
this.getStatus(data)
}, 3000);
},
getStatus(data){
this.api.getControlGetState(data).then(res=>{
if(res.data.code==200){
this.statusNum=res.data.data['1015']
}
})
},
//
selectValue(e) { selectValue(e) {
var store = this.$store.state; var store = this.$store.state
store.nowInput = e.target.value; store.nowInput=e.target.value
e.currentTarget.select(); e.currentTarget.select();
}, },
// //
blurChange(code, el) { blurChange(code, el) {
var store = this.$store.state; var store = this.$store.state
var data = { var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code, regAddress: code,
num: el.target.value, num: el.target.value,
}; // }; //
if (this.timer) { if (this.timer) {
this.timer && clearInterval(this.timer); this.timer && clearInterval(this.timer);
this.changeData(data); this.changeData(data);
} }
},
changeBtn(code, el) {
var store = this.$store.state;
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimerBtn(0, data);
},
//btn j*100
delayTimerBtn(i, data) {
const that = this;
//
let j = this.$store.state.lateSendBtn;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { },
++i; changeBtn(code, el) {
if (i == j) { var store = this.$store.state
that.changeData(data); var data = {
clearInterval(this.timer); equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
} regAddress: code,
}, 100); num: el.target.value,
}, };
change(code, el) { this.delayTimerBtn(0, data);
var store = this.$store.state; },
var data = { //btn j*100
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId, delayTimerBtn(i, data) {
regAddress: code, const that = this;
num: el.target.value, //
}; let j = this.$store.state.lateSendBtn;
this.delayTimer(0, data); //
}, this.timer && clearInterval(this.timer);
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => { this.timer = setInterval(() => {
++i; ++i;
if (i == j) { if (i == j) {
that.changeData(data); that.changeData(data);
clearInterval(this.timer); clearInterval(this.timer);
} }
}, 100); }, 100);
}, },
changeData(data) { change(code, el) {
var store = this.$store.state; var store = this.$store.state
this.api.postControlWrite(data).then((res) => { var data = {
if (res.data.code == 200) { equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
this.$message({ regAddress: code,
message: res.data.msg, num: el.target.value,
type: "success", };
this.delayTimer(0, data);
},
// j*100
delayTimer(i, data) {
const that = this;
//
let j = this.$store.state.lateSend;
//
this.timer && clearInterval(this.timer);
this.timer = setInterval(() => {
++i;
if (i == j) {
that.changeData(data);
clearInterval(this.timer);
}
}, 100);
},
changeData(data) {
var store = this.$store.state
this.api.postControlWrite(data).then((res) => {
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: "success",
});
store.nowInput=''
// this.dataInit();
} else {
this.inputData[data.regAddress]=store.nowInput
this.$message.error(res.data.msg);
}
this.timer = null
}); });
store.nowInput = ""; },
// this.dataInit();
} else {
this.inputData[data.regAddress] = store.nowInput;
this.$message.error(res.data.msg);
}
this.timer = null;
});
}, },
},
}; }
</script> </script>
<style lang="scss"></style> <style lang="scss"></style>

View File

@ -65,24 +65,8 @@ export default {
inputData: {}, inputData: {},
} }
}, },
//
watch: {
"$store.state.ControlData"(newVal) {
this.dataInit();
},
},
// vuex
beforeDestroy() {
var store = this.$store.state;
this.inputData['21520']= this.openIndex
store.ControlData = this.inputData;
},
mounted() { mounted() {
var store = this.$store.state; this.dataInit();
// this.dataInit();
if(store.ControlData){
this.dataInit();
}
//input //input
let inputList = document.querySelectorAll('input'); let inputList = document.querySelectorAll('input');
for (let index = 0; index < inputList.length; index++) { for (let index = 0; index < inputList.length; index++) {
@ -166,22 +150,22 @@ export default {
}, },
dataInit() { dataInit() {
var store = this.$store.state var store = this.$store.state
this.inputData = store.ControlData var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_fiveControl(data).then(res => {
if(res.data.code==200){
this.inputData = res.data.data
this.openIndex = this.inputData['21520'] this.openIndex = this.inputData['21520']
// this.inputData['21521'] = this.countData(this.inputData['21521']) this.inputData['21521'] = this.countData(this.inputData['21521'])
// this.inputData['21522'] = this.countData10(this.inputData['21522']) this.inputData['21522'] = this.countData10(this.inputData['21522'])
// this.inputData['21523'] = this.countData(this.inputData['21523']) this.inputData['21523'] = this.countData(this.inputData['21523'])
// this.inputData['21524'] = this.countData(this.inputData['21524']) this.inputData['21524'] = this.countData(this.inputData['21524'])
// var data = { }
// deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
// };
// this.api.readControl_fiveControl(data).then(res => {
// if(res.data.code==200){
// }
// }) })
}, },
// //
selectValue(e) { selectValue(e) {