Browse Source

使用时间

anxiaoxia 3 years ago
parent
commit
3782104aae
1 changed files with 32 additions and 33 deletions
  1. 32 33
      src/pages/Equipment/components/deviceModal/index.jsx

+ 32 - 33
src/pages/Equipment/components/deviceModal/index.jsx

@@ -123,23 +123,27 @@ export default ({ onClose, showSpace }) => {
   };
 
   const operateTime = () => {
-    console.log(showSpace, 'showSpace');
-    showSpace.meetTime = [
-      { meetTimeStartTime: '06:00', meetTimeEndTime: '07:00' },
-      { meetTimeStartTime: '08:00', meetTimeEndTime: '11:00' },
+    // console.log(showSpace, 'showSpace');
+    /* showSpace.meetTime = [
+      //   { meetTimeStartTime: '06:00', meetTimeEndTime: '07:00' },
+      //   { meetTimeStartTime: '08:00', meetTimeEndTime: '11:00' },
       { meetTimeStartTime: '14:00', meetTimeEndTime: '17:00' },
       { meetTimeStartTime: '08:30', meetTimeEndTime: '18:30' },
       { meetTimeStartTime: '14:00', meetTimeEndTime: '17:00' },
-      { meetTimeStartTime: '16:00', meetTimeEndTime: '19:00' },
-      { meetTimeStartTime: '20:00', meetTimeEndTime: '21:00' },
+      //   { meetTimeStartTime: '16:00', meetTimeEndTime: '19:00' },
+      //   { meetTimeStartTime: '20:00', meetTimeEndTime: '21:00' },
     ];
     showSpace.workTimeStartTime = '08:30';
     showSpace.workTimeEndTime = '18:30';
+    */
     // 使用时间
     let timeArr = [];
     if (showSpace.meetTime && showSpace.workTimeStartTime) {
       let arr = [];
       const meetingArr = JSON.parse(JSON.stringify(showSpace.meetTime));
+
+      let startBetween = false; // 会议时间是否跨在 工作头部
+      let endBetween = false; // 会议时间是否跨在 工作尾部
       let workTimeStartTime = showSpace.workTimeStartTime; // 工作开始时间
       let workTimeEndTime = showSpace.workTimeEndTime; // 工作开始时间
       workTimeStartTime = workTimeStartTime.replace(':', '');
@@ -149,50 +153,46 @@ export default ({ onClose, showSpace }) => {
         let elementStartTime = element.meetTimeStartTime.replace(':', '');
         let elementEndTime = element.meetTimeEndTime.replace(':', '');
         if (elementEndTime > workTimeEndTime) {
-          /*
-              // 比较工作时间的尾巴
-                    -----------------
-                                  ----  ----
-            */
+          // 比较工作时间的尾巴
           if (elementStartTime > workTimeEndTime) {
             arr.unshift(elementEndTime);
             arr.unshift(elementStartTime);
           } else {
             arr.unshift(elementEndTime);
+            endBetween = true;
           }
         }
 
         if (elementStartTime < workTimeStartTime) {
-          /*
-             // 比较工作时间的头
-                        -----------------
-                ----  ----               
-            */
+          // 比较工作时间的头
           if (elementEndTime < workTimeStartTime) {
             arr.unshift(elementEndTime);
             arr.unshift(elementStartTime);
           } else {
             arr.unshift(elementStartTime);
+            startBetween = true;
           }
         }
-        if (elementStartTime >= workTimeStartTime && elementEndTime <= workTimeEndTime) {
-          /*
-             // 比较工作时间
-                -----------------------
-                   ----  ----               
-            */
-          arr.push(workTimeStartTime);
-          arr.push(workTimeEndTime);
-        }
+      }
+      if (!startBetween && endBetween) {
+        // 尾巴交集
+        arr.push(workTimeStartTime);
+      }
+      if (startBetween && !endBetween) {
+        // 头部交集
+        arr.push(workTimeEndTime);
+      }
+      if (!startBetween && !endBetween) {
+        //无交集
+        arr.push(workTimeStartTime);
+        arr.push(workTimeEndTime);
       }
       arr = [...new Set(arr)].sort();
-      console.log(arr, 'arr');
-      //   for (let i = 0; i < arr.length; i += 2) {
-      //     const element = arr[i];
-      //     const elementNext = arr[i + 2];
-      //     if (condition) {
-      //     }
-      //   }
+      for (let j = 0; j < arr.length; j += 2) {
+        const element = arr[j].slice(0, 2) + ':' + arr[j].slice(2);
+        const elemNext = arr[j + 1].slice(0, 2) + ':' + arr[j + 1].slice(2);
+        timeArr.push(`${element}-${elemNext}`);
+      }
     } else {
       // 会议时间
       showSpace.meetTime &&
@@ -214,7 +214,6 @@ export default ({ onClose, showSpace }) => {
 
   useEffect(() => {
     getData();
-    // operateTime();
   }, []);
 
   return (