Ver código fonte

离线文件大小超出限制提示

Michael Wang 4 anos atrás
pai
commit
fc10622051
1 arquivos alterados com 22 adições e 3 exclusões
  1. 22 3
      src/features/OfflineExam/OfflineExamUpload.vue

+ 22 - 3
src/features/OfflineExam/OfflineExamUpload.vue

@@ -32,11 +32,9 @@
       :headers="headers"
       :data="{ fileType: fileType }"
       :before-upload="handleBeforeUpload"
-      :max-size="selectedFileType === 'IMAGE' ? 1024 * 5 : 1024 * 30"
       :format="uploadFileFormat"
       :accept="uploadFileAccept"
       :on-format-error="handleFormatError"
-      :on-exceeded-size="handleMaxSize"
       :on-success="handleSuccess"
       :on-error="handleError"
       :multiple="selectedFileType === 'IMAGE'"
@@ -282,6 +280,18 @@ export default {
       const blob = file.slice(0, 4);
       filereader.readAsArrayBuffer(blob);
     },
+    fileSizeCheck(file, resolve, reject) {
+      const maxSize = this.selectedFileType === "IMAGE" ? 5 : 30;
+      if (file.size > maxSize * 1024 * 1024) {
+        this.$Notice.warning({
+          title: "超出文件大小限制",
+          desc: file.name + ` 太大,作答文件不能超过${maxSize}MB.`,
+        });
+        reject("附件大小超出限制");
+      } else {
+        resolve();
+      }
+    },
     handleSuccess() {
       //   window._hmt.push(["_trackEvent", "离线考试页面", "上传作答", "上传成功"]);
       //   this.file = null;
@@ -379,7 +389,16 @@ export default {
       );
 
       if (format !== true) {
-        console.log(format);
+        console.log({ format });
+        return;
+      }
+
+      const fileSize = await new Promise((resolve, reject) =>
+        this.fileSizeCheck(file, resolve, reject)
+      );
+
+      if (fileSize !== true) {
+        console.log({ fileSize });
         return;
       }