Browse Source

fix: 加班记录处理

chenzhen2 2 years ago
parent
commit
62ead3f85d

+ 1 - 1
src/apis/envmonitor.ts

@@ -49,7 +49,7 @@ export const getLampHttp = (params: any) => {
 export const setallLampHttp = (data: any) => {
   return post(`${duoduoenvService}light/onoff/set`, data)
 }
-// 设置窗帘
+// 设置窗帘 
 export const setEquipeHttp = (data: any) => {
   return post(`${duoduoenvService}object/eqp/infocode/set`, data)
 }

+ 4 - 1
src/store/modules/user/actions.ts

@@ -75,9 +75,12 @@ export const actions: ActionTree<UserState, RootState> & Actions = {
   async [UserActionTypes.ACTION_GET_USER_INFO]({ commit }: AugmentedActionContext) {
     // let nowProjectId: any = 'Pj1101080259'
     const userInfo: any = {
+      // userName: '陈珍',
       userName: 'admin',
+      // userPhone: 15321277745,
       userPhone: 11111111111,
-      userId: 'admin'
+      // userId: '602ef709beb64a1f9a4b6af2196d0af7',
+      userId:'admin'
       // userId: '9a1ecfbacb6b4f249bf2dd3ec7793ead'
       // userId: '1302990695845462811'
     }

+ 67 - 0
src/utils/index.ts

@@ -532,3 +532,70 @@ export const formatTimerStr = function (timer: any) {
 export const newNumber = function (start: any, end: any, masAddess: any) {
   return masAddess + "" + Math.round(Math.random() * (end - start) + start);//生成在[start,end]范围内的随机数值,只支持不小于0的合法范围
 }
+
+export const formateTimeContinuous: any = function (index: any = 1,
+  startTime: any,
+  endTime: any,
+  type: any = 1, data: any = [], that: any) {
+  data.map((item: any) => {
+    // debugger
+    let date: any = formatDateStr(item.date);
+    let week: any = getWeekDate(new Date(date).getDay());
+    item.week = week;
+  });
+  // debugger
+  let text: any = "";
+  // 工作时间和第二天连续的问题
+  // 工作时间连续的问题
+  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;
+        endTime = cusEndTime;
+      }
+      customSceneList.map((item: any) => {
+        if (item.startTime === "000000") {
+          text = data[index].week;
+          endTime = item.endTime;
+        } else if (endTime === item.startTime) {
+          text = data[index].week;
+          endTime = item.endTime;
+        }
+        if (endTime === cusStartTime) {
+          text = data[index].week;
+          endTime = cusEndTime;
+        }
+      });
+    }
+    if (text) {
+      let nowIndex: any = index + 1;
+      that.text = text
+      if (nowIndex < data.length - 1) {
+        return formateTimeContinuous(nowIndex, startTime, endTime, 1, data, that);
+      } else {
+        return {
+          text: that.text,
+          startTime: startTime,
+          endTime: endTime,
+        };
+      }
+    } else {
+      return {
+        text: that.text,
+        startTime: startTime,
+        endTime: endTime,
+      };
+    }
+  } else {
+    // 预约时候后找最近的一段预约时间
+    let cusStartTime: any = data[index].cusStartTime;
+    let cusEndTime: any = data[index].cusEndTime;
+    if (cusStartTime && cusEndTime) {
+    }
+  }
+}

+ 38 - 68
src/views/envmonitor/components/workOvertime/WorkConfig.vue

@@ -47,8 +47,10 @@ import { useRouter } from "vue-router";
 import {
   formatDate,
   formatDateStr,
+  formateTimeContinuous,
   formatTimerStr,
   getRelNowTime,
+  getWeekDate,
   parseImgUrl,
 } from "@/utils";
 import { UserActionTypes } from "@/store/modules/user/action-types";
@@ -81,9 +83,11 @@ export default defineComponent({
       showDel: false, // 是否展示我要离开按钮
       classColor: "grey",
     };
+    let text: any = "";
     const store = useStore();
     const delTimeArr: any = [];
     let customSceneList: any = [];
+    let workkArr: any = [];
     const proxyData = reactive({
       parseImgUrl: parseImgUrl,
       leaveBtnFlag: false,
@@ -98,7 +102,7 @@ export default defineComponent({
         contx.emit("triggerWork");
       },
       timerText: timerText,
-      text: "",
+      text: text,
       // 处理时间和第二天和未来连续的问题
       formateTimeContinuous(
         index: any = 1,
@@ -107,63 +111,7 @@ export default defineComponent({
         type: any = 1
       ) {
         let data: any = proxyData.workkArr;
-        let text: any = "";
-        // debugger
-        console.log("customSceneList11===")
-        if (type === 1) {
-          // 工作时间和第二天连续的问题
-          // 工作时间连续的问题
-          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;
-              endTime = cusEndTime;
-            }
-            console.log("customSceneList===")
-            console.log(customSceneList)
-            customSceneList.map((item: any) => {
-              if (item.startTime === "000000") {
-                text = data[index].week;
-                endTime = item.endTime;
-              } else if (endTime === item.startTime) {
-                text = data[index].week;
-                endTime = item.endTime;
-              }
-              if (endTime === cusStartTime) {
-                text = data[index].week;
-                endTime = cusEndTime;
-              }
-            });
-          }
-          if (text) {
-            proxyData.text = text;
-            let nowIndex: any = index + 1;
-            if (nowIndex < data.length - 1) {
-              proxyData.formateTimeContinuous(nowIndex, startTime, endTime, 1);
-            } else {
-              return {
-                text: proxyData.text,
-                startTime: startTime,
-                endTime: endTime,
-              };
-            }
-          } else {
-            return {
-              text: proxyData.text,
-              startTime: startTime,
-              endTime: endTime,
-            };
-          }
-        } else {
-          // 预约时候后找最近的一段预约时间
-          let cusStartTime: any = data[index].cusStartTime;
-          let cusEndTime: any = data[index].cusEndTime;
-          if (cusStartTime && cusEndTime) {
-          }
-        }
+        return formateTimeContinuous(index, startTime, endTime, type, data,proxyData);
       },
       // 判断当前时间在不在加班时间里面
       beforeWorkTime(data: any, nowTime: any) {
@@ -226,6 +174,11 @@ export default defineComponent({
           let cusEndTime: any = data[i].cusEndTime;
           let customSceneList: any = data[i]?.customSceneList ?? [];
           let nowTime: any = getRelNowTime();
+          let week: any = getWeekDate(new Date(date).getDay());
+          if (date === nowDate) {
+            // isActive = true;
+            week = "今天";
+          }
           // console.log("nowTime===" + nowTime);
           if (date === nowDate) {
             proxyData.customSceneList = customSceneList;
@@ -296,8 +249,8 @@ export default defineComponent({
                   endTime,
                   1
                 );
-                console.log("预约加班的记录---")
-                console.log(obj)
+                console.log("工作时间=====");
+                console.log(obj);
                 proxyData.timerText.text = "工作时间";
                 proxyData.timerText.timer =
                   formatTimerStr(startTime) + "~" + formatTimerStr(endTime);
@@ -342,13 +295,26 @@ export default defineComponent({
                   /**
                    * 需要补加上和未来时间连续的问题
                    */
-                   let btnObj: any = proxyData.formateTimeContinuous( 0,startTime,endTime,1);
-                    console.log("预约加班的记录---")
-                    console.log(btnObj)
-                  
-                  proxyData.timerText.text = "工作时间";
+                  let btnObj: any = proxyData.formateTimeContinuous(
+                    1,
+                    startTime,
+                    endTime,
+                    1
+                  );
+                  console.log("预约加班的记录---");
+                  // debugger
+                  console.log(btnObj);
+
+                  proxyData.timerText.text = `工作时间`;
                   proxyData.timerText.timer =
                     formatTimerStr(startTime) + "~" + formatTimerStr(endTime);
+                  if (btnObj && btnObj.text) {
+                    proxyData.timerText.text = `工作时间~${btnObj.text}`;
+                    proxyData.timerText.timer =
+                      formatTimerStr(btnObj.startTime) +
+                      "~" +
+                      formatTimerStr(btnObj.endTime);
+                  }
                   proxyData.timerText.classColor = "yellow";
                   proxyData.timerText.btnText = "预约延时";
                   proxyData.timerText.showDel = true;
@@ -356,8 +322,8 @@ export default defineComponent({
                 } else {
                   customSceneList.map((item: any) => {
                     if (nowTime < item.startTime) {
-                      let oldTimeStart: any = startTime;
-                      let oldTimeEnd: any = endTime;
+                      startTime = item.startTime;
+                      endTime = item.endTime;
                       if (item.startTime < startTime) {
                         startTime = item.startTime;
                         endTime = item.endTime;
@@ -366,6 +332,7 @@ export default defineComponent({
                       }
                     }
                   });
+
                   /**
                    *需要补加上和未来时间连续的问题
                    */
@@ -526,10 +493,13 @@ export default defineComponent({
         }
       },
       {
-        deep: false,
+        deep: true,
         immediate: true,
       }
     );
+    onMounted(() => {
+      // proxyData.formateWorkTime();
+    });
     return {
       ...toRefs(proxyData),
     };

+ 1 - 1
src/views/envmonitor/components/workOvertime/index.vue

@@ -1205,7 +1205,7 @@ export default defineComponent({
           position: absolute;
           height: 34px;
           left: 0px;
-          top: 0px;
+          top: 5px;
           font-family: "PingFang SC";
           font-style: normal;
           font-weight: 400;

+ 1 - 0
tsconfig.json

@@ -11,6 +11,7 @@
     "esModuleInterop": true,
     "allowSyntheticDefaultImports": true,
     "suppressImplicitAnyIndexErrors":true,
+    "noImplicitAny":true,
     "sourceMap": true,
     "baseUrl": ".",
     "types": [