<template>
  <div id="app" ref="app">
    <object  ref="CertCtl" classid="clsid:F48AE9BC-809E-423c-81E8-FE27F1C1A981"
        id="CertCtl" name="CVR_IDCard" width="0" height="0" >
    </object>
    <h1>身份证阅读器usb接入测试页面</h1>
    <button @click="connect">打开设备</button>
    <button @click="readCert">采集身份证UID号</button>
    <button @click="disconnect">关闭设备</button>
    <div id="box">
        <p>串口波特率</p>
            <select id="SelectBaudrate" ref="SelectBaudrate">
            <!-- <option value ="115200">115200</option> -->
            <option value ="9600">9600</option>
            </select>
    </div>
    <div id="box">
        <p>证件</p>
        <form id="formId" method="post" >
            <input type="text" id="certUID" size="49" style="width:400px;" ref="certUID">
            <button type="button"  id="sendMessage" @click="sendMessage">保存身份证UID号</button>
        </form>
    </div>
    <div id="box" style="display:none;">
        <p>结果</p>
        <textarea id="result" ref="result" rows="8" cols="47" style="width:400px;" readonly="readonly"></textarea>
    </div>

</div>
</template>

<script>
export default{
  name: 'UidCard',
  // el: '#app',
  // data() {
  //   return {}
  // },
  methods: {
    // 方法函数
    toJson(str) {
      var obj = JSON.parse(str)
        return obj
    },
    // 清空身份证uid框框
    clearForm() {
      // console.log()
      this.$refs.certUID.value = ''
    },
    connect() { // 连接设备
      console.log('我连接了')
      this.clearForm()// 清空uid框
      var CertCtl = this.$refs.CertCtl // 获取CertCtl控件
      try {
        var nBaudrate = this.$refs.SelectBaudrate.value
        var result = CertCtl.connectDevice(nBaudrate)
        this.$refs.result.value = result // textarea框的值
      } catch (e) {
        alert(e)
      }
    },
    readCert() {
      console.log('读身份证uid号')
      var CertCtl = this.$refs.CertCtl // 获取CertCtl控件
      var result = CertCtl.GetCardUid()// 获取控件方法
      this.$refs.result.value = result // textarea框的值
      var resultObj = this.toJson(result)
      // Console.log('.............resultObj',resultObj)
      if (resultObj.resultFlag == 0) {
        this.$refs.certUID.value = resultObj.cardUid
      }
      try {
      } catch (e) {
        alert(e)
      }
    },
    disconnect() {
      console.log('断开连接')
      this.clearForm()// 断开清空
      var CertCtl = this.$refs.CertCtl // 获取CertCtl控件
      try {
        var result = CertCtl.disconnect()
        this.$refs.result.value = result
      } catch (e) {
        alert(e)
      }
    },

    sendMessage() {
      console.log('保存身份证uid号')
      if (this.$refs.certUID.value !== '') {
        this.$emit('closeModule', this.$refs.certUID.value)
      }
    }
    // sendMessage() {
    //   // var certUidValue=this.$refs.certUID.value//身份证uid号
    //   console.log('....this.$refs.certUID.value', this.$refs.certUID.value)
    // }
  },
  mounted() {
    this.$nextTick(
      function() {
        console.log('............uid', this.$refs.certUID.value)
        console.log('获取CertCtl', this.$refs.CertCtl.classid)
      }
    )
  }

}
</script>

使用的时候,把单文件组件当做子组件在父组件引用,通过子组件将获取的值传给父组件

