Browse Source

fix: 我要离开

chenzhen2 2 years ago
parent
commit
574830b3f0

+ 21 - 5
src/views/envmonitor/components/ManualWork/WorkConfig.vue

@@ -99,7 +99,7 @@ export default defineComponent({
       },
       // 触发加班按钮
       triggerWork() {
-        contx.emit("triggerWork",1);
+        contx.emit("triggerWork", 1);
       },
       timerText: timerText,
       text: text,
@@ -473,12 +473,12 @@ export default defineComponent({
           customSceneList.map((item: any) => {
             let oldTimeEnd: any = endTime;
             if (startTime === item.startTime && endTime === item.endTime) {
-              item.type = 1;
+              item.type = 3;
               proxyData.delTimeArr.push(item);
             } // 点击我要离开的时候需要删除的数据
             if (oldTimeEnd === item.startTime) {
               endTime = item.endTime;
-              item.type = 1;
+              item.type = 3;
               proxyData.delTimeArr.push(item);
             }
           });
@@ -486,13 +486,29 @@ export default defineComponent({
       },
       // 我要离开
       myLeaving() {
+        // 格式化当前时间
         proxyData.formatDataDel();
-        // console.log("删除了=====");
-        // console.log(proxyData.delTimeArr);
+        // 设置真实的离开时间
+        proxyData.setLeavingTime();
+        console.log("离开了=====");
+        console.log(proxyData.delTimeArr);
         proxyData.leaveBtnFlag = true;
         // 取消加班
         proxyData.saveBatchCustomScene();
       },
+      // 设置真实的离开时间
+      setLeavingTime() {
+        let nowTime: any = getRelNowTime();
+        proxyData.delTimeArr.map((delTime: any) => {
+          if (nowTime >= delTime.startTime && nowTime <= delTime.endTime) {
+            delTime.endTimeReal = nowTime;
+          } else if (nowTime < delTime.startTime) {
+            delTime.type = 1; // 时间还未开始直接取消加班记录
+          } else if (nowTime > delTime.endTime) {
+            delTime.endTimeReal = delTime.endTime;
+          }
+        });
+      },
       // 取消加班记录
       saveBatchCustomScene() {
         // proxyGlobal.proxy.$loadingStart(0);

+ 29 - 15
src/views/envmonitor/components/ManualWork/index.vue

@@ -225,11 +225,13 @@ export default defineComponent({
       },
       // 获取时间的下标
       getTimerIndex(timerArr: any, val: any) {
+        let cusIndex: any = 0;
         timerArr.map((time: any, index: any) => {
           if (time.formatTimer == val) {
-            return index;
+            cusIndex = index;
           }
         });
+        return cusIndex;
       },
       // 获取当前位置的坐标(多端服务定制的判断规则-待开发)
       getNowPerstion(timerArr: any) {
@@ -248,7 +250,7 @@ export default defineComponent({
 
         let spaceCustomContentList: any =
           proxyData.nowData.spaceCustomContentList || [];
-          // debugger
+        // debugger
         if (formatTimer >= cusStartTime && formatTimer <= cusEndTime) {
           // debugger
           //在服务定制时间之间
@@ -261,8 +263,9 @@ export default defineComponent({
           spaceCustomContentList.map((item: any) => {
             let startTime: any = proxyData.parseCusStartTime(item.startTime);
             if (startTime > cusEndTime && endFormatTimer > startTime) {
-              let index: any = proxyData.getTimerIndex(timerArr, startTime);
-              obj.len = index - obj.nowIndex;
+              let cusIndex: any = proxyData.getTimerIndex(timerArr, startTime);
+              obj.len =
+                cusIndex - obj.nowIndex > 0 ? cusIndex - obj.nowIndex : 0;
             }
           });
         } else if (formatTimer < cusStartTime) {
@@ -722,6 +725,17 @@ export default defineComponent({
           });
         }
       },
+      // 加班时间是否在所有的服务定制时间之前
+      isCusTimeBefore(spaceCustomContentList: any, time: any) {
+        let flag: any = false;
+        spaceCustomContentList.map((item: any) => {
+          if (time > item.startTime) {
+            flag = true;
+          }
+        });
+        return flag;
+      },
+      //  设置加班选中区域
       setWorkTimeList() {
         proxyData.isUpdate = false;
         proxyGlobal.proxy.$loadinngEnd();
@@ -730,15 +744,11 @@ export default defineComponent({
         let nowDate: any = formatDate("YYYY-MM-DD");
         for (let i = 0; i < data.length; i++) {
           let date: any = formatDateStr(data[i].date);
+          let spaceCustomContentList: any =
+            data[i].spaceCustomContentList || []; // 固定服务定制时间
 
-          let cusStartTime: any = proxyData.parseCusStartTime(
-            data[i].cusStartTime
-          );
-          let cusEndTime: any = proxyData.parseCusEndTime(data[i].cusEndTime);
-          // let isActive: Boolean = false;
           let week: any = getWeekDate(new Date(date).getDay());
           if (date === nowDate) {
-            // isActive = true;
             week = "今天";
           }
           let timerArr: any = [];
@@ -754,15 +764,20 @@ export default defineComponent({
           let customSceneList: any = data[i]?.customSceneList ?? [];
           customSceneList.map((custom: any) => {
             for (let j = 0; j < timerArr.length; j++) {
-              // debugger
-              if (timerArr[j].formatTimer < cusStartTime) {
+              if (
+                proxyData.isCusTimeBefore(
+                  spaceCustomContentList,
+                  timerArr[j].formatTimer
+                )
+              ) {
+                // 加班时间在服务定制时间之前
                 let tempStartTime: any = proxyData.parseCusStartTime(
                   custom.startTime
                 );
                 let tempEndTime: any = proxyData.parseCusStartTime(
                   custom.endTime
                 );
-                // 加班时间在服务定制时间之前
+
                 if (
                   timerArr[j].formatTimer >= tempStartTime &&
                   timerArr[j].formatTimer < tempEndTime
@@ -771,6 +786,7 @@ export default defineComponent({
                 }
               } else {
                 // 加班时间在服务外定制时间之后
+
                 let tempStartTime: any = proxyData.parseCusEndTime(
                   custom.startTime
                 );
@@ -787,8 +803,6 @@ export default defineComponent({
             }
           });
 
-          let spaceCustomContentList: any =
-            data[i].spaceCustomContentList || [];
           spaceCustomContentList.map((spaceCustom: any) => {
             let startTime: any = proxyData.parseCusStartTime(
               spaceCustom.startTime

+ 25 - 3
src/views/envmonitor/index.vue

@@ -1680,19 +1680,33 @@ export default defineComponent({
           proxyData.queryCustomAndScenceTimer(5000);
         });
       },
+
       // 手动控制加班处理时间段拼接的逻辑
       formateManualWorkTime() {
         // debugger
-        let data: any = proxyData.workkArr
+        let data: any = proxyData.workkArr;
         for (let i = 0; i < proxyData.workkArr.length; i++) {
           let item: any = proxyData.workkArr[i];
-          item.cusStartTime = "";
-          item.cusEndTime = "";
           let spaceCustomContentList: any =
             proxyData.workkArr[i].spaceCustomContentList || [];
+          spaceCustomContentList = spaceCustomContentList.sort(
+            proxyData.compare
+          );
+          item.spaceCustomContentList = spaceCustomContentList;
           let nowTime: any = getRelNowTime();
           let nowDate: any = formatDate("YYYY-MM-DD");
           let date: any = formatDateStr(data[i].date);
+          item.cusStartTime = spaceCustomContentList[0]
+            ? spaceCustomContentList[0].startTime
+            : "";
+          item.cusEndTime = spaceCustomContentList[0]
+            ? spaceCustomContentList[0].endTime
+            : "";
+          if (nowDate == date) {
+            // 当前时间
+            item.cusStartTime = "";
+            item.cusEndTime = "";
+          }
           for (let j = 0; j < spaceCustomContentList.length; j++) {
             if (item.cusStartTime && item.cusEndTime) {
               if (item.cusEndTime + 1 === spaceCustomContentList[j].startTime) {
@@ -1708,6 +1722,14 @@ export default defineComponent({
               }
             }
           }
+          if (item.cusStartTime) {
+            item.cusStartTime = spaceCustomContentList[0]
+              ? spaceCustomContentList[0].startTime
+              : "";
+            item.cusEndTime = spaceCustomContentList[0]
+              ? spaceCustomContentList[0].endTime
+              : "";
+          }
 
           console.log("proxyData.workkArr===");
           console.log(proxyData.workkArr);

+ 1 - 1
src/views/mapDataNew/sichuan.vue

@@ -19,7 +19,6 @@
     </div>
     <div class="canvas-box"  id="canvasBox">
       <canvas id="myCanvas" class="canvas-dom" style="boder: 1px solid red">
-        
       </canvas>
     </div>
   </div>
@@ -318,6 +317,7 @@ export default defineComponent({
           return v1.x * v2.y - v1.y * v2.x;
         }
       },
+      // 画图标
       drawIcon(ctx: any, url: any, iconPerstion: any) {
         let img: any = new Image();
         img.src = require(`@/assets/svg/${url}`);