使用QrCode解析二维码

使用QrCode识别二维码

1、引入QrCode

import QrCode from 'qrcode-decoder'

2、HTML

        使用el-upload上传图片

<el-form-item
  label="设备识别码"
  prop="deviceSerialNo"
  class="position:relative"
>
  <dataInput
    v-if="qrFlag"
    v-model.trim="form.deviceSerialNo"
    :placeholder="$t('lang.pleaseInput')"
    :clearable="false"
    maxlength="32"
  />
  <el-upload
    ref="uploadQr"
    action=""
    :show-file-list="false"
    :http-request="successFnQr"
    class="img-upload"
  >
    <img
      :src="require('@/modules/authMng/assets/scaner.png')"
      alt=""
      style="vertical-align: middle;"
    >
  </el-upload>
  <canvas
    id="myCanvas"
    width="600"
    height="600"
    style="display: none"
  />
</el-form-item>

3、javascript

data(){
    return {
        fileListQr: [],
        qrFlag: true
    }
},  
methods: {
    getQrUrl (file) {
      // 获取临时路径
      const url = window.webkitURL.createObjectURL(file) || window.URL.createObjectURL(file) || window.mozURL.createObjectURL(file)
      const qr = new QrCode()
      return qr.decodeFromImage(url) // 解析二维码,返回promise
    },
    successFnQr (event) {
      const result = this.getQrUrl(event.file)
      result.then(res => {
        if (res.data) {
          this.form.deviceSerialNo = res.data
          this.qrFlag = false
          this.$nextTick(() => { // 更新页面
            this.qrFlag = true
          })
          this.success('识别二维码成功!')
        } else {
          this.error('识别二维码失败,请重新上传')
        }
      }).catch(err => {
        this.error(JSON.stringify(err))
      })
    }

4 、css

    .img-upload {
      position: absolute;
      height: 30px;
      width: 30px;
      margin-top: -30px;
      margin-left: 94%;
      cursor: pointer;
    }

5 、效果图

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值