From 2d50604111ced4973d1bf7c470005f52be203f50 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期六, 11 二月 2023 17:28:00 +0800
Subject: [PATCH] 1.自动排程单选渲染事件基本实现

---
 src/views/scgl/zdpc.vue |  156 +++++++++++++++++++++++++--------------------------
 1 files changed, 77 insertions(+), 79 deletions(-)

diff --git a/src/views/scgl/zdpc.vue b/src/views/scgl/zdpc.vue
index 86a9ffe..d4ce167 100644
--- a/src/views/scgl/zdpc.vue
+++ b/src/views/scgl/zdpc.vue
@@ -432,7 +432,7 @@
       scaleList: `30,60,240,360`.split(',').map(n => parseInt(n)),
       hideHeader: false,
       arrayKeys: ['gtArray', 'error'],
-      title_list: []
+      title_list: []// 涓嶇煡閬撶粰浣犲彇浠�涔堣嫳鏂囧悕绉板ソ  鏆傛椂娌″彉浣犵殑鍚嶅瓧
 
     }
   },
@@ -955,17 +955,11 @@
           }
         }
       }
-
-      // console.log('鎵ц浜�!')
-      // console.log(this.schedulingData, '  this.schedulingData')
-      // console.log(this.timeTopTempData, 'this.timeTopTempData')
-
-      // this.$forceUpdate()
     },
     // 鎹㈠瀷鏃堕棿
     MinutesTest(time) {
       const t = new Date(time)
-      console.log(t.getMinutes(), 800)
+      // console.log(t.getMinutes(), 800)
       t.setMinutes(t.getMinutes() + this.formBottom.times * 1)
       const now =
         t.getFullYear() +
@@ -979,7 +973,7 @@
         t.getMinutes().toString().padStart(2, '0') +
         ':' +
         t.getSeconds().toString().padStart(2, '0')
-      console.log('now', now)
+      // console.log('now', now)
       return now
     },
     // 鎻掑叆浜ц兘鏃堕棿娈�
@@ -1106,14 +1100,6 @@
         this.dataTransition()
         this.editLastValue(this.schedulingData)
       }
