vue-qriously 生成二维码并下载、cliploard复制粘贴
xxx.vue
<template>
<a-modal
class="dialogRecharge"
title="活动链接及二维码"
v-model="visible"
width="520px"
:destroyOnClose="true"
:footer="null"
@cancel="$emit('close')"
>
<a-tabs type="card" v-model="tabKey" @change="getUrl">
<a-tab-pane tab="H5页面" key=""></a-tab-pane>
<a-tab-pane tab="微信小程序" key=""></a-tab-pane>
<a-tab-pane tab="抽奖大屏" key=""></a-tab-pane>
</a-tabs> <div class="codeBox">
<div class="img">
<qriously :id="'mycanvas' + tabKey" :value="dataObj.url" :size="" />
</div>
<a-button class="download" @click="downqriousl('mycanvas' + tabKey)">下载二维码</a-button>
<div class="copyLink">
<a-input-search v-model="dataObj.url" placeholder="51hejia.com....">
<a-button slot="enterButton">复制链接</a-button>
</a-input-search>
<div class="btn" @click="Clip($event, dataObj.url)"></div>
</div>
</div> </a-modal>
</template> <script>
import serviceMarketing from "@/service/marketing.js";
import Clipboard from 'clipboard';
export default {
data() {
return {
// visible: true,
visible: false,
itemData: {},
tabKey: '',
dataObj: {
url: ''
},
};
},
created() {
},
methods: {
Clip (event, text) {
let self = this
const clipboard = new Clipboard(event.target, {
text: () => text
});
clipboard.on('success', () => {
self.$message.success('复制成功')
clipboard.off('error');
clipboard.off('success');
clipboard.destroy();
});
clipboard.on('error', () => {
self.$message.error('复制失败,请刷新试试')
clipboard.off('error')
clipboard.off('success')
clipboard.destroy()
});
clipboard.onClick(event);
},
downqriousl(id){
console.log(id)
const type = 'png'
let canvas = document.getElementById(id).querySelector('canvas');
let imgdata=canvas.toDataURL(type);
//将mime-type改为image/octet-stream,强制让浏览器下载
let fixtype=function(type){
type=type.toLocaleLowerCase().replace(/jpg/i,'jpeg');
let r=type.match(/png|jpeg|bmp|gif/)[];
return 'image/'+r;
};
imgdata=imgdata.replace(fixtype(type),'image/octet-stream');
//将图片保存到本地
let savaFile=function(data,filename)
{
let save_link=document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href=data;
save_link.download=filename;
let event=document.createEvent('MouseEvents');
event.initMouseEvent('click',true,false,window,,,,,,false,false,false,false,,null);
save_link.dispatchEvent(event);
};
let filename=''+new Date().getSeconds()+'.'+type;
//用当前秒是解决重名的问题 不行就换成毫秒
savaFile(imgdata,filename);
},
getUrl () {
let self = this
self.$get(serviceMarketing.lotteryUrl.apiUrl, {
id: this.itemData.id,
type: this.tabKey
},(res => {
if(res.statusCode && res.statusCode == ""){
this.dataObj = res.data
} else {
self.$message.error(res.reason,);
}
}),serviceMarketing.lotteryUrl.domain);
},
modalOpen(itemData) {
console.log(itemData)
this.visible = true;
this.itemData = itemData
this.getUrl()
}
}
};
</script> <style lang="less" scoped>
.codeBox {
text-align: center;
.img{
width: 180px;
height: 180px;
margin: 35px auto 15px;
// border:1px solid red;
background: #f4f4f4;
border-radius: 5px;
canvas {
width: %;
height: %;
}
}
.download {
width: 180px;
margin-bottom: 10px;
}
.copyLink {
margin:35px 20px 15px;
position: relative;
.btn{
width: 90px;
position: absolute;
top: ;
right: ;
bottom: ;
z-index: ;
cursor: pointer;
}
}
}
</style>
https://www.cnblogs.com/ruthless/p/9970133.html
https://segmentfault.com/a/1190000014875645
.
vue-qriously 生成二维码并下载、cliploard复制粘贴的更多相关文章
- vue 中生成二维码之爬坑之路
最近在做vue中项目,有个需求是在你提交信息后把后台返给你的链接生成二维码. 一共使用了两种生成二维码的方法 1.vue-qr 这个是在一进入页面直接生成二维码,具体介绍见文档:https://www ...
- Springboot生成二维码并下载图片png支持打包成zip
pom.xml <!--二维码--> <dependency> <groupId>com.google.zxing</groupId> <arti ...
- 详细QRCode生成二维码和下载实现案例
using System; using System.Collections.Generic; using System.Linq; using System.Web; using ThoughtWo ...
- Vue——前端生成二维码
与后端生成二维码相比,前端生成二维码更具有灵活性,下面就介绍两种前端生成二维码的方式,两种方式相比之下,vue-qr比qrcode多了一个再中间添加logo的功能. 方式一:qrcode npm np ...
- vue中生成二维码
<template> <div id="qrcode" ></div> </template> <script> imp ...
- iOS开发——高级技术&生成二维码
生成二维码 因为项目里需要新增个功能,该功能用到了二维码技术.于是我便查阅了资料,先学习了二维码的生成. 我们使用libqrencode库来生成二维码.下载地址http://download.cs ...
- 链接生成二维码-PHP
原文:http://www.upwqy.com/details/20.html 链接生成二维码 首先下载phpqrcode phpqrcode.zip 我这里使用的是TP5,把下载好的类库 放入到ex ...
- phporjquery生成二维码
一.php生成二维码 下载文章末尾链接中phpcode文件 include "./phpqrcode/qrlib.php"; //QRcode::png('http://www.b ...
- vue2.0生成二维码图片并且下载图片到本地兼容写法
vue生成二维码图片,这里使用的是qrcode.js 这个插件(亲测写法,兼容没有问题) 第一步,下载插件 需要注意,这里下载的是qrcodejs2 cnpm install --save qrcod ...
随机推荐
- Trunk 实现跨交换机 VLAN 通信
当网络中有多台交换机时,位于不同交换机上的相同VLAN的主机之间时如何通信的呢?我们使用Trunk实现跨交换机VLAN通信.还有以太网通道的操作哦. 实验拓扑 两台交换机直连,每台下面再连接两台VPC ...
- IT黑马-面向对象
先说面向过程 面向过程主要考虑的是怎么做 把完成摸个需求的 所有步骤 从头到尾 逐步实现 根据开发需求,将某些功能独立的代码封装成一个又一个的函数 最后完成的代码就是顺序的调用不同的函数. 特点是: ...
- vsftp网络服务
1. vsftp概述 FTP是File Transfer Protocol(文本传输协议)的简称,用于Internet上的文件的双向传输.使用FTP传输时,具有一定程度的危险性,因为数据在因特网上面是 ...
- MySQL/MariaDB数据库的复制加密
MySQL/MariaDB数据库的复制加密 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL的安全问题 1>.基于SSL复制 在默认的主从复制过程或远程连接 ...
- Spring Cloud Zuul网关(快速搭建)
zuul 是netflix开源的一个API Gateway 服务器, 本质上是一个web servlet应用. 在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架.相当于是设备和 Netflix ...
- 微信小程序-数组操作
Page({ data: { list:[{ id:, name:'芒果', count: },{ id:, name:'香蕉', count: }, }] } }) 向前插入数据 //要增加的数组 ...
- Spring Boot-初学01 -使用Spring Initializer快速创建Spring Boot项目 -@RestController+spEL -实现简单SpringBoot的Web页面
1.IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目: 选择我们需要的模块:向导会联网创建Spring ...
- WebKit应用程序开发的起因
公司的Web管理界面,用起来还可以,但是有一个问题一直无法解决. 在web页面上需要播放视频,由于比较这个功能比较老,不支持web模式播放,只支持CS模式,具体原因及不说了. 于是有了 winform ...
- sql null+字符=null
哦,谢谢你,我还想问一个declare @temp varchar(10),@identity varchar(10),@sura varchar(10),@p int,@len int,@nod1 ...
- 2-ESP8266 SDK开发基础入门篇--非RTOS版与RTOS版
https://www.cnblogs.com/yangfengwu/p/11071580.html 所有的源码 https://gitee.com/yang456/Learn8266SDKDevel ...