153 lines
3.3 KiB
Vue
153 lines
3.3 KiB
Vue
<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 style="display:flex;justify-content:center;flex-direction:column;align-items:center;">
|
|
<image src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/82347202403181619505958.png"
|
|
style="width:350rpx;height:118rpx;" mode="widthFix" />
|
|
<text class="shop_name">店铺:{{userInfo.mer_info.mer_name || '-'}}</text>
|
|
</view>
|
|
|
|
<view class="v-qrcode">
|
|
<u-image width="490rpx" height="490rpx" :showLoading="true" :src="img" class="v-qrcode-img"></u-image>
|
|
</view>
|
|
|
|
<view class="v-btn" @click="handleSavePic">
|
|
<text>保存二维码</text>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
qrcode
|
|
} from "@/api/payment.js";
|
|
export default {
|
|
data() {
|
|
return {
|
|
img: '',
|
|
userInfo: {}
|
|
}
|
|
},
|
|
onLoad(opt) {
|
|
console.log(123);
|
|
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
|
|
}).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>
|
|
<style lang="scss" scoped>
|
|
page {
|
|
background-color: #40AE36;
|
|
}
|
|
|
|
.container {
|
|
position: relative;
|
|
height: 100vh;
|
|
background-size: 100% auto;
|
|
background-repeat: no-repeat;
|
|
padding-top: var(--status-bar-height);
|
|
|
|
.v-navbar {
|
|
margin-bottom: 54rpx;
|
|
}
|
|
|
|
.v-qrcode {
|
|
position: absolute;
|
|
top: 400rpx;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
width: 650rpx;
|
|
height: 650rpx;
|
|
background-color: #fff;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.shop_name {
|
|
margin-top: 30rpx;
|
|
font-size: 30rpx;
|
|
color: #FFFFFF;
|
|
}
|
|
|
|
.v-btn {
|
|
position: absolute;
|
|
top: 1080rpx;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 690rpx;
|
|
height: 100rpx;
|
|
margin: 0 auto;
|
|
|
|
text {
|
|
font-weight: 400;
|
|
font-size: 32rpx;
|
|
color: #fff;
|
|
}
|
|
}
|
|
}
|
|
</style> |