Browse Source

fix:加班删除逻辑的bug修改

chenzhen2 1 year ago
parent
commit
382c090450

+ 133 - 106
src/views/envmonitor/components/ManualWork/index.vue

@@ -966,6 +966,7 @@ export default defineComponent({
           });
         }
         // debugger
+        // 默认选中日期
         proxyData.dateArr.map((item: any, index: any) => {
           if (index === proxyData.activeIndex) {
             proxyData.checkDate(item, index);
@@ -973,10 +974,12 @@ export default defineComponent({
           }
         });
       },
-      clearTimerBoxStyle() {
+      clearDateActive() {
         proxyData.dateArr.map((elItem: any) => {
           elItem.isActive = false;
         });
+      },
+      clearTimerBoxStyle() {
         let timerArr: any = proxyData.nowTimerArr;
         let sliderBoxArr: any = document.querySelectorAll(".slider-box");
         for (let i = 0; i < timerArr.length; i++) {
@@ -1067,7 +1070,7 @@ export default defineComponent({
         }
       },
       checkDate(item: any, index: any) {
-        proxyData.clearTimerBoxStyle();
+        proxyData.clearDateActive();
         item.isActive = true;
         proxyData.activeIndex = index;
         proxyData.nowTimerArr = proxyData.dateArr[index].timerArr;
@@ -1075,6 +1078,7 @@ export default defineComponent({
         // debugger
         proxyData.formateEquipment();
         nextTick(() => {
+          proxyData.clearTimerBoxStyle();
           proxyData.setNowBarPerstion(proxyData.nowTimerArr);
           let nowIndex: any = proxyData.getNowIndex();
           // // 已经被选择的时间
@@ -1225,6 +1229,13 @@ export default defineComponent({
           customSceneEqType: "ALL", //类型:String  必有字段  备注://来源 AC 空调入口, SE 灯入口 ALL 加班入口
           userName: proxyData.userInfo.userName, //类型:String  必有字段  备注://名字
         };
+        // if (proxyData.enterType == 1) {
+        //   obj.customSceneEqType = "ALL";
+        // } else if (proxyData.enterType == 2) {
+        //   obj.customSceneEqType = "AC";
+        // } else {
+        //   obj.customSceneEqType = "SE";
+        // }
         if (type === "1") {
           obj.id = item.id; //类型:String  必有字段  备注:取消加班时必传
         }
@@ -1232,6 +1243,7 @@ export default defineComponent({
       },
       //  加班数据格式化=》后台需要的数据结构(删除加班逻辑)
       formateDelTimer() {
+        // debugger;
         let timerArr: any = proxyData.nowData.timerArr;
         let endIndex: any = proxyData.endIndex > 0 ? proxyData.endIndex - 1 : 0;
         // debugger
@@ -1245,11 +1257,9 @@ export default defineComponent({
           let endTime: any = timerArr[proxyData.endIndex].formatTimer;
           let delTimerArr: any = [];
           let addTimeArr: any = [];
-
-          // 删除时间的数据拼接
+          let flag = false;
           for (let i = 0; i < customSceneList.length; i++) {
             let item: any = customSceneList[i];
-            let index: any = i;
             if (item.startTime === startTime && item.endTime === endTime) {
               // 代表需要删除该段
               // 整段删除
@@ -1260,97 +1270,107 @@ export default defineComponent({
                 item.endTime
               );
               delTimerArr.push(delObj);
+              flag = true;
               break;
-            } else if (item.startTime < startTime) {
-              if (item.endTime <= endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  item.startTime,
-                  startTime
-                );
-                addTimeArr.push(addObj);
-              } else if (item.endTime > endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj1: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  item.startTime,
-                  startTime
-                );
-                addTimeArr.push(addObj1);
-                let addObj2: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  endTime,
-                  item.endTime
-                );
-                addTimeArr.push(addObj2);
-              }
-            } else if (item.startTime === item.startTime) {
-              if (item.endTime <= endTime) {
-                // 整段删除
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-              } else if (item.endTime > endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj1: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  endTime,
-                  item.endTime
-                );
-                addTimeArr.push(addObj1);
-              }
-            } else if (item.startTime > startTime) {
-              if (item.endTime <= endTime) {
-                // 整段删除
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-              } else if (item.endTime > endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj1: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  endTime,
-                  item.endTime
-                );
-                addTimeArr.push(addObj1);
+            }
+          }
+
+          // 删除时间的数据拼接
+          if (!flag) {
+            for (let i = 0; i < customSceneList.length; i++) {
+              let item: any = customSceneList[i];
+              if (item.startTime < startTime) {
+                // debugger
+                if (item.endTime <= endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    item.startTime,
+                    startTime
+                  );
+                  addTimeArr.push(addObj);
+                } else if (item.endTime > endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj1: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    item.startTime,
+                    startTime
+                  );
+                  addTimeArr.push(addObj1);
+                  let addObj2: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    endTime,
+                    item.endTime
+                  );
+                  addTimeArr.push(addObj2);
+                }
+              } else if (item.startTime === item.startTime) {
+                if (item.endTime <= endTime) {
+                  // 整段删除
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                } else if (item.endTime > endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj1: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    endTime,
+                    item.endTime
+                  );
+                  addTimeArr.push(addObj1);
+                }
+              } else if (item.startTime > startTime) {
+                if (item.endTime <= endTime) {
+                  // 整段删除
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                } else if (item.endTime > endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj1: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    endTime,
+                    item.endTime
+                  );
+                  addTimeArr.push(addObj1);
+                }
               }
             }
           }
@@ -1541,6 +1561,7 @@ export default defineComponent({
       // 删除
       isUpdate: false, // 删除更新弹窗数据
       triggerDelTime() {
+        // debugger;
         let formTimeArr: any = proxyData.formateDelTimer();
         console.log("需要删除的数据---");
         console.log(formTimeArr);
@@ -1585,15 +1606,24 @@ export default defineComponent({
       },
     });
     watch(
-      props,
-      (newProps: any) => {
-        proxyData.workkArr = newProps.workkArr;
-        proxyData.projectId = newProps.projectId;
-        proxyData.enterType = newProps.enterType;
-        proxyData.deviceItem = newProps.deviceItem;
-        proxyData.seviceEquipmentList = newProps.seviceEquipmentList;
-        console.log("弹窗变化了-----==");
+      [() => props, () => props.workkArr],
+      (newProps: any, oldProps: any) => {
+        proxyData.workkArr = newProps[1];
+        if (
+          newProps[1] &&
+          oldProps[1] &&
+          newProps[1].toString() !== oldProps[1].toString()
+        ) {
+          console.log("加班数据变化-----==");
+          proxyData.setWorkTimeList();
+        }
         // proxyData.setWorkTimeList();
+        if (newProps[0]) {
+          proxyData.projectId = newProps[0].projectId;
+          proxyData.enterType = newProps[0].enterType;
+          proxyData.deviceItem = newProps[0].deviceItem;
+          proxyData.seviceEquipmentList = newProps[0].seviceEquipmentList;
+        }
       },
       {
         deep: true,
@@ -1601,9 +1631,6 @@ export default defineComponent({
       }
     );
     onMounted(() => {
-      // 设置dom最外层的宽
-      // console.log("弹窗变化了-----==");
-      // proxyData.formateManualWorkTime();
       proxyData.setWorkTimeList();
     });
     return {

+ 100 - 92
src/views/envmonitor/components/workOvertime/index.vue

@@ -910,9 +910,8 @@ export default defineComponent({
           let endTime: any = timerArr[proxyData.endIndex].formatTimer;
           let delTimerArr: any = [];
           let addTimeArr: any = [];
-          // 删除时间的数据拼接
+          let flag = false;
           for (let i = 0; i < customSceneList.length; i++) {
-            let index: any = i;
             let item: any = customSceneList[i];
             if (startTime == item.startTime && endTime == item.endTime) {
               // 代表需要删除该段
@@ -924,100 +923,109 @@ export default defineComponent({
                 item.endTime
               );
               delTimerArr.push(delObj);
+              flag = true;
               break;
-            } else if (item.startTime < startTime) {
-              if (item.endTime <= endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  item.startTime,
-                  startTime
-                );
-                addTimeArr.push(addObj);
-              } else if (item.endTime > endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj1: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  item.startTime,
-                  startTime
-                );
-                addTimeArr.push(addObj1);
-                let addObj2: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  endTime,
-                  item.endTime
-                );
-                addTimeArr.push(addObj2);
-              }
-            } else if (item.startTime === item.startTime) {
-              if (item.endTime <= endTime) {
-                // 整段删除
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-              } else if (item.endTime > endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj1: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  endTime,
-                  item.endTime
-                );
-                addTimeArr.push(addObj1);
-              }
-            } else if (item.startTime > startTime) {
-              if (item.endTime <= endTime) {
-                // 整段删除
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-              } else if (item.endTime > endTime) {
-                let delObj: any = proxyData.formaTimeObj(
-                  item,
-                  "1",
-                  item.startTime,
-                  item.endTime
-                );
-                delTimerArr.push(delObj);
-                let addObj1: any = proxyData.formaTimeObj(
-                  customSceneList[0],
-                  "0",
-                  endTime,
-                  item.endTime
-                );
-                addTimeArr.push(addObj1);
+            }
+          }
+          // 删除时间的数据拼接
+          if (!flag) {
+            for (let i = 0; i < customSceneList.length; i++) {
+              let item: any = customSceneList[i];
+              if (item.startTime < startTime) {
+                if (item.endTime <= endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    item.startTime,
+                    startTime
+                  );
+                  addTimeArr.push(addObj);
+                } else if (item.endTime > endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj1: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    item.startTime,
+                    startTime
+                  );
+                  addTimeArr.push(addObj1);
+                  let addObj2: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    endTime,
+                    item.endTime
+                  );
+                  addTimeArr.push(addObj2);
+                }
+              } else if (item.startTime === item.startTime) {
+                if (item.endTime <= endTime) {
+                  // 整段删除
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                } else if (item.endTime > endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj1: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    endTime,
+                    item.endTime
+                  );
+                  addTimeArr.push(addObj1);
+                }
+              } else if (item.startTime > startTime) {
+                if (item.endTime <= endTime) {
+                  // 整段删除
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                } else if (item.endTime > endTime) {
+                  let delObj: any = proxyData.formaTimeObj(
+                    item,
+                    "1",
+                    item.startTime,
+                    item.endTime
+                  );
+                  delTimerArr.push(delObj);
+                  let addObj1: any = proxyData.formaTimeObj(
+                    customSceneList[0],
+                    "0",
+                    endTime,
+                    item.endTime
+                  );
+                  addTimeArr.push(addObj1);
+                }
               }
             }
           }
+
           let formTimeArr: any = addTimeArr.concat(delTimerArr);
           return formTimeArr;
         } else {

+ 15 - 6
src/views/envmonitor/index.vue

@@ -884,6 +884,8 @@ export default defineComponent({
         proxyData.enterType = type;
         proxyData.deviceItem = deviceItem || null;
         proxyData.isShowWork = true;
+        // proxyData.queryCustomAndScenceTimer(0);
+        proxyData.queryCustomAndScence(2); // 打开弹窗立即调用刷新加班数据
       },
       // 关于手动控制是否展示加班弹窗的问题处理
       checkDeviceShowWork() {
@@ -898,7 +900,8 @@ export default defineComponent({
       closeWork() {
         proxyData.isShowWork = false;
         // console.log("关闭加班功能---");
-        proxyData.queryCustomAndScenceTimer(0);
+        // proxyData.queryCustomAndScenceTimer(0);
+        proxyData.queryCustomAndScence(2); // 关闭弹窗立即调用刷新加班数据
       },
       forceOverTimeFlag: false,
       setForceOverTimeFlag(flag: any) {
@@ -1633,7 +1636,7 @@ export default defineComponent({
           });
       },
       // 定时查空间的加班记录
-      queryCustomAndScenceTimer(timer: any = 10000) {
+      queryCustomAndScenceTimer(timer: any = 3000) {
         proxyData.clearSecenTimer();
         proxyData.secenTimer = setTimeout(() => {
           proxyData.queryCustomAndScence();
@@ -1641,7 +1644,7 @@ export default defineComponent({
         }, timer);
       },
       // 定时查空间的加班记录
-      queryCustomAndScence() {
+      queryCustomAndScence(type: any = 1) {
         let params: any = {
           spaceId: proxyData.spaceInfo.spaceId,
         };
@@ -1657,10 +1660,16 @@ export default defineComponent({
             // 手动控制的情况下走新的服务定制
             proxyData.formateManualWorkTime(resData);
             proxyData.workkArr = resData || [];
-            proxyData.queryCustomAndScenceTimer();
+            if (type == 1) {
+              // 需要定时调用
+              proxyData.queryCustomAndScenceTimer();
+            }
           })
           .catch(() => {
-            proxyData.queryCustomAndScenceTimer();
+            if (type == 1) {
+              // 需要定时调用
+              proxyData.queryCustomAndScenceTimer();
+            }
           });
       },
       // 数组排序
@@ -1826,7 +1835,7 @@ export default defineComponent({
         proxyData.roomType = "";
         proxyData.officeData.temperature = "";
         proxyData.spaceExistenceDevice = spaceExistenceDevice;
-        proxyData.seviceEquipmentList =[]
+        proxyData.seviceEquipmentList = [];
         proxyData.workkArr = [];
         //  切换空间的时候把加班按钮平板
         proxyData.setForceOverTimeFlag(false);