<style lang="scss" scoped> page { background-color: #FCE9B2; } .container { position: relative; height: 100vh; background-image: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/def/9cf05202402291000026355.webp"); background-size: 100% auto; background-repeat: no-repeat; padding-top: var(--status-bar-height); .v-navbar { margin-bottom: 54rpx; } .v-desc { position: absolute; top: 230rpx; left: 40rpx; .v-desc-main { margin-bottom: 30rpx; font-weight: 600; font-size: 42rpx; color: #FFFFFF; } .v-desc-sub { font-weight: 500; font-size: 24rpx; color: #FFFFFF; } } .v-qrcode { position: absolute; top: 475rpx; left: 50%; transform: translateX(-50%); } .v-btn { position: absolute; top: 1173rpx; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: center; width: 690rpx; height: 100rpx; background: #FFFFFF; box-shadow: 0rpx 3rpx 12rpx 1rpx rgba(255, 94, 12, 0.32); border-radius: 55rpx 55rpx 55rpx 55rpx; margin: 0 auto; image { width: 32rpx; height: 32rpx; margin-right: 6rpx; } text { font-weight: 600; font-size: 32rpx; color: #FF5E0C; line-height: 16rpx; text-align: center; font-style: normal; text-transform: none; margin-top: 2rpx; } } } </style> <template> <view class="container"> <view class="v-navbar"> <u-navbar title="提货付款" :autoBack="true" :fixed="false" bgColor="transparent" leftIconColor="#fff" :titleStyle="{color:'#fff',fontWeight:'bold',fontSize:'32rpx'}"> </u-navbar> </view> <!-- <view class="v-desc"> <view class="v-desc-main">扫描二维码</view> <view class="v-desc-sub">即可进入面对面付款</view> </view> --> <view class="v-qrcode"> <u-image width="540rpx" height="540rpx" :showLoading="true" :src="img" class="v-qrcode-img"></u-image> <view style="color: #FF5E0C;text-align: center;" v-if="userInfo.mer_info">{{userInfo.mer_info.mer_name}}</view> </view> <view class="v-btn" @click="handleSavePic"> <image src="../../static/images/download_yellow.webp" /> <text>保存二维码</text> </view> </view> </template> <script> import { qrcode } from "@/api/payment.js"; export default { data() { return { img: '', userInfo: {} } }, onLoad(opt) { let user = this.$store.state.app.userInfo; if(typeof user =='string') user = JSON.parse(user); this.userInfo = user; this.getQrcode(user.service.mer_id) }, methods: { // 获取二维码 getQrcode(merid) { qrcode({ mer_id: merid || 7 }).then(res => { this.img = res.data.url; }) }, handleSavePic() { // 获取要保存的图片路径或URL let imageUrl = this.img; // 这里使用了网络上的图片作为示例 // #ifdef H5 var a = document.createElement("a"); a.download = imageUrl; a.href = imageUrl; document.body.appendChild(a); a.click(); a.remove(); this.$util.Tips({ title: '二维码保存成功!' }) // #endif // #ifndef H5 let that = this; uni.downloadFile({ url: imageUrl, success(res) { if (res.statusCode === 200) { let tempFilePath = res.tempFilePath; // 临时文件路径 uni.saveImageToPhotosAlbum({ filePath: tempFilePath, success() { return that.$util.Tips({ title: '图片已保存至相册!' }); }, fail(err) { console.error('保存失败', err); } }); } else { console.error('下载失败', res.statusCode); } }, fail(err) { console.error('下载失败', err); } }); // #endif } } } </script>