浏览代码

数据优化

wyh 5 月之前
父节点
当前提交
1092a6f484

+ 64 - 4
src/views/modules_guAn/visualization/index.vue

@@ -152,7 +152,10 @@ export default {
       eqRealData: [],
       yuzhiData: [],
       yuzhiMarkData: [],
-      realTimeData: [],
+      realTimeData: {
+        wendu: [],
+        shidu: []
+      },
       fullData: [],
       fullModelData: [],
       websock: null,
@@ -293,11 +296,57 @@ export default {
       }
       // this.curveData = redata['设备历史值'] // 原来第一版后端传数格式
       if (redata['预制曲线']) {
-        this.realTimeData = redata['实时曲线']
+        // this.realTimeData = redata['实时曲线']
+        this.realTimeData.wendu = redata['实时曲线'].filter(item => item.name === '温度实值-实时')[0].subList
+        this.realTimeData.shidu = redata['实时曲线'].filter(item => item.name === '湿度实值-实时')[0].subList
         this.fullData = redata['全程曲线']
+        console.log("实时曲线", this.realTimeData, redata['实时曲线'])
       } else {
-        // console.log("实时曲线", this.realTimeData, redata['实时曲线'])
-        this.realTimeData = [...this.realTimeData, ...redata['实时曲线']]
+        // var wendu = redata['实时曲线'].filter(item => item.name === '温度实值-实时' || item.name === '当前温度值')
+        var wendu = redata['实时曲线'].find(item => item.name === '温度实值-实时' || item.name === '当前温度值').subList[0]
+        var shidu = redata['实时曲线'].find(item => item.name === '湿度实值-实时' || item.name === '当前湿度值').subList[0]
+        console.log('实时温度',wendu)
+        // 如果是新增则做判断
+        var addWenduIndex = redata['实时曲线'].findIndex(item => item.name === '当前温度值')
+        var addShiduIndex = redata['实时曲线'].findIndex(item => item.name === '当前湿度值')
+        if(addWenduIndex !== -1 && this.realTimeData.wendu.length > 0){
+          // 获取第一个时间
+          console.log(addWenduIndex)
+          var startTime = this.realTimeData.wendu[0].logtime
+          console.log('开始', startTime)
+          // 获取最新时间
+          var endTime = wendu.logtime
+          // var endTime = wendu[0].subList[0].logtime
+          console.log('结束', endTime)
+          this.realTimeData.wendu.push(wendu)
+          // this.realTimeData.wendu = [...this.realTimeData.wendu, ...wendu]
+          // 判断间隔是否大于4小时
+          var isWenduDelete = this.getTimeDifference(startTime, endTime)
+          console.log('isWenduDelete', isWenduDelete)
+          if(isWenduDelete) { this.realTimeData.wendu.shift() }
+        } else {
+          // this.realTimeData.wendu = wendu
+          this.realTimeData.wendu = redata['实时曲线'].filter(item => item.name === '温度实值-实时')[0].subList
+        }
+        if(addShiduIndex !== -1 && this.realTimeData.shidu.length > 0){
+          // 获取第一个时间
+          console.log(addShiduIndex)
+          var startTime = this.realTimeData.shidu[0].logtime
+          console.log('开始', startTime)
+          // 获取最新时间
+          var endTime = shidu.logtime
+          // var endTime = shidu[0].subList[0].logtime
+          console.log('结束', endTime)
+          this.realTimeData.shidu.push(shidu)
+          // 判断间隔是否大于4小时
+          var isWenduDelete = this.getTimeDifference(startTime, endTime)
+          console.log('isWenduDelete', isWenduDelete)
+          if(isWenduDelete) { this.realTimeData.shidu.shift() }
+        } else {
+          this.realTimeData.shidu = redata['实时曲线'].filter(item => item.name === '湿度实值-实时')[0].subList
+        }
+        
+
         this.fullData = [...this.fullData, ...redata['全程曲线']]
       }
       if (this.isFullWebSocket) {
@@ -345,6 +394,17 @@ export default {
       console.log('断开连接', e)
       this.initWebSocket()
     },
+    // 判断时间
+    getTimeDifference(startTime, endTime){
+      // let dateTime = new Date(time.replace(/-/g, "/"));  // replace方法将 - 转为 /
+      // var time = '2024-04-15 10:09:00'
+      // var createDate = new Date(time);
+      // console.log(createDate, createDate.getTime())
+      //获取差值-秒  4小时的秒数为14400
+      var second = parseInt((new Date(endTime).getTime() - new Date(startTime).getTime())/(1000));
+      // console.log('时间戳', second)
+      return second > 14400 ? true : false
+    },
     // 点击循环时触发
     handleXunhuan(choose) {
       this.$refs.yuzhiCurve.chooseXunhuan.circname = choose

+ 48 - 43
src/views/modules_guAn/visualization/modules/RealTimeCurve.vue

@@ -50,6 +50,7 @@ export default {
       wenduData: [],
       shiduData: [],
       timeData: [],
+      nWendu: [],
       // fusheData: [150, 230, 224, 218, 135, 147, 260],
       // wenduData: [120, 132, 101, 134, 90, 230, 210],
       // shiduData: [220, 182, 191, 234, 290, 330, 310],
@@ -273,64 +274,68 @@ export default {
     },
     refreshData(data){
       console.log('0000',data)
-      if(data.length === 0){
+      if(data.wendu.length === 0 && data.shidu.length === 0){
         return
       }
-      var isWenduDelete = false
-      if(data.find(item => item.name === '当前温度值')){
-        // 获取第一个时间
-        var startTime = data.filter(item => item.name === '湿度实值-实时')[0].subList[0].logtime
-        // 获取最新时间
-        var endTime = data.filter(item => item.name === '当前温度值')[0].subList[0].logtime
-        // 判断间隔是否大于4小时
-        isWenduDelete = this.getTimeDifference(startTime, endTime)
-      }
-      var wendu = data.filter(item => item.name === '温度实值-实时' || item.name === '当前温度值')
-      var nWendu = []
-      for (let i = 0; i < wendu.length; i++) {
-        const element = wendu[i];
-        var item = element.subList
-        nWendu = [...nWendu, ...item]
-        console.log('isWenduDelete', isWenduDelete)
-        if(isWenduDelete){nWendu.shift()}
-      }
-      var isShiduDelete = false
-      if(data.find(item => item.name === '当前湿度值')){
-        // 获取第一个时间
-        var startTime = data.filter(item => item.name === '湿度实值-实时')[0].subList[0].logtime
-        // 获取最新时间
-        var endTime = data.filter(item => item.name === '当前湿度值')[0].subList[0].logtime
-        // 判断间隔是否大于4小时
-        isShiduDelete = this.getTimeDifference(startTime, endTime)
-      }
-      var shidu = data.filter(item => item.name === '湿度实值-实时' || item.name === '当前湿度值')
-      var nShidu = []
-      for (let i = 0; i < shidu.length; i++) {
-        const element = shidu[i];
-        var item = element.subList
-        nShidu = [...nShidu, ...item]
-        if(isShiduDelete){nShidu.shift()}
-      }
+      // var isWenduDelete = false
+      // // console.log(data.findLast(item => item.name === '当前温度值'))
+      // if(data.findIndex(item => item.name === '当前温度值') !== -1){
+      //   // 获取第一个时间
+      //   var startTime = data.filter(item => item.name === '湿度实值-实时')[0].subList[0].logtime
+      //   // console.log('开始', startTime)
+      //   // 获取最新时间
+      //   var newDataArr = data.filter(item => item.name === '当前温度值')
+      //   var endTime = newDataArr[newDataArr.length - 1].subList[0].logtime
+      //   // console.log('结束', endTime)
+      //   // 判断间隔是否大于4小时
+      //   isWenduDelete = this.getTimeDifference(startTime, endTime)
+      // }
+      // var wendu = data.filter(item => item.name === '温度实值-实时' || item.name === '当前温度值')
+      // for (let i = 0; i < wendu.length; i++) {
+      //   const element = wendu[i];
+      //   var item = element.subList
+      //   this.nWendu = [...this.nWendu, ...item]
+      //   // console.log('isWenduDelete', isWenduDelete)
+      //   if(isWenduDelete){this.nWendu.shift()}
+      // }
+      // // console.log('nWendu', this.nWendu)
+      // var isShiduDelete = false
+      // if(data.findLast(item => item.name === '当前湿度值')){
+      //   // 获取第一个时间
+      //   var startTime = data.filter(item => item.name === '湿度实值-实时')[0].subList[0].logtime
+      //   // 获取最新时间
+      //   var endTime = data.filter(item => item.name === '当前湿度值')[0].subList[0].logtime
+      //   // 判断间隔是否大于4小时
+      //   isShiduDelete = this.getTimeDifference(startTime, endTime)
+      // }
+      // var shidu = data.filter(item => item.name === '湿度实值-实时' || item.name === '当前湿度值')
+      // var nShidu = []
+      // for (let i = 0; i < shidu.length; i++) {
+      //   const element = shidu[i];
+      //   var item = element.subList
+      //   nShidu = [...nShidu, ...item]
+      //   if(isShiduDelete){nShidu.shift()}
+      // }
       // var fushe = data.find(item => item.name === '辐射强度值-实时')
       // var time = data.find(item => item.name === '实时曲线-时间分布')
       // var wenduZ = data.find(item => item.name === '当前温度值')
       // var shiduZ = data.find(item => item.name === '当前湿度值')
       // console.log(7878,this.wenduData)
       // console.log('组合数据', wendu, nWendu)
-      if(nWendu.length >0){
-        this.wenduData = nWendu.map(res =>{
+      if(data.wendu.length >0){
+        this.wenduData = data.wendu.map(res =>{
           return res.tagvalue
         })
         // this.wenduData.push(...newData)
       }
-      if(nShidu.length >0){
-        this.shiduData = nShidu.map(res =>{
+      if(data.shidu.length >0){
+        this.shiduData = data.shidu.map(res =>{
           return res.tagvalue
         })
         // this.shiduData.push(...newData)
       }
-      if(nWendu.length >0){
-        this.timeData = nWendu.map(res =>{
+      if(data.wendu.length >0){
+        this.timeData = data.wendu.map(res =>{
           return res.transtime
         })
         // this.timeData.push(...newData)
@@ -386,7 +391,7 @@ export default {
       // console.log(createDate, createDate.getTime())
       //获取差值-秒  4小时的秒数为14400
       var second = parseInt((new Date(endTime).getTime() - new Date(startTime).getTime())/(1000));
-      console.log('时间戳', second)
+      // console.log('时间戳', second)
       return second > 14400 ? true : false
     },
     showModal(){