浏览代码

实物图聊天记录增加滑动预览功能

Yannay 2 月之前
父节点
当前提交
0479f6efcc

+ 19 - 2
pages/orderDetailNew/components/pageOne.vue

@@ -16,7 +16,7 @@
16 16
             <view class="image-upload-container">
17 17
                 <view class="image-list">
18 18
                     <view class="image-item" v-for="(item, index) in trueUploadList" :key="'truePic-' + index">
19
-                        <pic-comp :src="item.fileUrl"></pic-comp>
19
+                        <pic-comp @needPreviewPic='previewImageTrue' :src="item.fileUrl"></pic-comp>
20 20
                         <view class="delete-btn" @click="deleteImage(item)">×</view>
21 21
                     </view>
22 22
                     <view class="upload-btn" @click="uploadImage('truePic', currentReceipt.id)">
@@ -33,7 +33,7 @@
33 33
                 <view class="image-list">
34 34
                     <view class="image-item" v-for="(item, index) in chatRecordsUploadList"
35 35
                         :key="'chatRecords-' + index">
36
-                        <pic-comp :src="item.fileUrl"></pic-comp>
36
+                        <pic-comp @needPreviewPic='previewImageChat' :src="item.fileUrl"></pic-comp>
37 37
                         <view class="delete-btn" @click="deleteImage(item)">×</view>
38 38
                     </view>
39 39
                     <view class="upload-btn" @click="uploadImage('chatRecords', currentReceipt.id)">
@@ -364,6 +364,23 @@ export default {
364 364
                 }
365 365
             })
366 366
         },
367
+        // 预览真实图片
368
+        previewImageTrue(src) {
369
+            const urlList = this.trueUploadList.map(item => item.fileUrl);
370
+
371
+            uni.previewImage({
372
+                urls: urlList,
373
+                current: src
374
+            })
375
+        },
376
+        previewImageChat(src) {
377
+            const urlList = this.chatRecordsUploadList.map(item => item.fileUrl);
378
+
379
+            uni.previewImage({
380
+                urls: urlList,
381
+                current: src
382
+            })
383
+        }
367 384
 
368 385
     },
369 386
 

+ 9 - 1
pages/orderDetailNew/components/pageThree.vue

@@ -50,7 +50,7 @@
50 50
                                 'can-drop': canDropIndex === index
51 51
                             }" @touchstart.stop="onTouchStart($event, index)" @touchmove.stop="onTouchMove($event)"
52 52
                             @touchend.stop="onTouchEnd" @touchcancel.stop="onTouchEnd">
53
-                            <pic-comp :src="item.fileUrl"></pic-comp>
53
+                            <pic-comp @needPreviewPic='previewImageDetail' :src="item.fileUrl"></pic-comp>
54 54
                             <view class="image-type-tag">{{ getImageType(index) }}</view>
55 55
                             <view class="detail-delete-btn" @click.stop="handleYinCang(item, index)">×</view>
56 56
                         </view>
@@ -462,6 +462,14 @@ export default {
462 462
                 this.detailImages.splice(itemIndex, 1);
463 463
                 uni.$u.toast('图片已隐藏');
464 464
             }
465
+        },
466
+        previewImageDetail(src) {
467
+            const urlList = this.detailImages.map(item => item.fileUrl);
468
+
469
+            uni.previewImage({
470
+                urls: urlList,
471
+                current: src
472
+            })
465 473
         }
466 474
     }
467 475
 }

+ 11 - 2
pages/orderDetailNew/components/pageTwo.vue

@@ -111,7 +111,7 @@
111 111
                 <div class="detail-image-upload-container">
112 112
                     <view class="detail-image-list">
113 113
                         <view class="detail-image-item" v-for="(item, index) in detailImages" :key="'detail-' + index">
114
-                            <pic-comp :src="item.fileUrl"></pic-comp>
114
+                            <pic-comp @needPreviewPic='previewImageDetail' :src="item.fileUrl"></pic-comp>
115 115
                             <view class="detail-delete-btn" @click="deleteImage(item)">×</view>
116 116
                         </view>
117 117
                         <view class="detail-upload-btn" @click="uploadImage('detailImages', currentReceipt.id)">
@@ -276,7 +276,7 @@ export default {
276 276
                         console.error(`保存图片失败: ${url}`, error);
277 277
                         failedImages.push(url);
278 278
                     }
279
-                    
279
+
280 280
                     // 更新进度
281 281
                     uni.showLoading({
282 282
                         title: `正在保存图片... (${i + 1}/${imageUrls.length})`,
@@ -517,6 +517,15 @@ export default {
517 517
             })
518 518
         },
519 519
 
520
+        previewImageDetail(src) {
521
+            const urlList = this.detailImages.map(item => item.fileUrl);
522
+
523
+            uni.previewImage({
524
+                urls: urlList,
525
+                current: src
526
+            })
527
+        }
528
+
520 529
 
521 530
 
522 531
 

+ 1 - 4
pages/orderDetailNew/components/picComp.vue

@@ -13,10 +13,7 @@ export default {
13 13
     },
14 14
     methods: {
15 15
         click() {
16
-            uni.previewImage({
17
-                urls: [this.src],
18
-                current: this.src
19
-            })
16
+            this.$emit('needPreviewPic', this.src)
20 17
         }
21 18
     }
22 19
 }