Ver código fonte

静态页面

1002884655 4 anos atrás
pai
commit
d2738b984a

+ 21
- 0
package-lock.json Ver arquivo

@@ -2107,6 +2107,11 @@
2107 2107
         }
2108 2108
       }
2109 2109
     },
2110
+    "base64-arraybuffer": {
2111
+      "version": "0.2.0",
2112
+      "resolved": "https://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.2.0.tgz",
2113
+      "integrity": "sha1-S5RPrAGRqlkHr+LYyZnMxXzoD0U="
2114
+    },
2110 2115
     "base64-js": {
2111 2116
       "version": "1.3.0",
2112 2117
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
@@ -3430,6 +3435,14 @@
3430 3435
       "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
3431 3436
       "dev": true
3432 3437
     },
3438
+    "css-line-break": {
3439
+      "version": "1.1.1",
3440
+      "resolved": "https://registry.npm.taobao.org/css-line-break/download/css-line-break-1.1.1.tgz",
3441
+      "integrity": "sha1-1em90peEAJnrBQPHMQ/TSSegJu8=",
3442
+      "requires": {
3443
+        "base64-arraybuffer": "^0.2.0"
3444
+      }
3445
+    },
3433 3446
     "css-loader": {
3434 3447
       "version": "0.28.11",
3435 3448
       "resolved": "http://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
@@ -6633,6 +6646,14 @@
6633 6646
         }
6634 6647
       }
6635 6648
     },
6649
+    "html2canvas": {
6650
+      "version": "1.0.0-rc.7",
6651
+      "resolved": "https://registry.npm.taobao.org/html2canvas/download/html2canvas-1.0.0-rc.7.tgz?cache=0&sync_timestamp=1597041911563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml2canvas%2Fdownload%2Fhtml2canvas-1.0.0-rc.7.tgz",
6652
+      "integrity": "sha1-cMFZzg5jlUqRFpUxiU0IrVYnrJg=",
6653
+      "requires": {
6654
+        "css-line-break": "1.1.1"
6655
+      }
6656
+    },
6636 6657
     "htmlparser2": {
6637 6658
       "version": "3.3.0",
6638 6659
       "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",

+ 1
- 0
package.json Ver arquivo

@@ -21,6 +21,7 @@
21 21
     "exports-loader": "^0.7.0",
22 22
     "fundebug-javascript": "^2.4.2",
23 23
     "fundebug-vue": "0.0.1",
24
+    "html2canvas": "^1.0.0-rc.7",
24 25
     "js-md5": "^0.7.3",
25 26
     "mint-ui": "^2.2.13",
26 27
     "qrcode": "^1.4.4",

+ 37
- 4
src/pages/WoDe/XiaZaiErWeiMa/index.vue Ver arquivo

@@ -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
       })

+ 20
- 1
src/pages/WoDe/XiaZaiErWeiMa/page.scss Ver arquivo

@@ -7,6 +7,25 @@
7 7
     width: 100%;
8 8
     height: 100%;
9 9
     position: relative;
10
+    > #Base64Canvas {
11
+      width: 100%;
12
+      height: 100%;
13
+      position: absolute;
14
+      left: -200%;
15
+    }
16
+    > .TargetImg {
17
+      width: 100%;
18
+      display: block;
19
+      position: absolute;
20
+      left: -200%;
21
+    }
22
+    > .CanvasImg {
23
+      position: absolute;
24
+      z-index: 300;
25
+      width: 50%;
26
+      opacity: 0;
27
+      left: -500%;
28
+    }
10 29
     > div {
11 30
       z-index: 2;
12 31
       width: 70%;
@@ -26,7 +45,7 @@
26 45
         &:nth-child(2) {
27 46
           font-size: 0.2rem;
28 47
           font-weight: bold;
29
-          color: #ff5100;
48
+          color: #d91d36;
30 49
         }
31 50
         &:nth-child(3) {
32 51
           font-size: 0.12rem;