From 9ee2b57776b9751652a0e16cb297c674506f38de Mon Sep 17 00:00:00 2001 From: fanluyan <754122931@qq.com> Date: Wed, 2 Aug 2023 14:40:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=8D=E7=85=A7=E8=A3=85=E7=BD=AE=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=A7=84=E7=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/setdevice.vue | 16 +- .../components/setschedule.vue | 493 +++++++++++++++++- src/views/realTimeMonitor/index.vue | 8 +- 3 files changed, 491 insertions(+), 26 deletions(-) diff --git a/src/views/devicePhotoSchedule/components/setdevice.vue b/src/views/devicePhotoSchedule/components/setdevice.vue index cd4150b..5bc8730 100644 --- a/src/views/devicePhotoSchedule/components/setdevice.vue +++ b/src/views/devicePhotoSchedule/components/setdevice.vue @@ -298,6 +298,8 @@ export default { var Etime = moment(this.ruleSchedule[j].endTime) .add(this.allCheckNode[i].offsetNum, "minute") .format(); + var lastETime = moment(this.ruleSchedule[j].endTime).format(); + var spanTime = this.ruleSchedule[j].span; console.log(spanTime); console.log(moment(this.ruleSchedule[j].endTime).hour()); @@ -378,14 +380,17 @@ export default { console.log("河南规约"); //偏移时间 //this.getDayArr(startDay, endDay); + let startDay = Stime; let endDay = Etime; + var lastendDay = lastETime; + console.log(lastETime); console.log(startDay, endDay); let startVal = this.$moment(new Date(startDay)).format( "YYYY-MM-DD HH:mm" ); console.log(startVal); - + console.log(moment().isSame(moment(endDay), "day")); while (this.$moment(startVal).isBefore(endDay)) { dayArr.push(startVal); // 自增 @@ -396,9 +401,12 @@ export default { } // // 将结束日期的天放进数组 - dayArr.push( - this.$moment(new Date(endDay)).format("YYYY-MM-DD HH:mm") - ); + if (!moment().isSame(moment(endDay), "day")) { + dayArr.push( + this.$moment(new Date(lastETime)).format("YYYY-MM-DD HH:mm") + ); + } + console.log(dayArr); for (var k = 0; k < dayArr.length; k++) { //console.log(moment(dayArr[k]).hour()); diff --git a/src/views/realTimeMonitor/components/setschedule.vue b/src/views/realTimeMonitor/components/setschedule.vue index 309dd5a..ebcecc3 100644 --- a/src/views/realTimeMonitor/components/setschedule.vue +++ b/src/views/realTimeMonitor/components/setschedule.vue @@ -50,12 +50,22 @@
- {{ val.startTime }} ~ - {{ val.endTime }} + {{ + new Date(val.startTime).getHours() < 10 + ? "0" + new Date(val.startTime).getHours() + : new Date(val.startTime).getHours() + }}: + {{ + new Date(val.startTime).getMinutes() < 10 + ? "0" + new Date(val.startTime).getMinutes() + : new Date(val.startTime).getMinutes() + }} + ~ + {{ + new Date(val.endTime).getHours() < 10 + ? "0" + new Date(val.endTime).getHours() + : new Date(val.endTime).getHours() + }}: + {{ + new Date(val.endTime).getMinutes() < 10 + ? "0" + new Date(val.endTime).getMinutes() + : new Date(val.endTime).getMinutes() + }} 间隔:{{ val.span }}分钟
@@ -262,6 +304,7 @@ import { getCmaSchelduleUpload, getTermStatus, } from "@/utils/api/index"; +import moment from "moment"; export default { props: { title: String, @@ -314,6 +357,7 @@ export default { offsetnum: "", setNum: Math.floor(Math.random() * 10), compareloading: false, + timeProtocol: "", }; }, mounted() { @@ -324,9 +368,11 @@ export default { console.log(tab, event); }, //获取单个设备通道 - getSingleAccess(id, zzid) { + getSingleAccess(id, zzid, protocol) { this.newcmdzzid = zzid; this.selfacilityId = id; + this.timeProtocol = protocol; + console.log(this.timeProtocol); getChannelListJoggle({ termid: id }) .then((res) => { this.accesslist = res.data.list; @@ -340,10 +386,97 @@ export default { terminalid: this.selfacilityId, }) .then((res) => { - // this.$message.success("查询成功"); - // this.shedulenr = res.data.list.join("; ") this.shedulenr = res.data.list; + console.log(this.shedulenr); + //湖南规约 + if (this.timeProtocol == "65283") { + console.log("1111111111111111111111111111111111111"); + var hnarr = []; + for (var i = 0; i < this.shedulenr.length; i++) { + if (i % 3 == 0) { + var hnobj = {}; + hnobj.span = + this.shedulenr[i].hour * 60 + this.shedulenr[i].minute; + console.log("时间间隔"); + } else if (i % 3 == 1) { + console.log("开始时间"); + console.log("a"); + let timeDate = new Date(); + timeDate.setHours(this.shedulenr[i].hour); + timeDate.setMinutes(this.shedulenr[i].minute); + console.log(timeDate); + hnobj.startTime = timeDate; + } else if (i % 3 == 2) { + console.log("结束时间"); + hnobj.endTime = + this.shedulenr[i].hour + ":" + this.shedulenr[i].minute; + let timeDate = new Date(); + timeDate.setHours(this.shedulenr[i].hour); + timeDate.setMinutes(this.shedulenr[i].minute); + // hnobj.endTime = c.toJSON(); + let timeHour = + timeDate.getHours() < 10 + ? "0" + timeDate.getHours() + : timeDate.getHours(); + let timeMinute = + timeDate.getMinutes() < 10 + ? "0" + timeDate.getMinutes() + : timeDate.getMinutes(); + hnobj.endTime = timeDate; + hnarr.push(hnobj); + } + } + console.log("222222222222222222"); + console.log(hnarr); + console.log("22222222222222222222222"); + let dayArr = []; + //根据开始时间结束时间生产数组 + for (let k = 0; k < hnarr.length; k++) { + console.log(hnarr[k].startTime); + console.log(hnarr[k].endTime); + console.log(hnarr[k].span); + let startDay = hnarr[k].startTime; + let endDay = hnarr[k].endTime; + console.log(startDay, endDay); + let startVal = this.$moment(new Date(startDay)).format( + "YYYY-MM-DD HH:mm" + ); + console.log(startVal); + while (this.$moment(startVal).isBefore(endDay)) { + dayArr.push(startVal); + // 自增 + startVal = this.$moment(new Date(startVal)) + .add(hnarr[k].span, "minute") + .format("YYYY-MM-DD HH:mm"); + console.log(startVal); + } + + // // 将结束日期的天放进数组 + dayArr.push( + this.$moment(new Date(endDay)).format("YYYY-MM-DD HH:mm") + ); + console.log(dayArr); + this.shedulenr = dayArr; + } + } + //河南规约 + if (this.timeProtocol == "65286") { + console.log("河南规约"); + var hnarr = []; + for (var i = 0; i < this.shedulenr.length; i++) { + console.log(this.shedulenr[i].hour); + let timeDate = new Date(); + timeDate.setHours(this.shedulenr[i].hour); + timeDate.setMinutes(this.shedulenr[i].minute); + + console.log(timeDate); + hnarr.push(timeDate); + } + console.log(hnarr); + this.shedulenr = hnarr; + } this.offsetnum = res.data.offset; + this.loading = false; }) .catch((err) => { @@ -362,9 +495,95 @@ export default { terminalid: this.selfacilityId, }) .then((res) => { - // this.$message.success("查询成功"); - // this.shedulenr = res.data.list.join("; ") this.shedulenr = res.data.list; + console.log(this.shedulenr); + //湖南规约 + if (this.timeProtocol == "65283") { + console.log("1111111111111111111111111111111111111"); + var hnarr = []; + for (var i = 0; i < this.shedulenr.length; i++) { + if (i % 3 == 0) { + var hnobj = {}; + hnobj.span = + this.shedulenr[i].hour * 60 + this.shedulenr[i].minute; + console.log("时间间隔"); + } else if (i % 3 == 1) { + console.log("开始时间"); + console.log("a"); + let timeDate = new Date(); + timeDate.setHours(this.shedulenr[i].hour); + timeDate.setMinutes(this.shedulenr[i].minute); + console.log(timeDate); + hnobj.startTime = timeDate; + } else if (i % 3 == 2) { + console.log("结束时间"); + hnobj.endTime = + this.shedulenr[i].hour + ":" + this.shedulenr[i].minute; + let timeDate = new Date(); + timeDate.setHours(this.shedulenr[i].hour); + timeDate.setMinutes(this.shedulenr[i].minute); + // hnobj.endTime = c.toJSON(); + let timeHour = + timeDate.getHours() < 10 + ? "0" + timeDate.getHours() + : timeDate.getHours(); + let timeMinute = + timeDate.getMinutes() < 10 + ? "0" + timeDate.getMinutes() + : timeDate.getMinutes(); + hnobj.endTime = timeDate; + hnarr.push(hnobj); + } + } + console.log("222222222222222222"); + console.log(hnarr); + console.log("22222222222222222222222"); + let dayArr = []; + //根据开始时间结束时间生产数组 + for (let k = 0; k < hnarr.length; k++) { + console.log(hnarr[k].startTime); + console.log(hnarr[k].endTime); + console.log(hnarr[k].span); + let startDay = hnarr[k].startTime; + let endDay = hnarr[k].endTime; + console.log(startDay, endDay); + let startVal = this.$moment(new Date(startDay)).format( + "YYYY-MM-DD HH:mm" + ); + console.log(startVal); + while (this.$moment(startVal).isBefore(endDay)) { + dayArr.push(startVal); + // 自增 + startVal = this.$moment(new Date(startVal)) + .add(hnarr[k].span, "minute") + .format("YYYY-MM-DD HH:mm"); + console.log(startVal); + } + + // // 将结束日期的天放进数组 + dayArr.push( + this.$moment(new Date(endDay)).format("YYYY-MM-DD HH:mm") + ); + console.log(dayArr); + this.shedulenr = dayArr; + } + } + //河南规约 + if (this.timeProtocol == "65286") { + console.log("河南规约"); + var hnarr = []; + for (var i = 0; i < this.shedulenr.length; i++) { + console.log(this.shedulenr[i].hour); + let timeDate = new Date(); + timeDate.setHours(this.shedulenr[i].hour); + timeDate.setMinutes(this.shedulenr[i].minute); + + console.log(timeDate); + hnarr.push(timeDate); + } + console.log(hnarr); + this.shedulenr = hnarr; + } this.offsetnum = res.data.offset; this.loading = false; }) @@ -405,6 +624,99 @@ export default { // this.shedulenr = res.data.list.join("; ") this.compareloading = false; this.newshedulenr = res.data.list; + //湖南规约 + if (this.timeProtocol == "65283") { + console.log("湖南规约"); + console.log("1111111111111111111111111111111111111"); + var hnarr = []; + for (var i = 0; i < this.newshedulenr.length; i++) { + if (i % 3 == 0) { + var hnobj = {}; + hnobj.span = + this.newshedulenr[i].hour * 60 + + this.newshedulenr[i].minute; + console.log("时间间隔"); + } else if (i % 3 == 1) { + console.log("开始时间"); + console.log("a"); + let timeDate = new Date(); + timeDate.setHours(this.newshedulenr[i].hour); + timeDate.setMinutes(this.newshedulenr[i].minute); + console.log(timeDate); + hnobj.startTime = timeDate; + } else if (i % 3 == 2) { + console.log("结束时间"); + hnobj.endTime = + this.newshedulenr[i].hour + + ":" + + this.newshedulenr[i].minute; + let timeDate = new Date(); + timeDate.setHours(this.newshedulenr[i].hour); + timeDate.setMinutes(this.newshedulenr[i].minute); + // hnobj.endTime = c.toJSON(); + let timeHour = + timeDate.getHours() < 10 + ? "0" + timeDate.getHours() + : timeDate.getHours(); + let timeMinute = + timeDate.getMinutes() < 10 + ? "0" + timeDate.getMinutes() + : timeDate.getMinutes(); + hnobj.endTime = timeDate; + hnarr.push(hnobj); + } + } + console.log("222222222222222222"); + console.log(hnarr); + console.log("22222222222222222222222"); + let dayArr = []; + //根据开始时间结束时间生产数组 + for (let k = 0; k < hnarr.length; k++) { + console.log(hnarr[k].startTime); + console.log(hnarr[k].endTime); + console.log(hnarr[k].span); + let startDay = hnarr[k].startTime; + let endDay = hnarr[k].endTime; + console.log(startDay, endDay); + let startVal = this.$moment(new Date(startDay)).format( + "YYYY-MM-DD HH:mm" + ); + console.log(startVal); + while (this.$moment(startVal).isBefore(endDay)) { + dayArr.push(startVal); + // 自增 + startVal = this.$moment(new Date(startVal)) + .add(hnarr[k].span, "minute") + .format("YYYY-MM-DD HH:mm"); + console.log(startVal); + } + + // // 将结束日期的天放进数组 + + dayArr.push( + this.$moment(new Date(endDay)).format("YYYY-MM-DD HH:mm") + ); + + console.log(dayArr); + this.newshedulenr = dayArr; + } + } + //河南规约 + if (this.timeProtocol == "65286") { + console.log("河南规约"); + var hnarr = []; + for (var i = 0; i < this.newshedulenr.length; i++) { + console.log(this.newshedulenr[i].hour); + let timeDate = new Date(); + timeDate.setHours(this.newshedulenr[i].hour); + timeDate.setMinutes(this.newshedulenr[i].minute); + + console.log(timeDate); + hnarr.push(timeDate); + } + console.log(hnarr); + this.newshedulenr = hnarr; + } this.timernum = 0; // this.$message.success("查询成功"); clearInterval(this.timer); @@ -537,11 +849,14 @@ export default { }, //设置-获取所有通道 handleSet(val) { + console.log(this.setNum); + var deviceOffsetnum = this.setNum; this.loading = true; this.scheduleid = val.id; this.isShowset = true; console.log(val); - this.scheduleInfo = val.list; + this.scheduleInfo = val.listTime; + console.log("1111111", deviceOffsetnum); this.timeName = val.name; getScheduleRulelAccessList({ termid: this.selfacilityId }) .then((res) => { @@ -556,6 +871,8 @@ export default { zzname: this.listnr[0].list[0].list[0].name, zzcmid: this.listnr[0].list[0].list[0].cmdid, zzid: this.listnr[0].list[0].list[0].id, + zzprotocol: this.timeProtocol, + offsetNum: deviceOffsetnum, }; this.zzchannel = this.listnr[0].list[0].list[0].list; console.log(this.deviceListData); @@ -625,15 +942,149 @@ export default { getTermStatus({ termId: this.deviceListData.zzid }).then((res) => { console.log(res); if (res.data.isonline) { + var ruleBox = []; + //循环装置 + + //循环时间规则 + let timearr = []; + let dayArr = []; + console.log(this.scheduleInfo); + for (var j = 0; j < this.scheduleInfo.length; j++) { + var Stime = moment(this.scheduleInfo[j].startTime) + .add(this.deviceListData.offsetNum, "minute") + .format(); + var Etime = moment(this.scheduleInfo[j].endTime) + .add(this.deviceListData.offsetNum, "minute") + .format(); + var lastETime = moment(this.scheduleInfo[j].endTime).format(); + var spanTime = this.scheduleInfo[j].span; + console.log(Stime, Etime, spanTime); + console.log(moment(this.scheduleInfo[j].endTime).hour()); + //判断湖南规约 + if (this.deviceListData.zzprotocol == "65283") { + console.log("湖南规约"); + console.log(Stime, Etime); + console.log(typeof Stime); + console.log( + moment(this.scheduleInfo[j].endTime) + .add(this.deviceListData.offsetNum, "minute") + .hour() + ); + console.log( + moment(this.scheduleInfo[j].endTime) + .add(this.deviceListData.offsetNum, "minute") + .minute() + ); + if (moment().isSame(moment(Etime), "day")) { + //如果是同一天 + timearr.push( + { + hour: Math.floor(this.scheduleInfo[j].span / 60), + minute: this.scheduleInfo[j].span % 60, + preset: 255, + }, + { + hour: moment(this.scheduleInfo[j].startTime) + .add(this.deviceListData.offsetNum, "minute") + .hour(), + minute: moment(this.scheduleInfo[j].startTime) + .add(this.deviceListData.offsetNum, "minute") + .minute(), + preset: 255, + }, + { + hour: moment(this.scheduleInfo[j].endTime) + .add(this.deviceListData.offsetNum, "minute") + .hour(), + minute: moment(this.scheduleInfo[j].endTime) + .add(this.deviceListData.offsetNum, "minute") + .minute(), + preset: 255, + } + ); + } else { + timearr.push( + { + hour: Math.floor(this.scheduleInfo[j].span / 60), + minute: this.scheduleInfo[j].span % 60, + preset: 255, + }, + { + hour: moment(this.scheduleInfo[j].startTime) + .add(this.deviceListData.offsetNum, "minute") + .hour(), + minute: moment(this.scheduleInfo[j].startTime) + .add(this.deviceListData.offsetNum, "minute") + .minute(), + preset: 255, + }, + { + hour: moment(this.scheduleInfo[j].endTime).hour(), + minute: moment(this.scheduleInfo[j].endTime).minute(), + preset: 255, + } + ); + } + + console.log(timearr); + } + } + + ////判断河南规约 + if (this.deviceListData.zzprotocol == "65286") { + console.log("河南规约"); + //偏移时间 + //this.getDayArr(startDay, endDay); + let startDay = Stime; + let endDay = Etime; + var lastendDay = lastETime; + console.log(startDay, endDay); + let startVal = this.$moment(new Date(startDay)).format( + "YYYY-MM-DD HH:mm" + ); + console.log(startVal); + + while (this.$moment(startVal).isBefore(endDay)) { + dayArr.push(startVal); + // 自增 + startVal = this.$moment(new Date(startVal)) + .add(spanTime, "minute") + .format("YYYY-MM-DD HH:mm"); + console.log(startVal); + } + + // // 将结束日期的天放进数组 + if (!moment().isSame(moment(endDay), "day")) { + dayArr.push( + this.$moment(new Date(lastETime)).format("YYYY-MM-DD HH:mm") + ); + } + console.log(dayArr); + for (var k = 0; k < dayArr.length; k++) { + //console.log(moment(dayArr[k]).hour()); + timearr.push({ + hour: moment(dayArr[k]).hour(), + minute: moment(dayArr[k]).minute(), + preset: 255, + }); + } + // return dayArr; + } + + var parmsobj = { + termid: this.deviceListData.zzid, + channelid: this.checkList, + offset: this.deviceListData.offsetNum, + list: timearr, + }; + console.log(parmsobj); + ruleBox.push(parmsobj); + + console.log(ruleBox); + setScheduleRulel({ scheduleid: this.scheduleid, - list: [ - { - termid: this.deviceListData.zzid, - channelidlist: [this.checkList], - offset: this.setNum, - }, - ], + list: ruleBox, }) .then((res) => { console.log(res); @@ -703,7 +1154,7 @@ export default { closebtn() { this.isShowset = false; this.checkList = ""; - this.setNum = Math.floor(Math.random() * 10); + // this.setNum = this.offsetnum; this.deviceList(); clearInterval(this.timers); diff --git a/src/views/realTimeMonitor/index.vue b/src/views/realTimeMonitor/index.vue index 2858cc0..9b178f7 100644 --- a/src/views/realTimeMonitor/index.vue +++ b/src/views/realTimeMonitor/index.vue @@ -343,6 +343,7 @@ export default { swiperLoading: false, zzCmdid: "", zztermId: "", + zzprotocol: "", //装置规约 dateValue: "", //选择日期 pickerOptions: { disabledDate(date) { @@ -406,6 +407,7 @@ export default { console.log(data); this.selectData = data; this.zztermId = data.id; + this.zzprotocol = data.protocol; this.CurrentData = data; //this.previewData = data; if (data.dyValue) { @@ -922,7 +924,11 @@ export default { handleSetSchedule() { this.clearfun(); this.$refs.setschedule_ref.display(); - this.$refs.setschedule_ref.getSingleAccess(this.zztermId, this.zzCmdid); + this.$refs.setschedule_ref.getSingleAccess( + this.zztermId, + this.zzCmdid, + this.zzprotocol + ); this.$refs.setschedule_ref.deviceList(); }, //线缆显示