Переглянути джерело

feature_20250811_拜访拍照任务连拍

zhujindu 3 місяців тому
батько
коміт
9243866f0b

+ 8 - 2
src/components/deleteUploadImg1.vue

@@ -2,8 +2,7 @@
   <div>
     <van-row gutter="10">
       <van-col span="6" v-for="(urls, index) in imgs" :key="urls.id">
-        {{ urls.fileUrl }}
-        <div class="imgview 111">
+        <div class="imgview">
           <van-icon
             v-if="photoIdentifyType != 6 && types != 'edit'"
             name="close"
@@ -57,6 +56,13 @@ export default {
       type: String,
     },
   },
+  watch: {
+    imgs: {
+      handler(val) {},
+      deep: true,
+      immediate: true,
+    },
+  },
   data() {
     return {
       url: process.env.VUE_APP_Target1 + process.env.VUE_APP_BASE_API,

+ 106 - 105
src/components/uploadVvisit.vue

@@ -1,59 +1,59 @@
 <template>
   <div class="questionNamep">
     <div class="cameraDivp" @click="uploadImg">
-      <van-icon class="photo" name="photograph" size="22px" color="#969696"/>
+      <van-icon class="photo" name="photograph" size="22px" color="#969696" />
     </div>
     <div id="allmap"></div>
   </div>
 </template>
 
 <script>
-import {addstorePhoto} from "@/api/index";
-import axios from "axios";
+import { addstorePhoto } from '@/api/index';
+import axios from 'axios';
 
 export default {
   name: 'uploadImg',
   props: {
     shouws: {
       type: Boolean,
-      default: false
+      default: false,
     },
     uploadid: {
       type: String,
-      default: ''
+      default: '',
     },
     storeGroupId: {
       type: String,
-      default: ''
+      default: '',
     },
     visitsId: {
       type: String,
-      default: ''
+      default: '',
     },
     taskId: {
       type: String,
-      default: ''
+      default: '',
     },
     collectionId: {
       type: String,
-      default: ''
+      default: '',
     },
     objectType: {
       type: String,
-      default: 'rw-ycbf'
+      default: 'rw-ycbf',
     },
     visitModel: {
       type: String,
-      default: '3'
+      default: '3',
     },
   },
   methods: {
-    uploadImg(){
+    uploadImg() {
       let url = window.location.href;
       let that = this;
-      let wx = this.wx
-      let qiyeData
-      let addressesRemark=""
+      let wx = this.wx;
+      let qiyeData;
+      let addressesRemark = '';
       var map = new TMap.Map('allmap', {
         zoom: 14,
         center: new TMap.LatLng(39.986785, 116.301012),
@@ -66,109 +66,111 @@ export default {
       });
       markers.setGeometries([]);
       const instance = axios.create();
-      instance.defaults.headers.common['userId'] = localStorage.getItem("loginName");
-      instance.get(process.env.VUE_APP_BASE_API + 'mobile/wx/ticket',
-          {
-            params: {
-              url: url
-            }
-          }).then(response => {
-        if (response.status == 200) {
-          qiyeData = response.data.data;
-          wx.config({
-            beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
-            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
-            appId: qiyeData.appId, // 必填,企业微信的corpID
-            timestamp: qiyeData.timestamp, // 必填,生成签名的时间戳
-            nonceStr: qiyeData.nonceStr, // 必填,生成签名的随机串
-            signature: qiyeData.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
-            jsApiList: ["ready", "chooseImage","uploadImage","getLocation"] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
-          });
-          wx.ready(function () {
-            wx.getLocation({
-              type: 'gcj02',
-              success: function (res) {
-                var location = new TMap.LatLng(res.latitude, res.longitude);
-                map.setCenter(location);
-                markers.updateGeometries([
-                  {
-                    id: 'main', // 点标注数据数组
-                    position: location,
-                  },
-                ]);
-                geocoder
-                    .getAddress({ location: location })
-                    .then(function(result){
-                      var addresses=result.result.formatted_addresses
-                      addressesRemark=addresses.recommend
-                    },function(err){
-                      addressesRemark=""
-                    })
-              },
-              fail: function () {
-                that.$dialog.alert({
-                  message: 'GPS未开启',
-                })
-              }
+      instance.defaults.headers.common['userId'] = localStorage.getItem('loginName');
+      instance
+        .get(process.env.VUE_APP_BASE_API + 'mobile/wx/ticket', {
+          params: {
+            url: url,
+          },
+        })
+        .then((response) => {
+          if (response.status == 200) {
+            qiyeData = response.data.data;
+            wx.config({
+              beta: true, // 必须这么写,否则wx.invoke调用形式的jsapi会有问题
+              debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
+              appId: qiyeData.appId, // 必填,企业微信的corpID
+              timestamp: qiyeData.timestamp, // 必填,生成签名的时间戳
+              nonceStr: qiyeData.nonceStr, // 必填,生成签名的随机串
+              signature: qiyeData.signature, // 必填,签名,见 附录-JS-SDK使用权限签名算法
+              jsApiList: ['ready', 'chooseImage', 'uploadImage', 'getLocation'], // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
             });
-            wx.chooseImage({
-              count: 1,
-              sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
-              sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
-              defaultCameraMode: "normal", //表示进入拍照界面的默认模式,目前有normal与batch两种选择,normal表示普通单拍模式,batch表示连拍模式,不传该参数则为normal模式。从3.0.26版本开始支持front和batch_front两种值,其中front表示默认为前置摄像头单拍模式,batch_front表示默认为前置摄像头连拍模式。(注:用户进入拍照界面仍然可自由切换两种模式)
-              isSaveToAlbum:0,
-              success: function (res) {
-                var localIds=""
-                if(res.localIds!=undefined){
-                  localIds= res.localIds[0]
-                }else{
-                  localIds=res.localId
-                }
-                // andriod中localId可以作为img标签的src属性显示图片;
-                // iOS应当使用 getLocalImgData 获取图片base64数据,从而用于img标签的显示(在img标签内使用 wx.chooseImage 的 localid 显示可能会不成功)
-                wx.uploadImage({
-                  localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
-                  isShowProgressTips: 1, // 默认为1,显示进度提示
-                  success: function (res) {
-                    that.uploadImagev(res.serverId,addressesRemark)
+            wx.ready(function () {
+              wx.getLocation({
+                type: 'gcj02',
+                success: function (res) {
+                  var location = new TMap.LatLng(res.latitude, res.longitude);
+                  map.setCenter(location);
+                  markers.updateGeometries([
+                    {
+                      id: 'main', // 点标注数据数组
+                      position: location,
+                    },
+                  ]);
+                  geocoder.getAddress({ location: location }).then(
+                    function (result) {
+                      var addresses = result.result.formatted_addresses;
+                      addressesRemark = addresses.recommend;
+                    },
+                    function (err) {
+                      addressesRemark = '';
+                    }
+                  );
+                },
+                fail: function () {
+                  that.$dialog.alert({
+                    message: 'GPS未开启',
+                  });
+                },
+              });
+              wx.chooseImage({
+                count: 1,
+                sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
+                sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
+                defaultCameraMode: 'normal', //表示进入拍照界面的默认模式,目前有normal与batch两种选择,normal表示普通单拍模式,batch表示连拍模式,不传该参数则为normal模式。从3.0.26版本开始支持front和batch_front两种值,其中front表示默认为前置摄像头单拍模式,batch_front表示默认为前置摄像头连拍模式。(注:用户进入拍照界面仍然可自由切换两种模式)
+                isSaveToAlbum: 0,
+                success: function (res) {
+                  var localIds = '';
+                  if (res.localIds != undefined) {
+                    localIds = res.localIds[0];
+                  } else {
+                    localIds = res.localId;
                   }
-                });
-              }
+                  // andriod中localId可以作为img标签的src属性显示图片;
+                  // iOS应当使用 getLocalImgData 获取图片base64数据,从而用于img标签的显示(在img标签内使用 wx.chooseImage 的 localid 显示可能会不成功)
+                  wx.uploadImage({
+                    localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
+                    isShowProgressTips: 1, // 默认为1,显示进度提示
+                    success: function (res) {
+                      that.uploadImagev(res.serverId, addressesRemark);
+                    },
+                  });
+                },
+              });
             });
-          })
-        }
-      });
+          }
+        });
     },
-    uploadImagev(meidaId,addressesRemark){
+    uploadImagev(meidaId, addressesRemark) {
       var that = this;
-      var form={
-        mediaId:meidaId,
-        collectionItemId:that.collectionId,
-        objectType:that.objectType,
-        storeGroupId:that.storeGroupId,
-        taskId:"",
-        visitsId:localStorage.getItem('visitId'),
-        visitModel:that.visitModel,
-        visitSource:"2",
-        locationRemark:addressesRemark
-      }
+      var form = {
+        mediaIds: [meidaId],
+        collectionItemId: that.collectionId,
+        objectType: that.objectType,
+        storeGroupId: that.storeGroupId,
+        taskId: '',
+        visitsId: localStorage.getItem('visitId'),
+        visitModel: that.visitModel,
+        visitSource: '2',
+        locationRemark: addressesRemark,
+      };
       var loind1 = that.$toast.loading({
         duration: 0,
         message: '上传中...',
         forbidClick: true,
       });
-      addstorePhoto(form).then(res=>{
+      addstorePhoto(form).then((res) => {
         if (res.code == 200) {
           loind1.clear();
-          that.$toast("上传成功!")
-          that.$emit('newimgarr', {fileUrl: res.data.url, id: res.data.fileId, type: 2});
+          that.$toast('上传成功!');
+          that.$emit('newimgarr', { fileUrl: res.data[0].url, id: res.data[0].fileId, type: 2 });
         } else {
-          that.$toast("上传失败!")
+          that.$toast('上传失败!');
         }
-      })
-    }
+      });
+    },
   },
-}
+};
 </script>
 
 <style lang="scss" scoped>
@@ -201,9 +203,8 @@ export default {
       z-index: 89;
     }
   }
-
 }
-#allmap{
+#allmap {
   width: 10px;
   height: 10px;
   left: -1000px;

+ 30 - 26
src/views/deviceWithin/addStoreVisit.vue

@@ -4293,7 +4293,6 @@ export default {
       this.show = true;
     },
     newimgarr1(val) {
-      debugger;
       //  店招识别只允许上传一张
       let photoIdentifyType = val.photoIdentifyType;
       this.show = false;
@@ -4319,13 +4318,13 @@ export default {
           ].collectionOptionList[this.childIndex4].collectionItems[this.childIndex5].fileInfoList =
             val.fileInfoList;
         } else {
-          this.collectionItemList[this.indeximg].collectionOptionList[
-            this.childIndex1
-          ].collectionItems[this.childIndex].collectionOptionList[this.childIndex2].collectionItems[
-            this.childIndex3
-          ].collectionOptionList[this.childIndex4].collectionItems[
-            this.childIndex5
-          ].fileInfoList.push(val.fileInfoList);
+          let collectionItems =
+            this.collectionItemList[this.indeximg].collectionOptionList[this.childIndex1]
+              .collectionItems[this.childIndex].collectionOptionList[this.childIndex2]
+              .collectionItems[this.childIndex3].collectionOptionList[this.childIndex4]
+              .collectionItems[this.childIndex5];
+          let fileInfoList = fileInfoList.concat(val.fileInfoList);
+          this.$set(collectionItems, 'fileInfoList', fileInfoList);
         }
       }
       if (this.pType == 'E') {
@@ -4355,15 +4354,14 @@ export default {
           ].collectionOptionList[this.childIndex6].collectionItems[this.childIndex7].fileInfoList =
             val.fileInfoList;
         } else {
-          this.collectionItemList[this.indeximg].collectionOptionList[
-            this.childIndex1
-          ].collectionItems[this.childIndex].collectionOptionList[this.childIndex2].collectionItems[
-            this.childIndex3
-          ].collectionOptionList[this.childIndex4].collectionItems[
-            this.childIndex5
-          ].collectionOptionList[this.childIndex6].collectionItems[
-            this.childIndex7
-          ].fileInfoList.push(val.fileInfoList);
+          let collectionItems =
+            this.collectionItemList[this.indeximg].collectionOptionList[this.childIndex1]
+              .collectionItems[this.childIndex].collectionOptionList[this.childIndex2]
+              .collectionItems[this.childIndex3].collectionOptionList[this.childIndex4]
+              .collectionItems[this.childIndex5].collectionOptionList[this.childIndex6]
+              .collectionItems[this.childIndex7].fileInfoList;
+          let fileInfoList = collectionItems.fileInfoList.concat(val.fileInfoList);
+          this.$set(collectionItems, 'fileInfoList', fileInfoList);
         }
       }
       if (this.pType == 'A' || this.pType == 'B') {
@@ -4407,9 +4405,12 @@ export default {
                 this.childIndex
               ].fileInfoList = val.fileInfoList;
             } else {
-              this.collectionItemList[this.indeximg].collectionOptionList[childi].collectionItems[
-                this.childIndex
-              ].fileInfoList.push(val.fileInfoList);
+              let collectionItems =
+                this.collectionItemList[this.indeximg].collectionOptionList[childi].collectionItems[
+                  this.childIndex
+                ];
+              let fileInfoList = collectionItems.fileInfoList.concat(val.fileInfoList);
+              this.$set(collectionItems, 'fileInfoList', fileInfoList);
             }
           }
         } else {
@@ -4426,7 +4427,9 @@ export default {
                 JSON.stringify(this.collectionItemList[this.indeximg].fileInfoList)
             );
           } else {
-            this.collectionItemList[this.indeximg].fileInfoList.push(val.fileInfoList);
+            let collectionItems = this.collectionItemList[this.indeximg];
+            let fileInfoList = collectionItems.fileInfoList.concat(val.fileInfoList);
+            this.$set(collectionItems, 'fileInfoList', fileInfoList);
           }
         }
       }
@@ -4449,11 +4452,12 @@ export default {
             this.childIndex3
           ].fileInfoList = val.fileInfoList;
         } else {
-          this.collectionItemList[this.indeximg].collectionOptionList[
-            this.childIndex1
-          ].collectionItems[this.childIndex].collectionOptionList[this.childIndex2].collectionItems[
-            this.childIndex3
-          ].fileInfoList.push(val.fileInfoList);
+          let collectionItems =
+            this.collectionItemList[this.indeximg].collectionOptionList[this.childIndex1]
+              .collectionItems[this.childIndex].collectionOptionList[this.childIndex2]
+              .collectionItems[this.childIndex3];
+          let fileInfoList = collectionItems.fileInfoList.concat(val.fileInfoList);
+          this.$set(collectionItems, 'fileInfoList', fileInfoList);
         }
       }
       this.$forceUpdate();