1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
| <template>
| <view class="qrcode">
| <image :src="qrcode_url" mode="widthFix"></image>
| <view class="btns-wrap">
| <!-- #ifdef MP || APP-PLUS -->
| <button class="btn-red" type="default" @click="savePosterImg">保存图片</button>
| <!-- #endif -->
| <!-- #ifdef H5 -->
| <view class="f34 tc ww100" type="default">长按保存图片</view>
| <!-- #endif -->
| </view>
| </view>
| </template>
|
| <script>
| export default {
| data() {
| return {
| qrcode_url: ''
| }
| },
| mounted() {
| /*获取数据*/
| this.getData();
| },
| methods: {
|
| /*获取数据*/
| getData() {
| let self = this;
| uni.showLoading({
| title: '加载中',
| });
| let source = self.getPlatform();
| self._get('plus.agent.qrcode/poster', {
| source: source
| }, function(data) {
| uni.hideLoading();
| self.qrcode_url = data.data.qrcode;
| });
| },
|
| /*保存图片*/
| savePosterImg() {
| let self = this;
| uni.showLoading({
| title: '加载中'
| });
| // 下载海报图片
| uni.downloadFile({
| url: self.qrcode_url,
| success(res) {
| uni.hideLoading();
| // 图片保存到本地
| uni.saveImageToPhotosAlbum({
| filePath: res.tempFilePath,
| success(data) {
| uni.showToast({
| title: '保存成功',
| icon: 'success',
| duration: 2000
| });
| // 关闭商品海报
| self.isCreatedImg = false;
| },
| fail(err) {
| console.log(err.errMsg);
| if (err.errMsg === 'saveImageToPhotosAlbum:fail auth deny') {
| uni.showToast({
| title: '请允许访问相册后重试',
| icon: 'none',
| duration: 1000
| });
| setTimeout(() => {
| uni.openSetting();
| }, 1000);
| }
| },
| complete(res) {
| console.log('complete');
| }
| });
| }
| });
| }
| }
| }
| </script>
|
| <style>
| .qrcode{
|
| }
| .qrcode image {
| width: 100%;
| }
| .btns-wrap {
| position: fixed;
| height: 88rpx;
| right: 0;
| bottom: 0;
| left: 0;
| display: flex;
| z-index: 10;
| }
| .btns-wrap .btn-red{
| width: 100%;
| height: 88rpx;
| line-height: 88rpx;
| border-radius: 0;
| }
| </style>
|
|