Browse Source

fix: 加班功能优化

chenzhen2 2 years ago
parent
commit
8e64b52503

+ 70 - 16
src/utils/index.ts

@@ -523,7 +523,9 @@ export const getRelNowTime = function () {
  */
 export const formatTimerStr = function (timer: any) {
   if (timer) {
-    return (timer / 10000).toFixed(2)
+    let str: any = (timer / 10000).toFixed(2)
+    str = str.replace(".", ":")
+    return str
   } else {
     return ''
   }
@@ -537,22 +539,32 @@ export const formateTimeContinuous: any = function (index: any = 1,
   startTime: any,
   endTime: any,
   type: any = 1, data: any = [], that: any) {
+  let nowDate: any = formatDate("YYYY-MM-DD");
   data.map((item: any) => {
     // debugger
     let date: any = formatDateStr(item.date);
     let week: any = getWeekDate(new Date(date).getDay());
+    console.log("dfff")
+    console.log(nowDate)
+    console.log(date)
+    // if (date == nowDate) {
+    //   item.week = "今天";
+    // }
+    if (date == nowDate) {
+      week = '今天'
+    }
     item.week = week;
   });
   // debugger
   let text: any = "";
   // 工作时间和第二天连续的问题
   // 工作时间连续的问题
+  let cusStartTime: any = data[index].cusStartTime;
+  let cusEndTime: any = data[index].cusEndTime;
   if (type === 1) {
     // debugger;
     if (endTime === "240000") {
       // 处理时间连续的问题
-      let cusStartTime: any = data[index].cusStartTime;
-      let cusEndTime: any = data[index].cusEndTime;
       let customSceneList: any = data[index]?.customSceneList ?? [];
       if (cusStartTime === "000000") {
         text = data[index].week;
@@ -597,27 +609,69 @@ export const formateTimeContinuous: any = function (index: any = 1,
         endTime: endTime,
       };
     }
-
   } else {
     // 预约时候后找最近的一段预约时间
-    // let cusStartTime: any = data[index].cusStartTime;
-    // let cusEndTime: any = data[index].cusEndTime;
+    let nowTime: any = (getNowTime()[0]).replace(":", "") + "00"
     let customSceneList: any = data[index]?.customSceneList ?? [];
-    // debugger
     customSceneList.map((item: any) => {
-      if (!startTime || !endTime) {
-        startTime = item.startTime
-        endTime = item.endTime
-        text = data[index].week
+      if (index === 0) {
+        if (nowTime < item.startTime) {
+          if (!startTime || !endTime) {
+            startTime = item.startTime
+            endTime = item.endTime
+            text = data[index].week
+          }
+        }
+      } else {
+        if (!startTime || !endTime) {
+          startTime = item.startTime
+          endTime = item.endTime
+          text = data[index].week
+        } else {
+          // debugger
+          // debugger
+          if (endTime == '240000') {
+            if (item.startTime == "000000") {
+              endTime = item.endTime
+              text = data[index].week
+            }
+          } else {
+            if (endTime === item.startTime) {
+              endTime = item.endTime
+              text = data[index].week
+            }
+          }
+        }
+      }
+      if (that.text) {
+        let startText: any = that.text.split("~")[0]
+        that.text = startText
+        if (text && text != startText) {
+          that.text = startText + "~" + text
+        }
+      } else {
         that.text = text
       }
     })
     if (startTime && endTime) {
-      return {
-        text: that.text,
-        startTime: startTime,
-        endTime: endTime,
-      };
+      if (endTime == '240000') {
+        let nowIndex: any = index + 1
+        if (nowIndex < data.length - 1) {
+          return formateTimeContinuous(nowIndex, startTime, endTime, 2, data, that);
+        } else {
+          return {
+            text: that.text,
+            startTime: startTime,
+            endTime: endTime,
+          };
+        }
+      } else {
+        return {
+          text: that.text,
+          startTime: startTime,
+          endTime: endTime,
+        };
+      }
     } else {
       let nowIndex: any = index + 1
       if (nowIndex < data.length - 1) {

+ 31 - 58
src/views/envmonitor/components/workOvertime/WorkConfig.vue

@@ -111,6 +111,7 @@ export default defineComponent({
         type: any = 1
       ) {
         let data: any = proxyData.workkArr;
+        proxyData.text = "";
         return formateTimeContinuous(
           index,
           startTime,
@@ -209,13 +210,13 @@ export default defineComponent({
             if ((!cusStartTime || !cusEndTime) && !customSceneList.length) {
               // 查找最近的一段预约数据
               let btnObj: any = proxyData.formateTimeContinuous(
-                1,
+                0,
                 startTime,
                 endTime,
                 2
               );
               if (btnObj && btnObj.text) {
-                proxyData.timerText.text = `已预约~(${btnObj.text})`;
+                proxyData.timerText.text = `已预约(${btnObj.text})`;
                 proxyData.timerText.timer =
                   formatTimerStr(btnObj.startTime) +
                   "~" +
@@ -241,13 +242,13 @@ export default defineComponent({
                 proxyData.forcedOverTimeFlag = false;
               } else {
                 let btnObj: any = proxyData.formateTimeContinuous(
-                  1,
+                  0,
                   startTime,
                   endTime,
                   2
                 );
                 if (btnObj && btnObj.text) {
-                  proxyData.timerText.text = `已预约~(${btnObj.text})`;
+                  proxyData.timerText.text = `已预约(${btnObj.text})`;
                   proxyData.timerText.timer =
                     formatTimerStr(btnObj.startTime) +
                     "~" +
@@ -279,7 +280,7 @@ export default defineComponent({
                 /**
                  * 需要补加上和未来时间连续的问题
                  */
-                
+
                 let btnObj: any = proxyData.formateTimeContinuous(
                   1,
                   startTime,
@@ -359,59 +360,31 @@ export default defineComponent({
                   proxyData.timerText.showDel = true;
                   proxyData.forcedOverTimeFlag = false;
                 } else {
-                  customSceneList.map((item: any) => {
-                    if (nowTime < item.startTime) {
-                      startTime = item.startTime;
-                      endTime = item.endTime;
-                      if (item.startTime < startTime) {
-                        startTime = item.startTime;
-                        endTime = item.endTime;
-                      } else if (endTime === item.startTime) {
-                        endTime = item.endTime;
-                      }
-                    }
-                  });
-
-                  /**
-                   *需要补加上和未来时间连续的问题
-                   */
-                  if (startTime && endTime) {
-                    proxyData.timerText.text = "已预约~今日";
+                  let btnObj: any = proxyData.formateTimeContinuous(
+                    0,
+                    startTime,
+                    endTime,
+                    2
+                  );
+                  if (
+                    btnObj &&
+                    btnObj.text &&
+                    btnObj.startTime &&
+                    btnObj.endTime
+                  ) {
+                    proxyData.timerText.text = `已预约(${btnObj.text})`;
                     proxyData.timerText.timer =
-                      formatTimerStr(startTime) + "~" + formatTimerStr(endTime);
-                    proxyData.timerText.classColor = "grey";
-                    proxyData.timerText.btnText = "预约时间";
-                    proxyData.timerText.showDel = false;
-                    proxyData.forcedOverTimeFlag = true;
+                      formatTimerStr(btnObj.startTime) +
+                      "~" +
+                      formatTimerStr(btnObj.endTime);
                   } else {
-                    // 查找最近的一段预约数据
-                    // debuggers
-                    let btnObj: any = proxyData.formateTimeContinuous(
-                      1,
-                      startTime,
-                      endTime,
-                      2
-                    );
-                    if (
-                      btnObj &&
-                      btnObj.text &&
-                      btnObj.startTime &&
-                      btnObj.endTime
-                    ) {
-                      proxyData.timerText.text = `已预约~${btnObj.text}`;
-                      proxyData.timerText.timer =
-                        formatTimerStr(btnObj.startTime) +
-                        "~" +
-                        formatTimerStr(btnObj.endTime);
-                    } else {
-                      proxyData.timerText.text = "请选择工作时间段";
-                      proxyData.timerText.timer = "将自动开启办公服务";
-                    }
-                    proxyData.timerText.classColor = "grey";
-                    proxyData.timerText.btnText = "预约时间";
-                    proxyData.timerText.showDel = false;
-                    proxyData.forcedOverTimeFlag = true;
+                    proxyData.timerText.text = "请选择工作时间段";
+                    proxyData.timerText.timer = "将自动开启办公服务";
                   }
+                  proxyData.timerText.classColor = "grey";
+                  proxyData.timerText.btnText = "预约时间";
+                  proxyData.timerText.showDel = false;
+                  proxyData.forcedOverTimeFlag = true;
                 }
               }
             }
@@ -469,7 +442,7 @@ export default defineComponent({
            *需要补加上和未来时间连续的问题
            */
           if (startTime && endTime) {
-            proxyData.timerText.text = "已预约~(今日)";
+            proxyData.timerText.text = "已预约(今日)";
             proxyData.timerText.timer =
               formatTimerStr(startTime) + "~" + formatTimerStr(endTime);
             proxyData.timerText.classColor = "grey";
@@ -514,8 +487,8 @@ export default defineComponent({
       // 我要离开
       myLeaving() {
         proxyData.formatDataDel();
-        console.log("删除了=====");
-        console.log(proxyData.delTimeArr);
+        // console.log("删除了=====");
+        // console.log(proxyData.delTimeArr);
         proxyData.leaveBtnFlag = true;
         // 取消加班
         proxyData.saveBatchCustomScene();

+ 23 - 13
src/views/envmonitor/components/workOvertime/index.vue

@@ -1032,19 +1032,29 @@ export default defineComponent({
         proxyData.formBtn = true;
         saveBatchCustomScene(formTimerArr)
           .then((res) => {
-            let timer: any = setTimeout(() => {
-              if (type === 1) {
-                context.emit("closeWork");
-                proxyGlobal.proxy.$loadinngEnd();
-              } else if (type === 2) {
-                // 删除
-                proxyData.isUpdate = true;
-                // proxyData.setWorkTimeList();
-              }
-              timer = null;
-              clearTimeout(timer);
-              proxyData.formBtn = false;
-            }, 1000);
+            // let timer: any = setTimeout(() => {
+            //   if (type === 1) {  // 添加
+            //     context.emit("closeWork");
+            //     proxyGlobal.proxy.$loadinngEnd();
+            //   } else if (type === 2) {
+            //     // 删除
+            //     proxyData.isUpdate = true;
+            //     // proxyData.setWorkTimeList();
+            //   }
+            //   timer = null;
+            //   clearTimeout(timer);
+            //   proxyData.formBtn = false;
+            // }, 1000);
+            if (type === 1) {
+              // 添加
+              context.emit("closeWork");
+              proxyGlobal.proxy.$loadinngEnd();
+            } else if (type === 2) {
+              // 删除
+              proxyData.isUpdate = true;
+              // proxyData.setWorkTimeList();
+            }
+            proxyData.formBtn = false;
           })
           .catch(() => {
             proxyGlobal.proxy.$loadinngEnd();

+ 1 - 0
src/views/envmonitor/index.vue

@@ -786,6 +786,7 @@ export default defineComponent({
       closeWork() {
         proxyData.isShowWork = false;
         console.log("关闭加班功能---");
+        proxyData.queryCustomAndScenceTimer(0);
       },
       forceOverTimeFlag: false,
       setForceOverTimeFlag(flag: any) {