华视身份证读卡器获取uid号vue单文件组件版本的更多相关文章

  1. webpack入坑之旅(五)加载vue单文件组件

    这是一系列文章,此系列所有的练习都存在了我的github仓库中vue-webpack,在本人有了新的理解与认识之后,会对文章有不定时的更正与更新.下面是目前完成的列表: webpack入坑之旅(一)不 ...

  2. Vue单文件组件

    前面的话 本文将详细介绍Vue单文件组件 概述 在很多 Vue 项目中,使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页 ...

  3. vue 单文件组件

    在很多vue项目中,我们使用vue.component来定义全局组件,紧接着用new Vue({el:'#container'})在每个页面内指定一个容器元素 这种方式在很多中小规模的项目中运作的很好 ...

  4. webpack打包vue单文件组件

    一.vue单文件组件 ①文件扩展名为 .vue 的 就是single-file components(单文件组件) ②参考文档:单文件组件 二.webpack加载第三方包 ①项目中,如果需要用到一些第 ...

  5. ts-loader如何与vue单文件组件衔接

    .ts-loader是如何与vue单文件组件衔接作用的 https://github.com/microsoft/TypeScript-Vue-Starter https://www.npmjs.co ...

  6. 基于VSCode的vue单文件组件模板设置---一次设置,可爽终生

    第一步: 第二步: 第三步: 打开vue.json文件后,如果是初次设置,应该如下图所示,绿色注释部分不用管,注意那两个白色大括号 第四步:在大括号内全部粘贴如下代码,保存即可完成vue模板的设置 & ...

  7. vue 单文件组件最佳实践

    vue 单文件组件最佳实践 生命周期 template <template> <section> <h1>vue single file components te ...

  8. vue单文件组件的构建

    在很多Vue项目中,我们使用 Vue.component 来定义全局组件,这种方式在很多中小规模的项目中运作的很好. 但当在更复杂的项目中,就有了很大的弊端. 我们就可以用文件扩展名 .vue的单文件 ...

  9. Vue单文件组件基础模板

    背景 相信大家在使用Vue开发项目时,基本都是以单文件组件的形式开发组件的,这种方式好处多多: 1.代码集中,便于开发.管理和维护 2.可复用性高,直接将vue文件拷贝到新项目中 我暂时就想到这两点, ...

随机推荐

  1. mysql百万级别重排主键id(网上的删除重建id在大数据量下会出错)

    网上教程: 先删除旧的主键 再新建主键 :数据量少时没问题,不会出现主键自增空缺间隔的情况(如:1,2,3,5):但是大数据量时会出现如上所述问题(可能是内部mysql多进程或多线程同时操作引起问题) ...

  2. Codeforces 1188A 构造

    题意:给你一颗树,树的边权都是偶数,并且边权各不相同.你可以选择树的两个叶子结点,并且把两个叶子结点之间的路径加上一个值(可以为负数),问是否可以通过这种操作构造出这颗树?如果可以,输出构造方案.初始 ...

  3. Magolor的数据结构作业

    \(CodeForces 706E ~Working routine\) 给出一个矩阵,每次操作交换两个子矩阵,求最后状态. 使用链表存储,每次交换后,影响到的之后矩阵边缘的指针,暴力修改. \(~~ ...

  4. 部署core

    https://www.cnblogs.com/jasonduan/p/9193702.html

  5. Mybatis基于XML配置SQL映射器(三)

    Mybatis之动态SQL mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类: if choo ...

  6. element-ul 处理 组件内的弹出框close问题

    <el-dialog custom-class="rental-pop" :close-on-click-modal="false" :append-to ...

  7. HDU 6625 three arrays 求两个序列异或最小值的排列(一个可以推广的正解

    目录 题意: 解析 原题描述 字典树动态求Mex @(hdu 6625求两个序列异或最小值的排列) 题意: \(T(100)\)组,每组两个长度为\(n(100000)\)的排列,你可以将\(a[]\ ...

  8. DCloud-Video:Html5 Video 实现方案

    ylbtech-DCloud-Video:Html5 Video 实现方案 1.返回顶部 1.1. http://ask.dcloud.net.cn/article/569 1.2. 一. Html5 ...

  9. ansible 远程执行时提示 command not found 问题

    问题 最近在学习 ansible ,在使用普通用户远程执行 ip a 命令是发现提示错误:/bin/sh: ip: command not found. 原因 command not found 命令 ...

  10. JS制作二级联动

    JS制作二级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...