掃碼槍讀取條形碼數據(vue)


掃碼槍是模擬鍵盤輸入的,所有事件為document.onkeypress = function(){}.

在vue項目中,是沒有window.onload的,所以在created鈎子函數中做:

var b = "";
    var _this = this;
    document.onkeydown = function() {
      if (event.keyCode != 13) {
        var bizCode = String.fromCharCode(event.keyCode);
        if (event.keyCode >= 48 && event.keyCode <= 122) {
          b = b + bizCode;
        }
      } else {
        b = "";
      }
      _this.msg = b;
    };

在document.onkeydown中獲取了條碼的值,此時的值是,6,65,657,6579,65794,657943,6579435...按照按鍵依次展示出來的。

如果需要條碼值與頁面中其他值一起做數據處理,則需要監聽;

在watch中,需要了解一下immediate和handler.如果在最初綁定某值時就需要執行函數,就需要用到immediate屬性。

 1 watch:{
 2   msg:{
 3   handler(oldValue, newValue){
 4     //由於此時掃描出的值是一個字符一個字符累加的,所有用一個數組裝起來。
 5 var arry = []
 6 arry.push(this.msg)
 7 for(var i = 0; i < arry.length; i++){
 8   //...做判斷,調接口什么的,隨業務邏輯寫了  
 9 }
10 }  
11 },
12 immediate: true      
13 }

還有一點,就是多次掃碼會產生疊加,在document.onkeydown的最下方將msg清空即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM