Sfoglia il codice sorgente

未上传数据更新调整

zhangjie 4 anni fa
parent
commit
c6af8adbcb
3 ha cambiato i file con 44 aggiunte e 42 eliminazioni
  1. 17 0
      src/mixins/setTimeMixins.js
  2. 13 41
      src/mixins/uploadTaskMixin.js
  3. 14 1
      src/views/Home.vue

+ 17 - 0
src/mixins/setTimeMixins.js

@@ -0,0 +1,17 @@
+export default {
+  data() {
+    return {
+      setTs: []
+    };
+  },
+  methods: {
+    addSetTime(action, time = 1 * 1000) {
+      this.setTs.push(setTimeout(action, time));
+    },
+    clearSetTs() {
+      if (!this.setTs.length) return;
+      this.setTs.forEach(t => clearTimeout(t));
+      this.setTs = [];
+    }
+  }
+};

+ 13 - 41
src/mixins/uploadTaskMixin.js

@@ -13,7 +13,7 @@ export default {
   data() {
     return {
       uploadTask: null,
-      setT: ""
+      taskSetTs: []
     };
   },
   methods: {
@@ -21,22 +21,12 @@ export default {
       await db.saveUploadInfo(task).catch(err => {
         console.log(err);
       });
-      // const id = await db.saveUploadInfo(task).catch(err => {
-      //   console.log(err);
-      // });
-
-      // if (id) {
-      //   task.id = id;
-      //   this.uploadTask.addUploadTask(task);
-      // }
     },
     async uploadSuccessCallback(curUploadTask) {
       await db.updateUploadState(curUploadTask.id);
-      const unuploadNo = await db.countScanList({ isUpload: 0 });
-      this.$store.commit("client/setUnuploadNo", unuploadNo);
     },
     async initUploadTask() {
-      if (this.setT) clearTimeout(this.setT);
+      this.clearTaskSetTs();
       const unuploadList = await db.searchUploadList({
         isUpload: 0
       });
@@ -48,46 +38,28 @@ export default {
         },
         uploadTaskOverCallback: () => {
           if (!this.uploadTask) return;
-          this.setT = setTimeout(() => {
-            this.initUploadTask();
-          }, 0.5 * 1000);
+          this.taskSetTs.push(
+            setTimeout(() => {
+              this.initUploadTask();
+            }, 0.5 * 1000)
+          );
         },
         uploadErrorCallBack: curUploadTask => {
           const content = `考生:${curUploadTask.studentName},准考证:${curUploadTask.examNumber},科目:${curUploadTask.subjectName},图片上传失败!`;
           console.log(content);
           return;
-
-          // this.$Notice.error({
-          //   duration: 0,
-          //   name: curUploadTask.id,
-          //   render: h => {
-          //     return h("div", [
-          //       h("p", content),
-          //       h(
-          //         "Button",
-          //         {
-          //           props: {
-          //             type: "primary"
-          //           },
-          //           on: {
-          //             click: async () => {
-          //               await db.deleteScanById(curUploadTask.id);
-          //               this.$Notice.close(curUploadTask.id);
-          //             }
-          //           }
-          //         },
-          //         "确定"
-          //       )
-          //     ]);
-          //   }
-          // });
         }
       });
     },
     stopUpload() {
-      if (this.setT) clearTimeout(this.setT);
+      this.clearTaskSetTs();
       this.uploadTask && this.uploadTask.stopUploadTask();
       this.uploadTask = null;
+    },
+    clearTaskSetTs() {
+      if (!this.taskSetTs.length) return;
+      this.taskSetTs.forEach(t => clearTimeout(t));
+      this.taskSetTs = [];
     }
   }
 };

+ 14 - 1
src/views/Home.vue

@@ -37,7 +37,9 @@
 
 <script>
 import uploadTaskMixin from "../mixins/uploadTaskMixin";
+import setTimeMixins from "../mixins/setTimeMixins";
 import { mapState, mapMutations } from "vuex";
+import db from "../plugins/db";
 import log4js from "@/plugins/logger";
 const logger = log4js.getLogger("scan");
 
@@ -45,7 +47,7 @@ const { ipcRenderer } = require("electron");
 
 export default {
   name: "home",
-  mixins: [uploadTaskMixin],
+  mixins: [uploadTaskMixin, setTimeMixins],
   data() {
     return {
       showProgress: false,
@@ -78,9 +80,19 @@ export default {
     this.backRouters.LineScan = scanBackRouter;
     this.initUploadTask();
     this.setCurSubject({});
+    this.updateUnuploadCount();
   },
   methods: {
     ...mapMutations("client", ["setCurSubject"]),
+    // unupload count
+    async updateUnuploadCount() {
+      this.clearSetTs();
+      const unuploadNo = await db.countScanList({ isUpload: 0 });
+      this.$store.commit("client/setUnuploadNo", unuploadNo);
+      this.addSetTime(() => {
+        this.updateUnuploadCount();
+      }, 2 * 1000);
+    },
     logout() {
       this.$ls.clear();
       this.$router.push({ name: "Login" });
@@ -117,6 +129,7 @@ export default {
   },
   beforeDestroy() {
     this.stopUpload();
+    this.clearSetTs();
   }
 };
 </script>