From 796dbb23f4a6ae6140a9e4d3d759bcb1513a78c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A7=AC=E9=8B=86=E5=B1=BE?= <804461479@qq.com>
Date: Mon, 8 Jul 2024 15:08:59 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=89=8B=E5=8A=A8=E6=B1=87?=
 =?UTF-8?q?=E6=80=BB=E6=8F=90=E7=A4=BA=E5=80=92=E8=AE=A1=E6=97=B6=E5=BC=B9?=
 =?UTF-8?q?=E7=AA=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/attendance/stat/list.vue       | 77 +++++++++++++++++++++--
 src/views/staff/perform/summary/list.vue | 78 +++++++++++++++++++++---
 2 files changed, 142 insertions(+), 13 deletions(-)

diff --git a/src/views/attendance/stat/list.vue b/src/views/attendance/stat/list.vue
index a6be5ea..8c3b0f1 100644
--- a/src/views/attendance/stat/list.vue
+++ b/src/views/attendance/stat/list.vue
@@ -128,7 +128,7 @@
       :close-on-click-modal="false"
       :show-close="false"
     >
-      <div class="fresh_box">
+      <div class="fresh_box" v-if="showContent">
         <div class="title_box" style="margin-bottom: 20px;">
           浠呮敮鎸佹墜鍔ㄦ洿鏂板墠涓€澶╁強褰撴棩鐨勬墦鍗℃暟鎹紝璇烽€夋嫨闇€瑕佹洿鏂扮殑鏃堕棿娈碉細
         </div>
@@ -143,8 +143,41 @@
         >
         </el-date-picker>
       </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFresh" :loading="submitLoad"
+      <div class="fresh_box" v-else>
+        <div
+          class="title_box"
+          style="margin-bottom: 20px;line-height: 30px;"
+          v-if="showTip"
+        >
+          璇风‘璁ゆ槸鍚﹀紑濮嬭繘琛寋{
+            freshDate[0] + "鑷�" + freshDate[1]
+          }}鐨勮€冨嫟鏁版嵁閲嶆柊姹囨€伙紱姝よ繃绋嬮璁¢渶瑕�
+          <span style="color:#ff0000 ;">10</span> 鍒嗛挓宸﹀彸锛岃鍕垮叧闂垨鍒锋柊椤甸潰
+        </div>
+        <div
+          class="title_box"
+          style="margin-bottom: 20px;line-height: 30px;"
+          v-else
+        >
+          姝e湪杩涜{{
+            freshDate[0] + "鑷�" + freshDate[1]
+          }}鐨勮€冨嫟鏁版嵁閲嶆柊姹囨€伙紱姝よ繃绋嬮璁¤繕闇€瑕�
+          <span style="color:#ff0000 ;">{{ restTime }}</span>
+          鍒嗛挓宸﹀彸锛岃鍕垮叧闂垨鍒锋柊椤甸潰
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" v-if="showTip">
+        <el-button
+          type="primary"
+          @click="() => (showContent = false)"
+          v-if="showContent"
+          >纭� 瀹�</el-button
+        >
+        <el-button
+          type="primary"
+          @click="submitFresh"
+          v-else
+          :loading="submitLoad"
           >纭� 瀹�</el-button
         >
         <el-button @click="cancleFresh">鍙� 娑�</el-button>
