【VUE】vue+vue-qr实现生成二维码,并下载二维码,以及复制链接功能

整理之前用的一些插件

生成二维码的插件有蛮多,例如:qrcode、vue-qriously、vue-qr等,
不过我采用的vue-qr,因为除了可以生成二维码,还可以在二维码中间加logo

<template>
  <div class="vue-qr">
        <vue-qr :logoSrc="config.logo"
                  :text="config.value"
                  :size="52"
                  :margin="0"
                  ref="Qrcode"
                  class="vue-qr-img"></vue-qr>
       <el-button type="primary"
                  class="tag-copy"
                  :data-clipboard-text="config.value"
                  @click="copyShareLink">复制二维码</el-button>
       <a :href="exportLink" @click="downloadImg" :download="downloadFilename">下载二维码</a>
  </div>
</template>
<script>

import VueQr from 'vue-qr' //生成二维码
import Clipboard from 'clipboard';//复制
export default {
 components: {
   VueQr
 },
 data() {
   return {
     config: {  //二维码参数
        value: 'https://element.eleme.cn/#/zh-CN/component/layout',//显示的值、跳转的地址
        logo: require('../../assets/img/logo.jpg'),//中间logo的地址
      },
      exportLink: '',
      downloadFilename: ''
    }
  },
  methods:{
    // 复制链接
    async copyShareLink() {
      let clipboard = new Clipboard('.tag-copy')
      await clipboard.on('success', e => {
        showNotification('success', '链接复制成功,请到微信打开!')
        clipboard.destroy() // 释放内存
      })
      clipboard.on('error', e => { 
        showNotification('warning', '该浏览器不支持自动复制!')   // 不支持复制  
        clipboard.destroy()  // 释放内存  
      })
    },

    // 下载二维码图片
    downloadImg () {
      let Qrcode = this.$refs.Qrcode
      this.exportLink = Qrcode.$el.currentSrc
      this.downloadFilename = '二维码'
    }
  }
}
</script>

除此之外还可以设置背景图等等,详细的请看vue-qr

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容