Эх сурвалжийг харах

多门考试下载状态不能共用

Michael Wang 4 жил өмнө
parent
commit
942b8c3cda

+ 2 - 1
.env.development

@@ -1,8 +1,9 @@
 VUE_APP_SKIP_CHECK_NATIVE=true
+VUE_APP_SELF_DEFINE_DOMAIN=true
+# 仅在开发阶段使用,可直接用ip
 VUE_APP_CORE_HOST_URL=https://org0.qmth.com.cn
 VUE_APP_CONFIG_FILE_SEVER_URL=https://ecs-test-static.qmth.com.cn
 VUE_APP_ROUTER_PATH=/oe-web/
 VUE_APP_PUBLIC_PATH=/oe-web/
 VUE_APP_SLS_STORE_NAME=student-client-test
-VUE_APP_SELF_DEFINE_DOMAIN=true
 VUE_APP_GIT_REPO_VERSION=TO_BE_OVERRIDED

+ 17 - 4
src/features/OfflineExam/OfflineExamList.vue

@@ -50,7 +50,7 @@
                   查看试卷
                 </i-button>
                 <a
-                  v-show="!disableDownloadPaperBtn"
+                  v-show="!downloadingCourse(course)"
                   class="qm-primary-button"
                   href="#"
                   download
@@ -60,7 +60,7 @@
                   下载试卷
                 </a>
                 <i-button
-                  v-if="disableDownloadPaperBtn"
+                  v-if="downloadingCourse(course)"
                   class="qm-primary-button"
                 >
                   下载中
@@ -132,6 +132,7 @@ export default {
   data() {
     return {
       disableDownloadPaperBtn: false,
+      downloadPaperIds: new Set(),
       selectedCourse: null,
     };
   },
@@ -188,8 +189,17 @@ export default {
     },
     tempDisableBtnAndDownloadPaper(course) {
       window._hmt.push(["_trackEvent", "离线考试页面", "下载试卷"]);
-      this.disableDownloadPaperBtn = true;
-      setTimeout(() => (this.disableDownloadPaperBtn = false), 10 * 1000);
+      this.downloadPaperIds.add(course.paperId);
+      this.downloadPaperIds = new Set(this.downloadPaperIds);
+      // this.$forceUpdate();
+      // this.disableDownloadPaperBtn = true;
+      setTimeout(() => {
+        // this.disableDownloadPaperBtn = false;
+        this.downloadPaperIds.delete(course.paperId);
+        this.downloadPaperIds = new Set(this.downloadPaperIds);
+        // set 并不能正常的reactive
+        // this.$forceUpdate();
+      }, 10 * 1000);
 
       window.location.href =
         "/api/ecs_ques/paper/export/" +
@@ -203,6 +213,9 @@ export default {
         "&$token=" +
         this.user.token;
     },
+    downloadingCourse(course) {
+      return this.downloadPaperIds.has(course.paperId);
+    },
     uploadHandler(course) {
       this.selectedCourse = course;
       // setTimeout(() => {