| 
					
				 | 
			
			
				@@ -9,15 +9,18 @@ import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   closeToast, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Icon, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Image, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ImagePreview, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   List, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Popup, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   showDialog, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  showFailToast, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   showImagePreview, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   showLoadingToast, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  showSuccessToast, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   showToast, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   Uploader 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } from 'vant' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { defineComponent, onMounted, reactive } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { computed, defineComponent, onMounted, reactive } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { useRoute } from 'vue-router' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from './photo-detail.module.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import iconDelete from '../images/icon-delete.png' 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -25,6 +28,9 @@ import umiRequest from 'umi-request' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { getOssUploadUrl } from '@/state' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import checkboxCheck from '../images/icon-checkbox-active.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import checkboxDefault from '@/common/images/icon-checkbox-default.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import iconDown from '../images/icon-down.png' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import html2canvas from 'html2canvas' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { promisefiyPostMessage } from '@/helpers/native-message' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   name: 'photo-detail', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -209,17 +215,71 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 预览图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const onShowImage = (index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const files = state.list.map((file: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const viewImage = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      show: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      startPosition: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      downIndex: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      downLoading: false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 图片列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const images = computed(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return state.list.map((file: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return file.fileUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const saveImg = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (viewImage.downLoading) return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const container: HTMLElement = document.querySelector( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        `img[src='${images.value[viewImage.downIndex]}']` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      )! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (container) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const t = showLoadingToast({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          message: '保存中', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          duration: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        viewImage.downLoading = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        html2canvas(container, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          allowTaint: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          useCORS: true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          backgroundColor: null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          .then(async (canvas) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const url = canvas.toDataURL('image/png') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const res = await promisefiyPostMessage({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              api: 'savePicture', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              content: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                base64: url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (res?.content?.status === 'success') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              showSuccessToast('保存成功') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              showFailToast('保存失败') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          .catch(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            showFailToast('保存失败') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            t.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          .finally(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            viewImage.downLoading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 预览图片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const onShowImage = (index: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      viewImage.downIndex = viewImage.startPosition = index 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      viewImage.show = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // const files = state.list.map((file: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   return file.fileUrl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      showImagePreview({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        images: files, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        startPosition: index, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        closeable: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // showImagePreview({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   images: files, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   startPosition: index, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   closeable: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 选择照片 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -399,6 +459,21 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </Popup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <ImagePreview 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:show={viewImage.show} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          startPosition={viewImage.startPosition} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          images={images.value} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          onChange={(index: number) => (viewImage.downIndex = index)} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          {{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            cover: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <div class={styles.downBtn} onClick={() => saveImg()}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <img src={iconDown} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </ImagePreview> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |