生成二维码,点击下载图片
生成二维码
npm安装:npm install vue-qr --save
<template>
<el-table
:data="objList"
style="width: 100%;margin-top:10px;"
row-key="id"
border
>
<el-table-column align="center" label="操作" width="150">
<template slot-scope="scope">
<el-button type="text" @click="looker(scope.row)"
>查看二维码</el-button
>
</template>
</el-table-column>
</el-table>
<!-- 二维码 -->
<el-dialog title="提示" :visible.sync="looklook" width="30%">
<div>
<vue-qr class="er" :logoSrc="imageUrl" text="xxx"></vue-qr>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="looklook = false">取 消</el-button>
<el-button type="primary" @click="downs">下载</el-button>
</span>
</el-dialog>
</template>
<script>
import vueQr from 'vue-qr';
export default {
components: { vueQr },
data() {
return {
looklook: false,
imageUrl: null,
};
},
created() {
this.getList();
},
methods: {
// 查看二维码
looker(e) {
this.imageUrl = e.qrCode;
this.looklook = true;
},
// 下载二维码
downloadIamge(imgsrc, name) {
//下载图片地址和图片名
var image = new Image();
// 解决跨域 Canvas 污染问题
image.setAttribute('crossOrigin', 'anonymous');
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0, image.width, image.height);
var url = canvas.toDataURL('image/png'); //得到图片的base64编码数据
var a = document.createElement('a'); // 生成一个a元素
var event = new MouseEvent('click'); // 创建一个单击事件
a.download = name || 'photo'; // 设置图片名称
a.href = url; // 将生成的URL设置为a.href属性
a.dispatchEvent(event); // 触发a的单击事件
};
image.src = imgsrc;
},
downs() {
// var alink = document.createElement('a');
// alink.href = this.imageUrl;
// alink.download = 'pic'; //图片名
// alink.click();
this.downloadIamge(this.imageUrl, 'pic');
},
}
};
</script>
分类:
工作日志