-
-      // console.log('鎵ц浜�!')
-      // console.log(this.schedulingData, '  this.schedulingData')
-      // console.log(JSON.stringify(this.schedulingData), '  this.schedulingData')
-      // console.log(this.timeTopTempData, 'this.timeTopTempData')
-      // console.log(JSON.stringify(this.timeTopTempData), 'this.timeTopTempData')
-
-      // this.$forceUpdate()
     },
     // 鎵嬪姩杩囨护鎵�鏈夋椂闂村凡鎺掔▼
     filterAlreadyScheduleTime() {
@@ -1178,28 +1164,31 @@
     // 璁惧浼樺厛   鏁版嵁鏍煎紡杞崲
     eqpDataTransition() {
       let all_num = this.formBottom.meter
-      const all_time = []
       let flag1 = 0
       const mod = this.schedulingData[0].mod
       //  let nowTime = this.schedulingData[0].AdvaDevicRhythm*all_num
-      console.log(this.schedulingData.length, 31)
+      // console.log(this.schedulingData, 31)
+      // console.log(JSON.stringify(this.schedulingData), 31)
       for (const i in this.schedulingData) {
         console.log(i, 32)
         let end_arr = [] // 宸叉帓绋嬬殑鏁扮粍
         let nend_arr = [] // 寰呮帓绋嬬殑鏁扮粍
-        const add_arr = [] // 宸叉帓绋嬬殑鏁扮粍
+
         let capacity_arr = [] // 瑕佹帓绋嬬殑鏁扮粍
         this.schedulingData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
-        // let capacity_end = ''
+
         end_arr = this.schedulingData[i].gtArray.filter(item => item.type === 'h_schedule')
         nend_arr = this.schedulingData[i].gtArray.filter(item => item.type === 'capacity')
+        console.log(end_arr, nend_arr, 770)
+
         if (end_arr && end_arr.length > 0) {
           capacity_arr = nend_arr.map(item => {
             // 鎺掗櫎鎺夊凡缁忔帓绋嬬殑瀛樺湪hshedule锛宻tart锛宔nd閮界浉绛夌殑鎯呭喌
-            const schedule = end_arr.filter(schedule => {
-              return new Date(item.start).getTime() <= new Date(schedule.start).getTime() &&
-                new Date(item.end).getTime() > new Date(schedule.end).getTime()
+            const schedule = end_arr.filter(it => {
+              return new Date(item.start).getTime() <= new Date(it.start).getTime() &&
+                new Date(item.end).getTime() >= new Date(it.end).getTime()
             })
+
             if (schedule && schedule.length > 0) {
               item.start = this.MinutesTest(schedule[0]['end'])
             }
@@ -1321,105 +1310,114 @@
         this.timeTopTempData[i].gtArray = newArr
       }
       let all_num = this.formBottom.meter
-      const all_time = []
+
       const flag1 = 0
       // let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num  //鏁伴噺OK
       console.log(this.timeTopTempData, 889)
       console.log(JSON.stringify(this.timeTopTempData), 889)
 
+      //  閲岄潰閫昏緫瑕佹悶娓呮 寰堥噸瑕�
       for (const i in this.timeTopTempData) {
         console.log(i, 90)
         let end_arr = []
         let nend_arr = [] // 鎺掔▼鐨勬暟缁�
-        const add_arr = [] // 宸叉帓绋嬬殑鏁扮粍
+
         let capacity_arr = [] // 瑕佹帓绋嬬殑鏁扮粍
 
         this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
 
-        // let capacity_end = ''
-
         // console.log(JSON.stringify(this.timeTopTempData), 671)
 
-        end_arr = this.timeTopTempData[i].gtArray.filter(item => item.type === 'h_schedule') // 宸叉帓绋嬫暟鎹�
-        nend_arr = this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity') // 瑕佹帓绋嬫暟鎹�
+        end_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'h_schedule'))) // 宸叉帓绋嬫暟鎹�
+        nend_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity'))) // 瀹归噺
         console.log(end_arr, nend_arr, 670)
         // console.log(end_arr, 672)
         // console.log(JSON.stringify(end_arr), 672)
         // console.log(nend_arr, 673)
         // console.log(JSON.stringify(nend_arr), 673)
-        capacity_arr = JSON.parse(JSON.stringify(nend_arr)) // 瑕佹帓绋嬬殑鏁扮粍
 
-        end_arr.forEach(item => {
-          for (let i = 0; i < capacity_arr.length; i++) {
-            if (new Date(capacity_arr[i].start).getTime() === new Date(item.start).getTime()) {
-              // console.log(capacity_arr[i].start, 671)
-              // console.log(capacity_arr[i].end, 671)
-              console.log(i, capacity_arr[i], '鍝囧搱鍝�')
-              capacity_arr.splice(i, 1)
-              break
+        // end_arr = JSON.parse(JSON.stringify(end_arr.sort((a, b) => new Date(b.end) - new Date(a.end))))
+
+        capacity_arr = JSON.parse(JSON.stringify(nend_arr)) // 瀹归噺
+
+        // end_arr.forEach(item => {
+        //   for (let i = 0; i < capacity_arr.length; i++) {
+        //     if (new Date(capacity_arr[i].start).getTime() === new Date(item.start).getTime() && item.id === capacity_arr[i].id) {
+        //       console.log(i, capacity_arr[i], '鍝囧搱鍝�')
+        //       capacity_arr.splice(i, 1)
+        //       break
+        //     }
+        //   }
+        // })
+
+        // 鑾峰彇鍙帓绋嬬殑鏃堕棿   浠ヤ究鎺ョ潃寰�鍚庢帓绋�    閬嶅巻缁撴潫瑕佸緱鍒扮殑鏄� 褰撳墠鏃ユ湡鍙帓瀹归噺
+        end_arr.forEach((item, index) => { // 宸叉帓绋嬬殑鏁扮粍
+          capacity_arr.forEach((it, ind) => { // 瀹归噺锛堟棩浜ц兘锛�
+            if (item.id === it.id &&
+              new Date(item.start).getTime() >= new Date(it.start).getTime() &&
+              new Date(item.end).getTime() === new Date(it.end).getTime() // new Date(item.end).getTime() <= new Date(it.end).getTime()
+            ) {
+              console.log(ind, it, '鍝囧搱鍝�')
+              capacity_arr.splice(ind, 1)
             }
-          }
+          })
         })
+
         console.log(capacity_arr, '澶цタ鐡�')
 
-        if (!capacity_arr || capacity_arr.length === 0) break
-
-        console.log(nend_arr, 'nend_arr')
-        console.log(JSON.stringify(nend_arr), 'nend_arr')
+        // continue:琛ㄧず璺冲嚭鏈寰幆锛屼篃灏辨槸涓嶆墽琛屾湰娆″惊鐜痗ontinue涔嬪悗鐨勬搷浣�
+        // break:琛ㄧず璺冲嚭褰撳墠鐨勫惊鐜紝閽堝鏁翠釜寰幆浣撶粓姝㈠悗缁殑閬嶅巻锛�
+        if (!capacity_arr || capacity_arr.length === 0) {
+          continue
+        }
 
         const schedule_arr = end_arr.filter(item => {
           const remain = nend_arr.some(it => {
-            // return (new Date(it.start).getTime() === new Date(item.start).getTime() &&
-            //     new Date(item.end).getTime() < new Date(it.end).getTime()) || (
-            //   new Date(it.end).getTime() === new Date(item.end).getTime() &&
-            //   new Date(item.start).getTime() > new Date(it.start).getTime())
-
-            return (new Date(it.start).getTime() === new Date(item.start).getTime() &&
+            return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
               new Date(item.end).getTime() < new Date(it.end).getTime())
           })
+          // console.log(remain, 'remain')
           return remain
         })
 
-        // schedule_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())
-        // schedule_arr = schedule_arr.filter((currentValue, currentIndex, selfArr) => {
-        //   return selfArr.findIndex(item => item.id === currentValue.id) === currentIndex
-        // })
+        // console.log(schedule_arr, 1002)
+        // console.log(nend_arr, 299)
 
-        console.log(schedule_arr, 1002)
-
+        // debugger
+        // 褰撴煇涓閲忓瓨鍦ㄤ笁涓笉鍚岀殑宸ュ崟鏃�   涓嬮潰杩欎釜if閫昏緫瀛樺湪闂
         if (schedule_arr && schedule_arr.length > 0) {
-          // 鎵惧埌鍚屼竴璁惧涓嬬殑end鏈�澶у��
-          // const maxEnd = schedule_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())[0].end
-
           const scheduleCan = schedule_arr.map(item => {
             const temp = nend_arr.filter(it => {
               if (it.id === item.id) {
-                return (new Date(it.start).getTime() === new Date(item.start).getTime() &&
+                console.log('鎵ц浜嗭紒', item.id, item.end)
+                return (new Date(item.start).getTime() === new Date(it.start).getTime() &&
                   new Date(item.end).getTime() < new Date(it.end).getTime())
+                // ||
+                // (new Date(item.start).getTime() > new Date(it.start).getTime() &&
+                // new Date(item.end).getTime() < new Date(it.end).getTime())
               }
             })[0]
-            // console.log('capacity', temp)
-            // console.log('capacity', item.end)
-            // console.log('capacity', item.end === '2023-02-09 13:30:00')
-
             temp.start = this.MinutesTest(item.end)
-            // temp.start = item.end
-            // temp.start = maxEnd
-            // temp.start = '2023-02-09 13:30:00'
             return temp
           })
-          console.log(scheduleCan, 'scheduleCan')
 
-          // scheduleCan.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime())
-          // scheduleCan = scheduleCan.filter((currentValue, currentIndex, selfArr) => {
-          //   return selfArr.findIndex(item => item.id === currentValue.id) === currentIndex
-          // })
-          // console.log(scheduleCan, 'scheduleCan2')
           const newSchedule = JSON.parse(JSON.stringify(scheduleCan))
-          capacity_arr = newSchedule.concat(capacity_arr)
+
+          capacity_arr.forEach(item => {
+            newSchedule.forEach(it => {
+              if (item.id === it.id && new Date(item.start).getTime() < new Date(it.start).getTime()) {
+                item.start = it.start
+              }
+            })
+          })
+
+          // capacity_arr = newSchedule.concat(capacity_arr)  //杩欒浠g爜鏄笉瀵圭殑
+          // console.log(scheduleCan, 'scheduleCan')
+          // console.log(capacity_arr, 'capacity_arr')
+          // capacity_arr.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()) // start鏃堕棿鏃╃殑鍦ㄥ墠闈�
         }
-        console.log(schedule_arr)
-        console.log('鍙帓绋嬫暟缁�', capacity_arr)
+        // console.log(schedule_arr)
+        // console.log('鍙帓绋嬫暟缁�', capacity_arr)
         const id_obj = {}
         if (end_arr != '') {
           (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
@@ -1446,17 +1444,17 @@
           ) {
             if (data.id === id_obj.id) {
               data.start = this.MinutesTest(id_obj.start_time)
-              console.log(data.start, 999)
+              // console.log(data.start, 999)
               //  flag1 =1
             } else {
               data.start = capacity_arr[w].start
-              console.log(data.start, 1000)
+              // console.log(data.start, 1000)
               //  console.log(data.start)
               //  flag1 =1
             }
           } else {
             data.start = capacity_arr[w].start
-            console.log(data.start, 1001)
+            // console.log(data.start, 1001)
           }
           // let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num
           let nowTime = (capacity_arr[w].rhythm * all_num) / capacity_arr[w].mod

--
Gitblit v1.9.3