vue生成二维码:vue-qr

1.安包

npm install vue-qr --save

2.引入

import vueQr from "vue-qr"
export default {
  components: {
    vueQr
  }
}

3.使用

<el-table>
   <el-table-column label="物料码" align="center" width="80" prop="parkCode">
       <template slot-scope="scope">
       <el-button size="mini" type="primary" @click="handleQr(scope.row)">查看</el-button>
   </el-table-column>
</el-table>
//二维码弹框
<el-dialog title="查看物料码" :visible.sync="readQr" @close="clearQr"> //点击查看二维码
  <el-row :gutter="20">
    <el-col :span="12">
      //二维码标签
      <vue-qr :logoSrc="qr.imageUrl" :text="qr.qrSrc" :size="qr.qrSize"></vue-qr>
    </el-col>
    //自定义二维码图标尺寸等:上传图标并可以保存二维码
    <el-col :span="12">
      <el-form>
        <el-form-item label="自定义图标">
          <el-upload :action="uploadUrl" list-type="excelList" :multiple="false" :on-success="handleQrSuccess">
            <el-button size="small" type="primary">点击上传</el-button>
          </el-upload>
        </el-form-item>
        <el-form-item label="自定义尺寸">
          <el-input v-model="qrSize" type="number" placeholder="请输入内容"></el-input>
          <div slot="tip" class="el-upload__tip">自定义logo图标</div>
        </el-form-item>
        <el-form-item>
          <el-button type="primary" icon="el-icon-refresh" size="mini" @click="changeQrSize">确定</el-button>
        </el-form-item>
      </el-form>
    </el-col>
  </el-row>
</el-dialog>
data() {
  return {
    qr: {
      qrSize: 300,
      qrSrc: '',
      imageUrl: require('@/assets/logo/logo.png')        //自定义初始图片
    },
    qrSize: 300,        //自定义初始二维码大小
    imageUrl: null,     //二维码链接
    readQr: false,      //弹框
  }
}
methods:{
     async handleQr(row) {        //获取二维码链接:接口后端获取
        let parkCode = row.parkCode
        getInviteUrl(parkCode).then(response => {
        this.qr.qrSrc = response.data
        //弹框
        this.readQr = true
        })
    },
    //二维码弹框赋初始值
    clearQr() {
       this.qr.qrSrc = ""
       this.qr.imageUrl = require('@/assets/logo/logo.png')
       this.qr.qrSize = 300
       this.qrSize = 300
    },
    //自定义图标
    handleQrSuccess(response, file, fileList) {
            const fileName = file.raw.name
            const index = fileName.lastIndexOf('.')
            const exe = fileName.substr(index + 1)
            if (exe == "jpg" || exe == "png" || exe == "jpeg" || exe == "bmp" || exe == "gif"       || exe == "webp" || exe == "psd" || exe == "svg" || exe == "tiff") {
            this.imageUrl = URL.createObjectURL(file.raw)
            } else {
            alert("请上传图片!")
           }
   },
   //图片上传赋值
   changePayQrSize(val) {
           this.payQr.payQrSize = Number(this.payQrSize)
           this.payQr.payImageUrl = this.payImageUrl
   }
}

 

你可以使用以下步骤来使用 vue-qr 生成二维码并下载二维码: 1. 安装 vue-qr 你可以使用以下命令来安装 vue-qr: ``` npm install vue-qr --save ``` 2. 在 Vue 组件中使用 vue-qr 你可以在 Vue 组件中使用 vue-qr,并传递需要生成二维码的文本作为参数: ```html <template> <div> <qr :text="qrText"></qr> <button @click="downloadQR">Download QR Code</button> </div> </template> <script> import QR from 'vue-qr' export default { components: { QR, }, data() { return { qrText: 'https://www.example.com', } }, methods: { downloadQR() { const canvas = document.querySelector('canvas') const dataURL = canvas.toDataURL('image/png') const link = document.createElement('a') link.download = 'qr-code.png' link.href = dataURL document.body.appendChild(link) link.click() document.body.removeChild(link) }, }, } </script> ``` 在上面的例子中,我们首先导入 vue-qr 并将其注册为组件。然后,我们定义了一个 data 属性 `qrText`,它包含了需要生成二维码的文本。在模板中,我们使用 `<qr>` 标签来渲染二维码。我们还添加了一个按钮,以便用户可以下载二维码。 在 `downloadQR()` 方法中,我们获取了 Canvas 元素并将其转换为 PNG 格式的数据 URL。然后,我们创建了一个 `<a>` 元素,并将其下载属性设置为 `qr-code.png`,并将其 `href` 属性设置为数据 URL。最后,我们将 `<a>` 元素添加到页面中,模拟用户单击该元素并将其从页面中删除。 3. 运行应用程序 现在,你可以运行你的应用程序并生成并下载二维码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值