zhang пре 1 година
родитељ
комит
736f4b7c6e
1 измењених фајлова са 19 додато и 3 уклоњено
  1. 19 3
      pages/recharge/recharge.vue

+ 19 - 3
pages/recharge/recharge.vue

@@ -29,7 +29,7 @@
 			</view>
 			
 			<view class="last">
-				<view class="le" >
+				<view class="le" @click="savePic">
 					<view class="lef">保存相冊</view>
 				</view>
 				<view class="le" style="margin-left: 30rpx;">
@@ -69,8 +69,6 @@
 			qr.canvasContext = canvasContext;
 			// 调用绘制方法将二维码图案绘制到canvas上
 			qr.drawCanvas();
-			// 我之前写的保存的是地址 没让保存图片 他要保存图片的话 浏览器应该会给出长安保存选项  或者他自己截图 不用管这个了
-			// 我这个收款地址,二维码怎么改变
 		},
 		methods: {
 			// 复制地址
@@ -83,6 +81,24 @@
 					},
 				});
 			},
+			savePic(Url){
+					Url = this.address //图片路径,也可以传值进来
+					var triggerEvent = "touchstart"; //指定下载方式
+				    var blob=new Blob([''], {type:'application/octet-stream'}); //二进制大型对象blob
+				    var url = URL.createObjectURL(blob); //创建一个字符串路径空位
+				    var a = document.createElement('a'); //创建一个 a 标签
+				    a.href = Url;  //把路径赋到a标签的href上
+				    //正则表达式,这里是把图片文件名分离出来。拿到文件名赋到a.download,作为文件名来使用文本
+				    a.download = Url.replace(/(.*\/)*([^.]+.*)/ig,"$2").split("?")[0]; 
+				    /* var e = document.createEvent('MouseEvents');  //创建事件(MouseEvents鼠标事件)
+				    e.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); //初始化鼠标事件(initMouseEvent已弃用)*/
+				    
+					var e = new MouseEvent('click', ( true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null));  
+					//派遣后,它将不再执行任何操作。执行保存到本地
+				    a.dispatchEvent(e); 
+				    //释放一个已经存在的路径(有创建createObjectURL就要释放revokeObjectURL)
+				    URL.revokeObjectURL(url);  
+				},
 		},
 	};
 </script>