Переглянути джерело

新增 未发送图片notice

wangzhihui 4 роки тому
батько
коміт
fd16ad44d5
1 змінених файлів з 54 додано та 3 видалено
  1. 54 3
      src/components/Header.vue

+ 54 - 3
src/components/Header.vue

@@ -6,7 +6,11 @@
       <img class="logo" src="../assets/white-logo.png" alt="" />
     </div>
     <div class="right">
-      <div class="pointer" style="padding-top: 6px">
+      <div
+        @click="dialogVisible = true"
+        class="pointer"
+        style="padding-top: 6px"
+      >
         <el-badge
           :hidden="isNewMessage == 0"
           :is-dot="isNewMessage"
@@ -21,29 +25,76 @@
       <div class="user">{{ userName }}</div>
       <div class="quit" @click="quit">[退出]</div>
     </div>
+    <el-dialog v-model="dialogVisible" title="拍照通知" width="30%">
+      <h3 style="margin: 10px 30px" v-for="item in isNewMessage" :key="item">
+        {{ item }}
+      </h3>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button type="primary" @click="dialogVisible = false">
+            确定
+          </el-button>
+        </span>
+      </template>
+    </el-dialog>
   </div>
 </template>
 <script>
 import store from "../store";
 import router from "../router";
-import { ref } from "_vue@3.2.20@vue";
+import api from "../apis/fetch";
+import { onMounted, ref } from "_vue@3.2.20@vue";
 import { BellFilled } from "@element-plus/icons";
+import _ from "lodash";
 export default {
   components: {
     BellFilled,
   },
   setup() {
-    let isNewMessage = ref(0);
     let userName = localStorage.staffName;
     function quit() {
       localStorage.clear();
       store.commit("changeLogin", false);
       router.push({ path: "/login" });
     }
+    let dialogVisible = ref(false);
+    let isNewMessage = ref(0);
+    function isWithinTime(t0 = new Date()) {
+      let t1 = _.cloneDeep(t0);
+      let t2 = _.cloneDeep(t0);
+      t1.setHours(8);
+      t1.setMinutes(30);
+      t1.setSeconds(0);
+      t2.setHours(9);
+      t2.setMinutes(30);
+      t2.setSeconds(0);
+      let t00 = t0.getTime();
+      let t11 = t1.getTime();
+      let t22 = t2.getTime();
+      return t00 > t11 && t00 < t22;
+    }
+    async function getUnphotographNotice() {
+      console.log("heart");
+      let { data } = await api.getUnphotographNotice();
+      if (data.status == 0) {
+        isNewMessage.value = data.result;
+      } else {
+        isNewMessage.value = 0;
+      }
+    }
+    onMounted(() => {
+      getUnphotographNotice();
+      setInterval(async () => {
+        if (isWithinTime()) {
+          getUnphotographNotice();
+        }
+      }, 2 * 60 * 1000);
+    });
     return {
       quit,
       userName,
       isNewMessage,
+      dialogVisible,
     };
   },
 };