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 ...
随机推荐
- 利用ansible书写playbook搭建HAProxy+Keepalived+PXC负载均衡和高可用的PXC环境续
ansible.playbook.haproxy.keepalived.PXC haproxy+keepalived双主模式调度pxc集群 HAProxy介绍 反向代理服务器,支持双机热备支持虚拟主机 ...
- mysql考生号后三位对出密号
select mihao,substring(t1.kaohao, -3) from t_zhaosheng_zhiyuan as t1 where substring(t1.kaohao, -3) ...
- Python爬虫入门——使用requests爬取python岗位招聘数据
爬虫目的 使用requests库和BeautifulSoup4库来爬取拉勾网Python相关岗位数据 爬虫工具 使用Requests库发送http请求,然后用BeautifulSoup库解析HTML文 ...
- centos7部署postgresql集群高可用 patroni + etcd 之patroni篇
实验环境:centos7.4纯净版 postgres版本: 9.6.15 etcd版本:3.3.11 patroni版本:1.6.0 patroni介绍可参考:https://github.com/z ...
- 关于AndroidStudio项目app在手机上运行遇到登录网络问题的解决
又得提到我熟悉的12月份末尾,依旧想着把自己遇到的问题给大家看看,顺便分享我的解决办法. 看过我第一个发的随笔就知道,我遇到过给项目app打包成apk的问题啊,虽然解决了,但是运行到手机上 就又出现了 ...
- oracle 按每天,每周,每月,每季度,每年查询统计数据
oracle 按每天,每周,每月,每季度,每年查询统计数据 //按天统计 select count(dataid) as 每天操作数量, sum() from tablename group by t ...
- 【洛谷P5158】 【模板】多项式快速插值
卡常严重,可有采用如下优化方案: 1.预处理单位根 2.少取几次模 3.复制数组时用 memcpy 4.进行多项式乘法项数少的时候直接暴力乘 5.进行多项式多点求值时如果项数小于500的话直接秦九昭展 ...
- CTF入门(一)
ctf入门指南 如何入门?如何组队? capture the flag 夺旗比赛 类型: Web密码学pwn 程序的逻辑分析,漏洞利用windows.linux.小型机等misc 杂项,隐写,数据还原 ...
- requestLayout() improperly called by xxxxxxxxxxxxxxxxxxx ScrollViewContainer 问题
当scrollview内的内容更改大小时,Scrollview不会自行调整大小.效果是,当内容变小时,内容将留在原来的位置,当内容变大时,无法看到.仅当ScrollView位于作为MasterDeta ...
- 1-开发共享版APP(源码介绍)-BUG修复
这一系列文章将介绍APP的源码,这一节作为所有BUG问题修复! https://www.cnblogs.com/yangfengwu/category/1512162.html //开发共享版A ...