| 
						 | 
						- <template>
 -   <view class="share-page">
 -     <!-- <uv-status-bar></uv-status-bar> -->
 -     
 -     <!-- 主要内容区域 -->
 -     <view class="content">
 -       <uv-loading-icon text="生成中,请耐心等待" textSize="40rpx" size="60rpx" v-if="isLoading"></uv-loading-icon>
 -       <!-- 中间图片 -->
 -       <view class="image-container" v-else>
 -         <image 
 -           class="share-image" 
 -           :src="Qrcode" 
 -           mode="aspectFit"
 -         ></image>
 -       </view>
 -     </view>
 -     
 -     <!-- 底部固定按钮 -->
 -     <view class="bottom-button-container">
 -       <uv-button :custom-style="{
 -         height: '82rpx',
 -         borderRadius: '198rpx',
 -         background: '#06DADC',
 -         border: '2rpx solid #06DADC',
 -         lineHeight: '82rpx',
 -         fontSize: '36rpx'
 -         }" type="primary" @click="save">保存到相册</uv-button>
 -       <uv-safe-bottom></uv-safe-bottom>
 -     </view>
 -   </view>
 - </template>
 - 
 - <script>
 - export default {
 -   data() {
 -     return {
 -       Qrcode: '',
 -       isLoading: false,
 -     }
 -   },
 -   methods: {
 -     handleShare() {
 -       // 分享逻辑
 -       uni.showToast({
 -         title: '分享功能',
 -         icon: 'none'
 -       })
 -     },
 -     async save() {
 -       try {
 -         // 检查相册权限
 -         const authResult = await this.checkPhotoAlbumAuth();
 -         
 -         if (authResult.authSetting['scope.writePhotosAlbum'] === true) {
 -           // 已有权限,直接保存
 -           this.saveToAlbum();
 -         } else if (authResult.authSetting['scope.writePhotosAlbum'] === false) {
 -           // 权限被拒绝,引导用户到设置页面
 -           this.showAuthGuide();
 -         } else {
 -           // 未授权,请求权限
 -           this.requestPhotoAlbumAuth();
 -         }
 -       } catch (error) {
 -         console.error('权限检查失败:', error);
 -         // 如果权限检查失败,直接尝试保存(兼容处理)
 -         this.saveToAlbum();
 -       }
 -     },
 -     
 -     // 检查相册权限
 -     checkPhotoAlbumAuth() {
 -       return new Promise((resolve, reject) => {
 -         uni.getSetting({
 -           success: (res) => {
 -             resolve(res);
 -           },
 -           fail: (err) => {
 -             reject(err);
 -           }
 -         });
 -       });
 -     },
 -     
 -     // 请求相册权限
 -     requestPhotoAlbumAuth() {
 -       uni.authorize({
 -         scope: 'scope.writePhotosAlbum',
 -         success: () => {
 -           // 权限请求成功,保存图片
 -           this.saveToAlbum();
 -         },
 -         fail: () => {
 -           // 权限请求被拒绝,引导用户到设置页面
 -           this.showAuthGuide();
 -         }
 -       });
 -     },
 -     
 -     // 显示权限引导
 -     showAuthGuide() {
 -       uni.showModal({
 -         title: '需要相册权限',
 -         content: '保存图片需要访问您的相册权限,请在设置中开启相册权限后重试',
 -         confirmText: '去设置',
 -         cancelText: '取消',
 -         success: (res) => {
 -           if (res.confirm) {
 -             // 打开设置页面
 -             uni.openSetting({
 -               success: (settingRes) => {
 -                 if (settingRes.authSetting['scope.writePhotosAlbum']) {
 -                   // 用户在设置页面开启了权限,再次调用保存
 -                   this.saveToAlbum();
 -                 } else {
 -                   uni.showToast({
 -                     title: '未开启相册权限',
 -                     icon: 'none'
 -                   });
 -                 }
 -               }
 -             });
 -           }
 -         }
 -       });
 -     },
 -     
 -     // 保存图片到相册
 -     saveToAlbum() {
 -       if (!this.Qrcode) {
 -         uni.showToast({
 -           title: '图片还未加载完成',
 -           icon: 'none'
 -         });
 -         return;
 -       }
 -       
 -       uni.saveImageToPhotosAlbum({
 -         filePath: this.Qrcode,
 -         success: (res) => {
 -           uni.showToast({
 -             title: '保存成功',
 -             icon: 'success'
 -           });
 -         },
 -         fail: (err) => {
 -           console.error('保存失败:', err);
 -           if (err.errMsg.includes('auth')) {
 -             // 如果是权限问题,再次引导用户
 -             this.showAuthGuide();
 -           } else {
 -             uni.showToast({
 -               title: '保存失败,请重试',
 -               icon: 'none'
 -             });
 -           }
 -         }
 -       });
 -     },
 - 
 -     // 获取二维码
 -     async getQrcode() {
 -       this.isLoading = true
 -       uni.getImageInfo({
 -         src: `${this.$config.baseURL}/promotion/qrCode?token=${uni.getStorageSync('token')}`
 - 		// #ifdef H5
 - 		+ '&type=official'
 - 		// #endif
 -         ,
 -         success: (image) => {
 -           
 -           this.Qrcode = image.path;
 -           this.$store.commit('setQrcode', this.Qrcode)
 -           this.isLoading = false
 -         },
 -         fail: (err) => {
 -           console.error('获取二维码失败:', err);
 -           this.isLoading = false
 -         }
 -       });
 -     }
 -   },
 -   onLoad() {
 -     if (this.$store.state.Qrcode){
 -       this.Qrcode = this.$store.state.Qrcode
 -     }else {
 -       this.getQrcode()
 - 
 -     }
 -   }
 -   
 - }
 - </script>
 - 
 - <style lang="scss" scoped>
 - .share-page {
 -   min-height: 100vh;
 -   background-color: #f5f5f5;
 -   display: flex;
 -   flex-direction: column;
 - }
 - 
 - .content {
 -   height: 100vh;
 -   flex: 1;
 -   padding-bottom: 200rpx;
 -   display: flex;
 -   align-items: center;
 -   justify-content: center;
 -   
 -   .image-container {
 -     // background: red;
 -     display: flex;
 -     // height: 100%;
 -     justify-content: center;
 -     align-items: center;
 -     
 -     .share-image {
 -       height: 90vh;
 -       width: 670rpx;
 -       border-radius: 16rpx;
 -     }
 -   }
 - }
 - 
 - // 底部固定按钮
 - .bottom-button-container {
 -   position: fixed;
 -   bottom: 0;
 -   left: 0;
 -   right: 0;
 -   padding: 30rpx 40rpx;
 -   background: rgba(255, 255, 255, 0.95);
 -   border-top: 1px solid #F1F1F1;
 - }
 - </style>
 
 
  |