1.扫码枪是模拟键盘输入的,输入一连串数字后加一个enter键。所以可以监听键盘事件。

新建一个隐藏的 input 用来接收数据,不然扫码枪会自动获取页面存在的一个input的焦点,并将数据显示在input框中。

type="text"

v-model="myvalue"

id="inputId"

placeholder=""

size="normal"

clearable

class="inputShow"

>

// 隐藏 input

.inputShow {

height: 0;

width: 0;

margin: 0;

padding: 0;

}

::v-deep {

.el-input .el-input__inner {

height: 0 !important;

width: 0 !important;

margin: 0 !important;

padding: 0 !important;

}

}

在实际开发中需要区分是扫描枪输入还是用户键盘手动输入,区别在于扫码枪输入很快。

data(){

return {

code: "", // 扫码数据

myvalue: "", //

lastTime: "",

nextTime: "",

lastCode: "",

nextCode: "",

}

}

// 退出页面时清空 避免在下一个页面还会生效

beforeDestroy() {

document.onkeypress = "";

},

mounted() {

this.scanCode();

},

// 扫码

scanCode() {

document.onkeypress = (e) => {

this.nextCode = e.which;

if (e.which === 13) {

if (this.code.length < 5) {

//手动输入的时间不会让code的长度大于2,所以这里只会对扫码枪有效

this.lastTime = null;

this.lastCode = null;

console.log("手动");

this.code = "";

return;

}

// 扫码的 值

this.myvalue = this.code;

// 在此处写需要调用的接口

this.fun()

console.log("自动");

this.lastTime = null;

this.lastCode = null;

this.code = "";

return;

}

this.nextTime = new Date().getTime();

if (!this.lastTime && !this.lastCode) {

this.code += e.key;

}

if (

this.lastCode != null &&

this.lastTime != null &&

this.nextTime - this.lastTime <= 100

) {

// 将焦点放在 隐藏的 input 框中

document.getElementById("inputId").focus();

document.getElementById("inputId").blur();

this.code += e.key;

} else if (

this.lastCode != null &&

this.lastTime != null &&

this.nextTime - this.lastTime > 100

) {

//当扫码前有keypress事件时,防止首字缺失

// this.code = e.key;

}

this.lastCode = this.nextCode;

this.lastTime = this.nextTime;

};

},

pda扫描mysql,获取pda扫码枪 扫描的数据相关推荐

  1. js 条码枪扫描_js获取USB扫码枪数据

    前言 找了很多相关的教程不太好用,汲取各家之长总结精简了一下 原理 扫码枪扫描到的条形码每一位会触发一次onkeydown事件 比如扫描条码位'1234567890'的条形码,会连续执行10次onke ...

  2. Android设备获取USB扫码枪扫描的内容与可能遇到的问题解决

    这篇文章主要给大家介绍了关于Android设备获取扫码枪扫描内容的方法,以及在开发中可能会遇到的问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们 ...

  3. MySQL获取近12个月数据SQL

    ##获取近12个月数据 SELECT TYEAR,TMONTH,CONCAT(SUBSTRING(TYEAR,3),'/',TMONTH) AS T_TIME,MARKETNAME,SJJY_WGDL ...

  4. metasploit扫描mysql端口_metasploit-端口扫描

    大体可以分为两种方式: 1.调用nmap进行端口扫描 msfconsole nmap -v -sV www.cstc.org.cn 扫描结果(端口开放情况以及目标服务操作系统相关操作信息) PORT ...

  5. mysql获取近7天每天数据_sql 获取最近7天的每日数据

    第一步:查询一定范围内的数据.数量 查询最近一天的数据: select * from table where to_days(column_time) = to_days(now()); select ...

  6. MySQL获取列表中的年份数据

    首先年份的关键字是 year 然后查询指定时间中的年份值就是 select year('2000-05-25 00:00:00') 再然后,把里面的时间换成列表中的属性,from后面接的类似于派生表一 ...

  7. mysql获取一个小时内的数据

     (第一种方法)SELECT * FROM 表名 WHERE 字段名>NOW()-INTERVAL 2 HOUR;(第二种方法)SELECT * FROM 表名 WHERE 字段名 > ...

  8. 安卓版PDA扫码获取扫描枪数据;input获取焦点不弹出虚拟键盘;解决页面btn可操作数据的逻辑,导致DOM元素渲染,input的readonly失效

    html部分: 页面需要一个容器来接收扫描数据 注意:安卓版PDA扫描不同于win系统版本,安卓版本获取扫描数据时并不是keyCode按键依次获取,而是一次性给出扫描的数据 <!--扫描枪数据接 ...

  9. 手持PDA无线打印 扫描一体方案-PDA系统程序

    手持PDA无线打印 扫描一体方案-PDA系统程序APP开发 haohantech手持POS打印终端PDA 量身定造了一套能够和PC端软件进行无缝结合的PDA端软件.通过这样的一套硬件+软件的方案,让使 ...

最新文章

  1. 重启centOS丢失nginx.pid导致无法启动nginx的解决方法
  2. 计算机应用基础19秋在线作业2,计算机应用基础19春在线作业2.doc
  3. 每日一笑 | 在地铁上被老奶奶让座是一种什么样的体验?
  4. #10017 「一本通 1.2 练习 4」传送带+三分套三分
  5. 【CodeForces - 768C】Jon Snow and his Favourite Number(思维,技巧,套路,数学异或,循环节,trick)
  6. cloud一分钟 | 腾讯金融云总经理胡利明:腾讯云服务金融的“加减 乘除”法。...
  7. 编程题练习 两个栈实现队列
  8. C编译: 使用gdb调试
  9. 【蓝桥杯嵌入式】【STM32】10_InputCaputer之输入捕获
  10. BAT 为首的中国互联网公司为何陷入技术焦虑的怪圈?
  11. php 去除变态空格字符方法,空格trim不掉问题解决思路
  12. python之sqlalchemy的使用
  13. ios开发人员行为准则_如何成为iOS开发人员
  14. aardio利用鼠标钩子响应文件拖动过程(一)
  15. 优秀的Allegro Skill推荐
  16. 【一起学SQLite】--Delphi下的SQLite之简介(3)
  17. java击鼓传花游戏list_击鼓传花游戏作文集合15篇
  18. Robust performance of virtual sensing methods for active noise control 翻译
  19. 点云学习笔记16——pcl点云可视化
  20. awk NR详解!awk 的内置变量 NF、NR、FNR、FS、OFS、RS、ORS

热门文章

  1. 小图片放大后怎么能够清晰,不失真
  2. android 发短信带链接,Android 点击Url(短信链接)打开App
  3. 【一】机器学习的动机与应用
  4. vue考试系统后台管理项目-接口封装调用
  5. stlink 未知usb设备 设备描述符请求失败
  6. keil在线调试技巧
  7. 知乎万赞,值得反复刷的Android面试题,金九银十正确打开方式
  8. a|=b 是什么意思
  9. OSChina 周二乱弹 ——桃花潭水深千尺,淹死产品行不行?
  10. 卡苹果6plus在线_京津冀互联互通卡实现苹果、安卓全覆盖