Procházet zdrojové kódy

解决文件上传过程中再次选文件上传 进度来回跳的问题

zq před 1 rokem
rodič
revize
3b2a640f7d

+ 37 - 30
src/views/book/courseware/create/components/base/common/UploadFile.vue

@@ -223,41 +223,48 @@ export default {
         return false;
       }
 
-      files.forEach((file) => {
-        let form = new FormData();
-        form.append(file.name, file.raw, file.name);
-        fileUpload('Mid', form, {
-          handleUploadProgress: (progressEvent) => {
-            // 进度到99等服务器返回文件信息后才算实际完成
-            let per = Number((progressEvent.progress * 99).toFixed(2) || 0);
-            let en = this.content.file_list.find((p) => p.uid === file.uid);
-            if (en) {
-              en.progress = per;
-              this.$forceUpdate();
-            }
-          },
-        }).then(({ file_info_list }) => {
-          let file_index = this.content.file_list.findIndex((p) => p.uid === file.uid);
-          if (file_index > -1) {
-            if (this.type === 'picture') {
-              this.content.file_info_list[file_index] = {
+      files
+        .filter((p) => {
+          console.log(p.progress);
+          let pro = p.progress || -1;
+          return pro <= 0;
+        })
+        .forEach((file) => {
+          console.log(file);
+          let form = new FormData();
+          form.append(file.name, file.raw, file.name);
+          fileUpload('Mid', form, {
+            handleUploadProgress: (progressEvent) => {
+              // 进度到99等服务器返回文件信息后才算实际完成
+              let per = Number((progressEvent.progress * 99).toFixed(2) || 0);
+              let en = this.content.file_list.find((p) => p.uid === file.uid);
+              if (en) {
+                en.progress = per;
+                this.$forceUpdate();
+              }
+            },
+          }).then(({ file_info_list }) => {
+            let file_index = this.content.file_list.findIndex((p) => p.uid === file.uid);
+            if (file_index > -1) {
+              if (this.type === 'picture') {
+                this.content.file_info_list[file_index] = {
+                  file_id: file_info_list[0].file_id,
+                  file_name: file_info_list[0].file_name,
+                  title: '',
+                  intro: '',
+                };
+              }
+              this.content.file_list[file_index] = {
                 file_id: file_info_list[0].file_id,
                 file_name: file_info_list[0].file_name,
-                title: '',
-                intro: '',
+                file_url: file_info_list[0].file_url,
               };
+              this.content.file_id_list.push(file_info_list[0].file_id);
+              this.$refs.upload.uploadFiles = [];
+              this.$forceUpdate();
             }
-            this.content.file_list[file_index] = {
-              file_id: file_info_list[0].file_id,
-              file_name: file_info_list[0].file_name,
-              file_url: file_info_list[0].file_url,
-            };
-            this.content.file_id_list.push(file_info_list[0].file_id);
-            this.$refs.upload.uploadFiles = [];
-            this.$forceUpdate();
-          }
+          });
         });
-      });
     },
 
     // 显示弹窗