美文网首页
vue通过点击保存按钮下载qrcode-vue生成的二维码到本地

vue通过点击保存按钮下载qrcode-vue生成的二维码到本地

作者: 哒哒哒哒da | 来源:发表于2020-08-04 16:24 被阅读0次
<!-- 二维码 -->
<el-dialog
   title="我的专属二维码"
   :visible.sync="dialogVisible"
   width="540px"
   @opened="openQrCode"
>
  <div class="qrcode">
     <div id="qrcode" />
  </div>
  <div class="qrcodeBtn">
    <el-button type="primary" @click="saveQrcode">保存到本地</el-button>
  </div>
</el-dialog>
import QRCode from 'qrcodejs2'

export default {
  data() {
    return {
      dialogVisible: false,
    }
  },
  methods: {
    openQrCode() {
      document.getElementById('qrcode').innerHTML = ''
      const qrcode = new QRCode('qrcode', {
        width: 250,
        height: 250
      })
      qrcode.makeCode("二维码内容")
    },
    saveQrcode() {
      //找到canvas标签
      const myCanvas = document.getElementById('qrcode').getElementsByTagName('canvas')
      //创建一个a标签节点
      const a = document.createElement('a')
      //设置a标签的href属性(将canvas变成png图片)
      a.href = myCanvas[0].toDataURL('image/png').replace('image/png', 'image/octet-stream')
      //设置下载文件的名字
      a.download = '我的专属二维码.png'
      //点击
      a.click()
    }
  }
}

提示:二维码一开始并没有选中相应的容器,因为dialog加载需要时间,所以二维码生成函数写在dialog的打开回调中,避免错误。

相关文章

网友评论

      本文标题:vue通过点击保存按钮下载qrcode-vue生成的二维码到本地

      本文链接:https://www.haomeiwen.com/subject/cluwrktx.html