|
@@ -1,8 +1,8 @@
|
1
|
1
|
<template>
|
2
|
2
|
<div class="Page">
|
3
|
|
- <MainPageContainer @UserInfoChange="Init" :ShowMainHeader="true" :ShowMainHeaderBack="true" MainHeaderTitle="邀请注册">
|
4
|
|
- <div class="PageContainer">
|
5
|
|
- <img src="../../../assets/img/yaoqing.jpg" width="100%" alt="">
|
|
3
|
+ <MainPageContainer @UserInfoChange="Init" :ShowMainHeader="true" :ShowMainHeaderBack="true" MainHeaderTitle="邀请注册" :ShowMainHeaderRight="true" MainHeaderRightText="保存截图" :MainHeaderRightClick="SaveImg">
|
|
4
|
+ <div ref="PageContainer" class="PageContainer">
|
|
5
|
+ <img v-if="Base64Img !== null" :src="Base64Img" width="100%" alt="">
|
6
|
6
|
<div class="centerLabel">
|
7
|
7
|
<span>您的邀请码为</span>
|
8
|
8
|
<span v-if="UserInfo !== null">{{UserInfo.inviteCode}}</span>
|
|
@@ -13,12 +13,15 @@
|
13
|
13
|
</div>
|
14
|
14
|
</div>
|
15
|
15
|
</div>
|
|
16
|
+ <img v-if="CanvasImg !== null" :src="CanvasImg" class="CanvasImg" alt="">
|
|
17
|
+ <a v-if="CanvasImg !== null" ref="CanvasImgDownload" :href="CanvasImg" download="xiaoniu.jpeg"></a>
|
16
|
18
|
</div>
|
17
|
19
|
</MainPageContainer>
|
18
|
20
|
</div>
|
19
|
21
|
</template>
|
20
|
22
|
|
21
|
23
|
<script>
|
|
24
|
+import html2canvas from 'html2canvas'
|
22
|
25
|
import QRCode from 'qrcode'
|
23
|
26
|
import MainPageContainer from '../../../components/common/MainPageContainer'
|
24
|
27
|
import { createNamespacedHelpers } from 'vuex'
|
|
@@ -27,7 +30,9 @@ export default {
|
27
|
30
|
name: '',
|
28
|
31
|
data () {
|
29
|
32
|
return {
|
30
|
|
- QrCodeUrl: null
|
|
33
|
+ QrCodeUrl: null,
|
|
34
|
+ CanvasImg: null,
|
|
35
|
+ Base64Img: null
|
31
|
36
|
}
|
32
|
37
|
},
|
33
|
38
|
computed: {
|
|
@@ -39,15 +44,43 @@ export default {
|
39
|
44
|
MainPageContainer
|
40
|
45
|
},
|
41
|
46
|
created () {
|
|
47
|
+ let TargetImg = new Image()
|
|
48
|
+ TargetImg.src = require('../../../assets/img/yaoqing.jpg')
|
|
49
|
+ TargetImg.onload = () => {
|
|
50
|
+ this.Base64Img = this.GetBase64Image(TargetImg)
|
|
51
|
+ }
|
42
|
52
|
},
|
43
|
53
|
mounted () {
|
44
|
54
|
this.$nextTick(() => {
|
45
|
55
|
})
|
46
|
56
|
},
|
47
|
57
|
methods: {
|
|
58
|
+ GetBase64Image (img) {
|
|
59
|
+ let canvas = document.createElement('canvas')
|
|
60
|
+ canvas.width = img.width
|
|
61
|
+ canvas.height = img.height
|
|
62
|
+ let ctx = canvas.getContext('2d')
|
|
63
|
+ ctx.drawImage(img, 0, 0, img.width, img.height)
|
|
64
|
+ let ext = img.src.substring(img.src.lastIndexOf('.') + 1).toLowerCase()
|
|
65
|
+ let dataURL = canvas.toDataURL('image/' + ext)
|
|
66
|
+ canvas.remove()
|
|
67
|
+ return dataURL
|
|
68
|
+ },
|
|
69
|
+ SaveImg () {
|
|
70
|
+ if (this.$refs.CanvasImgDownload) {
|
|
71
|
+ this.$refs.CanvasImgDownload.click()
|
|
72
|
+ }
|
|
73
|
+ },
|
48
|
74
|
Init () {
|
49
|
75
|
QRCode.toDataURL(`https://niucai.co/#/Register?code=${this.UserInfo.inviteCode}`).then((res) => {
|
50
|
76
|
this.QrCodeUrl = res
|
|
77
|
+ let _that = this
|
|
78
|
+ window.setTimeout(() => {
|
|
79
|
+ html2canvas(this.$refs.PageContainer).then(function (canvas) {
|
|
80
|
+ document.body.appendChild(canvas)
|
|
81
|
+ _that.CanvasImg = canvas.toDataURL('image/jpeg', 1.0)
|
|
82
|
+ })
|
|
83
|
+ }, 1000)
|
51
|
84
|
}).catch((res) => {
|
52
|
85
|
console.log(res)
|
53
|
86
|
})
|