Commit df3d9c04599d3238a71838303623984e39b9228e

Authored by zhiyangdu
1 parent 66c5a80e

长按页面保存证书到相册

Showing 1 changed file with 40 additions and 17 deletions
src/pages/test.vue
1   -// cdn图片有问题 需要换成本地的图片
2 1 <template>
3 2 <div class="index">
4   - <div class="canvas" ref="canvas">
5   - <div class="avatar">
6   - <img :src="imgUrl" alt="">
7   - </div>
8   - <div>
9   - {{textInfo}}
10   - </div>
  3 + <div id="captureId" class="capture" v-show="firstFlag">
  4 + <div class="back"></div>
  5 + <h2>{{this.textInfo}}</h2>
11 6 </div>
12   - <div class="save_btn" @click="savecanvas">
13   - 保存图片
  7 + <img :src="dataURL" alt="" v-show="!firstFlag">
  8 + <div v-show="this.isCNLive.value" class="save_btn" @click="savecanvas">
  9 + 点击按钮保存图片
  10 + </div>
  11 + <div v-show="!this.isCNLive.value" class="tip_text" >
  12 + 长按页面保存证书到手机相册
14 13 </div>
15 14 </div>
16 15 </template>
... ... @@ -19,11 +18,19 @@
19 18 export default {
20 19 data () {
21 20 return {
  21 + dataURL:'',
  22 + firstFlag:true,
22 23 imgUrl:"https://wjjtest.ys2.cnliveimg.com/shop/img/2019/12/31/5e0b06db22be5.jpg",
23   - textInfo:'哈哈哈'
  24 + textInfo:'杜致阳签名'
24 25 };
25 26 },
  27 +
26 28 mounted(){
  29 + html2canvas(document.querySelector('#captureId')).then(canvas => {
  30 + let imgUrl = canvas.toDataURL('image/png');
  31 + this.dataURL = imgUrl;
  32 + this.firstFlag = false;
  33 + })
27 34 },
28 35 methods: {
29 36 // 直接获取图片url传给原生
... ... @@ -50,15 +57,11 @@
50 57 let r = type.match(/png|jpeg|bmp|gif/)[0];
51 58 return 'image/' + r;
52 59 };
53   - imgData = imgData.replace(_fixType(type),'');
  60 +// imgData = imgData.replace(_fixType(type),'');
54 61 let filename = "证书" + '.' + type;
55 62 if(that.isCNLive.value){
56 63 that.getimgUrl(imgData)
57 64 }else {
58   - // 判断在ios内
59   -// if(that.isiPhone.value){
60   -// imgData = imgData.replace("data:;base64,","");
61   -// }
62 65 that.saveFile(imgData,filename);
63 66 }
64 67  
... ... @@ -81,9 +84,9 @@
81 84 .index{
82 85 height: 100%;
83 86 width: 100%;
  87 + position: relative;
84 88 .canvas{
85 89 height: 100%;
86   - height: 100%;
87 90 background: #d5574a;
88 91 padding: 0.5067rem 0.6rem 0;
89 92 box-sizing: border-box;
... ... @@ -99,5 +102,25 @@
99 102 color: #ffffff;
100 103 font-size: 36px;
101 104 }
  105 + img{
  106 + width: 100%;
  107 + }
  108 + h2{
  109 + position: absolute;
  110 + top:20px;
  111 + right: 50px;
  112 + }
  113 + .back{
  114 + height: 860px;
  115 + background: url("../../static/img/index/1.jpg") no-repeat center top;
  116 + background-size: 100%;
  117 + }
  118 + .tip_text{
  119 + height: 100px;
  120 + line-height: 100px;
  121 + text-align: center;
  122 + color: #000;
  123 + font-size: 36px;
  124 + }
102 125 }
103 126 </style>
... ...