Bläddra i källkod

图片上传优化

zhujindu 18 timmar sedan
förälder
incheckning
4c9177c609

+ 23 - 45
src/components/deleteUploadImgTaskPhoto.vue

@@ -224,55 +224,33 @@ export default {
             };
             };
           }),
           }),
         );
         );
-        this.$nextTick(() => {
-          this.syncUpload(localIds, startIndex);
-        });
+        // this.$nextTick(() => {
+        //   this.syncUpload(localIds, startIndex);
+        // });
       } else {
       } else {
         this.$emit('upDataDetail');
         this.$emit('upDataDetail');
       }
       }
-      // if (this.isIOS()) {
-      //   this.imgArr = this.imgArr.concat([...localIds]);
-      //   // 解决ios微信localId无法直接使用的问题,获取base64后再上传
-      //   // this.setIosImg(localIds);
-      // } else {
-      //   this.imgArr = this.imgArr.concat([...localIds]);
-      // }
-      // this.$emit('upDataDetail');
-    },
-    syncUpload(localIds, baseIndex = 0, callback) {
-      if (!localIds.length) {
-        this.isUploadImg = true;
-        callback && callback();
-        return;
-      } else {
-        var localId = localIds.pop();
-        wx.uploadImage({
-          localId: localId,
-          isShowProgressTips: 0, // 默认为1,显示进度提示
-          success: (res) => {
-            const index = baseIndex + localIds.length;
-            if (this.imgArr[index]) {
-              this.imgArr[index].mediaId = res.serverId;
-            }
-            this.syncUpload(localIds, baseIndex, callback);
-          },
-        });
-      }
-    },
-    isIOS() {
-      return /iPhone|iPad|iPod/i.test(navigator.userAgent);
-    },
-    setIosImg(localIds) {
-      localIds.forEach((localId) => {
-        this.wx.getLocalImgData({
-          localId: localId, // 图片的localID
-          success: (res) => {
-            console.log(res.localData);
-            // this.imgArr.push(res.localData);
-          },
-        });
-      });
     },
     },
+    // syncUpload(localIds, baseIndex = 0, callback) {
+    //   if (!localIds.length) {
+    //     this.isUploadImg = true;
+    //     callback && callback();
+    //     return;
+    //   } else {
+    //     var localId = localIds.pop();
+    //     wx.uploadImage({
+    //       localId: localId,
+    //       isShowProgressTips: 0, // 默认为1,显示进度提示
+    //       success: (res) => {
+    //         const index = baseIndex + localIds.length;
+    //         if (this.imgArr[index]) {
+    //           this.imgArr[index].mediaId = res.serverId;
+    //         }
+    //         this.syncUpload(localIds, baseIndex, callback);
+    //       },
+    //     });
+    //   }
+    // },
   },
   },
 };
 };
 </script>
 </script>

+ 48 - 34
src/views/deviceWithin/taskPhotoTaking.vue

@@ -152,6 +152,7 @@ export default {
       spanArr: [],
       spanArr: [],
       pos: 0,
       pos: 0,
       mediaIds: [],
       mediaIds: [],
+      mediaInfos: [],
     };
     };
   },
   },
   activated() {
   activated() {
@@ -255,40 +256,53 @@ export default {
     },
     },
     async onSubmit() {
     async onSubmit() {
       this.toastLoading(0, '提交中,请稍候...', true);
       this.toastLoading(0, '提交中,请稍候...', true);
-      try {
-        const taskPhoto = this.$refs.taskPhoto && this.$refs.taskPhoto[0];
-        if (taskPhoto && !taskPhoto.isUploadImg) {
-          await this.waitUploadReady(1000);
-        }
-
-        let formData = {
-          storeId: this.$route.query.storeId,
-          storeCode: this.$route.query.storeCode,
-          storeGroupId: this.$route.query.storeGroupId,
-          visitsId: this.visitsId,
-          taskList: this.taskIds.split(',').map((val) => Number(val)),
-          insert: true,
-          collectionAnswers: [],
-          checkUnManage: 'N',
-          deviceCode: '',
-          putInCode: '',
-          equipmentCode: '',
-          collectionItemId: taskPhoto ? taskPhoto.collectionItemId : '',
-          objectType: this.$route.query.photoType,
-          locationRemark: taskPhoto ? taskPhoto.locationRemark : '',
-          mediaInfos: [],
-          isH5: this.userInfo.photoMethod == '1',
-        };
-        if (this.userInfo.photoMethod == '1') {
-          formData.mediaInfos = [];
-        } else if (taskPhoto) {
-          formData.mediaInfos = taskPhoto.imgArr;
-        }
-        await this.addCollection(formData);
-      } catch (err) {
-        this.$toast(err.message || '提交失败,请稍后再试');
-      } finally {
-        this.toastLoading().clear();
+      let formData = {
+        storeId: this.$route.query.storeId,
+        storeCode: this.$route.query.storeCode,
+        storeGroupId: this.$route.query.storeGroupId,
+        visitsId: this.visitsId,
+        taskList: this.taskIds.split(',').map((val) => Number(val)),
+        insert: true,
+        collectionAnswers: [],
+        checkUnManage: 'N',
+        deviceCode: '',
+        putInCode: '',
+        equipmentCode: '',
+        collectionItemId: taskPhoto ? taskPhoto.collectionItemId : '',
+        objectType: this.$route.query.photoType,
+        locationRemark: taskPhoto ? taskPhoto.locationRemark : '',
+        mediaInfos: [],
+        isH5: this.userInfo.photoMethod == '1',
+      };
+      if (this.userInfo.photoMethod == '1') {
+        formData.mediaInfos = [];
+      } else if (taskPhoto) {
+        this.mediaInfos = [];
+        this.syncUpload(taskPhoto.imgArr, () => {
+          this.toastLoading().clear();
+          formData.mediaInfos = this.mediaInfos;
+        });
+      }
+      await this.addCollection(formData);
+    },
+    syncUpload(imgArr, callback) {
+      if (!imgArr.length) {
+        this.isUploadImg = true;
+        callback && callback();
+        return;
+      } else {
+        var item = imgArr.pop();
+        wx.uploadImage({
+          localId: item.mediaFileUrl,
+          isShowProgressTips: 0, // 默认为1,显示进度提示
+          success: (res) => {
+            this.mediaInfos.push({
+              mediaId: res.serverId,
+              mediaFileUrl: item.mediaFileUrl,
+            });
+            this.syncUpload(localIds, callback);
+          },
+        });
       }
       }
     },
     },
     addCollection(formData) {
     addCollection(formData) {