@@ -176,6 +209,30 @@ export default {
     this.initalArr = this.config.columns;
   },
   methods: {
+    //鍊掕鏃�
+    countdown() {
+      let now = Date.parse(new Date());
+      let msec = this.endTime - now;
+
+      if (msec < 0) return;
+
+      // let day = parseInt(msec / 1000 / 60 / 60 / 24);
+      let hr = parseInt((msec / 1000 / 60 / 60) % 24);
+      let min = parseInt((msec / 1000 / 60) % 60);
+      let sec = parseInt((msec / 1000) % 60);
+      min = min > 9 ? min : "0" + min;
+      sec = sec > 9 ? sec : "0" + sec;
+      this.restTime = min + "鍒�" + sec + "绉�";
+      const that = this;
+      if (min >= 0 && sec >= 0) {
+        if (min == 0 && sec == 0) {
+          return;
+        }
+        setTimeout(function() {
+          that.countdown();
+        }, 1000);
+      }
+    },
     submitFresh() {
       console.log(this.freshDate);
       if (this.freshDate) {
@@ -186,11 +243,11 @@ export default {
         })
           .then((res) => {
             if (res.code == 1) {
-              this.$message.success(res.msg);
-              this.dialogOpen = false;
+              this.showTip = false;
               this.btnFreshLoading = false;
               this.submitLoad = false;
-              this.freshDate = "";
+              this.endTime = Date.parse(new Date()) + 10 * 60 * 1000;
+              this.countdown();
             }
           })
           .catch((error) => {
@@ -198,6 +255,9 @@ export default {
             this.submitLoad = false;
             this.dialogOpen = false;
             this.btnFreshLoading = false;
+            this.showContent = true;
+            this.showTip = true;
+            this.freshDate = "";
           });
       } else {
         this.$message.error("璇烽€夋嫨鏃堕棿鑼冨洿锛�");
@@ -206,6 +266,7 @@ export default {
     cancleFresh() {
       this.dialogOpen = false;
       this.btnFreshLoading = false;
+      this.showContent = true;
       this.freshDate = "";
     },
     // 鎵嬪姩鏇存柊
@@ -478,6 +539,10 @@ export default {
   },
   data() {
     return {
+      showTip: true,
+      showContent: true,
+      endTime: "",
+      restTime: "10",
       pickerOptions0: {
         disabledDate(v) {
           let limitDate =
diff --git a/src/views/staff/perform/summary/list.vue b/src/views/staff/perform/summary/list.vue
index 6ac4abf..12aac6f 100644
--- a/src/views/staff/perform/summary/list.vue
+++ b/src/views/staff/perform/summary/list.vue
@@ -36,7 +36,7 @@
       :close-on-click-modal="false"
       :show-close="false"
     >
-      <div class="fresh_box">
+      <div class="fresh_box" v-if="showContent">
         <div class="title_box" style="margin-bottom: 20px;">
           浠呮敮鎸佹墜鍔ㄦ洿鏂版湀搴︾哗鏁堟暟鎹紝璇烽€夋嫨闇€瑕佹洿鏂扮殑鏈堜唤锛�
         </div>
@@ -49,8 +49,37 @@
         >
         </el-date-picker>
       </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitFresh" :loading="submitLoad"
+      <div class="fresh_box" v-else>
+        <div
+          class="title_box"
+          style="margin-bottom: 20px;line-height: 30px;"
+          v-if="showTip"
+        >
+          璇风‘璁ゆ槸鍚﹀紑濮嬭繘琛寋{ freshDate }}鐨勭哗鏁堟暟鎹噸鏂版眹鎬伙紱姝よ繃绋嬮璁¢渶瑕�
+          <span style="color:#ff0000 ;">15</span> 鍒嗛挓锛岃鍕垮叧闂垨鍒锋柊椤甸潰
+        </div>
+        <div
+          class="title_box"
+          style="margin-bottom: 20px;line-height: 30px;"
+          v-else
+        >
+          姝e湪杩涜{{ freshDate }}鐨勭哗鏁堟暟鎹噸鏂版眹鎬伙紱姝よ繃绋嬮璁¤繕闇€瑕�
+          <span style="color:#ff0000 ;">{{ restTime }}</span>
+          鍒嗛挓锛岃鍕垮叧闂垨鍒锋柊椤甸潰
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer" v-if="showTip">
+        <el-button
+          type="primary"
+          @click="() => (showContent = false)"
+          v-if="showContent"
+          >纭� 瀹�</el-button
+        >
+        <el-button
+          type="primary"
+          @click="submitFresh"
+          v-else
+          :loading="submitLoad"
           >纭� 瀹�</el-button
         >
         <el-button @click="cancleFresh">鍙� 娑�</el-button>
@@ -69,7 +98,9 @@ export default {
     dialogShow,
   },
   mixins: [table],
-  created() {},
+  created() {
+    console.log();
+  },
 
   methods: {
     /** 瀵煎嚭Excel */
@@ -186,11 +217,12 @@ export default {
         })
           .then((res) => {
             if (res.code == 1) {
-              this.$message.success(res.msg);
-              this.dialogOpen = false;
+              // this.$message.success(res.msg);
+              this.showTip = false;
               this.btnFreshLoading = false;
               this.submitLoad = false;
-              this.freshDate = "";
+              this.endTime = Date.parse(new Date()) + 15 * 60 * 1000;
+              this.countdown();
             }
           })
           .catch((error) => {
@@ -198,6 +230,9 @@ export default {
             this.submitLoad = false;
             this.dialogOpen = false;
             this.btnFreshLoading = false;
+            this.showContent = true;
+            this.showTip = true;
+            this.freshDate = "";
           });
       } else {
         this.$message.error("璇烽€夋嫨闇€瑕佹洿鏂扮殑鏈堜唤锛�");
@@ -206,17 +241,46 @@ export default {
     cancleFresh() {
       this.dialogOpen = false;
       this.btnFreshLoading = false;
+      this.showContent = true;
       this.freshDate = "";
     },
+    //鍊掕鏃�
+    countdown() {
+      let now = Date.parse(new Date());
+      let msec = this.endTime - now;
+
+      if (msec < 0) return;
+
+      // let day = parseInt(msec / 1000 / 60 / 60 / 24);
+      let hr = parseInt((msec / 1000 / 60 / 60) % 24);
+      let min = parseInt((msec / 1000 / 60) % 60);
+      let sec = parseInt((msec / 1000) % 60);
+      min = min > 9 ? min : "0" + min;
+      sec = sec > 9 ? sec : "0" + sec;
+      this.restTime = min + "鍒�" + sec + "绉�";
+      const that = this;
+      if (min >= 0 && sec >= 0) {
+        if (min == 0 && sec == 0) {
+          return;
+        }
+        setTimeout(function() {
+          that.countdown();
+        }, 1000);
+      }
+    },
   },
   data() {
     return {
+      endTime: "",
+      restTime: "15",
       freshDate: "",
       btnFreshLoading: false,
       sortList: "",
       dialogOpen: false,
       isExport: false,
       showBtn: true,
+      showTip: true,
+      showContent: true,
       submitLoad: false,
       progress: false,
       percent: 0,
-- 
2.24.3