shish 4 лет назад
Родитель
Сommit
36c2cde420

+ 38 - 0
hdPad/src/components/keyboard-listener/keyboard-listener.vue

@@ -0,0 +1,38 @@
+<template>
+  <view></view>
+</template>
+
+<script>
+export default {
+  methods: {
+    onEvent(event) {
+      this.$emit(event.type, event)
+    },
+  },
+}
+</script>
+<script module="keyboard" lang="renderjs">
+export default {
+  mounted () {
+    const onKey = (event) => {
+      const keys1 = ['type', 'timeStamp']
+      const keys2 = ['altKey', 'code', 'ctrlKey', 'isComposing', 'key', 'location', 'metaKey', 'repeat', 'shiftKey']
+      const keys3 = ['char', 'charCode', 'keyCode', 'keyIdentifier', 'keyLocation', 'which']
+      const data = {}
+      keys1.concat(keys2, keys3).forEach(key => data[key] = event[key])
+      this.$ownerInstance.callMethod('onEvent', data)
+    }
+    const names = ['keydown', 'keyup']
+    names.forEach(name => {
+      document.addEventListener(name, onKey, false)
+    })
+    this.$on('hook:beforeDestroy', () => {
+      names.forEach(name => {
+        document.removeEventListener(name, onKey, false)
+      })
+    })
+  }
+}
+</script>
+<style>
+</style>

+ 1 - 52
hdPad/src/mixins/scan.js

@@ -1,26 +1,11 @@
 // #ifdef APP-PLUS
 const shangMiPrint = uni.requireNativePlugin('G5KJ-ShangMiPrint')
 const globalEvent = uni.requireNativePlugin('globalEvent')
-var main =false
-var receiver = false
-var filter = false
-var _codeQueryTag = false;  
 export default {
 	data() {
 		return {
 		}
 	},
-    created(){
-
-        //this.listenScan()
-    },
-    onHide(){
-        this.stopScan()
-    }, 
-    destroyed(){
-        //页面退出时一定要卸载监听,否则下次进来时会重复,造成扫一次出2个以上的结果
-        this.stopScan()
-    },
 	methods: {
         listenScan(){
             //商米收银台
@@ -37,44 +22,8 @@ export default {
                 })
                 console.log('商米监听扫码')
             }else{
-                this.initScan()  
-                this.startScan()
-                console.log('其它设备监听扫码')
-            }
-        },
-        initScan() {
-            main = plus.android.runtimeMainActivity(); //获取activity
-            receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
-            onReceive: function(context, intent) {
-                //通过intent实例引入intent类,方便以后的'.'操作
-                plus.android.importClass(intent)
-                var productIdCode = intent.getStringExtra("SCAN_BARCODE1")
-                this.queryCode(productIdCode) 
-            }});
-            var IntentFilter = plus.android.importClass('android.content.IntentFilter');
-            filter = new IntentFilter();
-            filter.addAction("nlscan.action.SCANNER_RESULT");//监听扫描
-        },
-        startScan(){
-            if(main){
-                main.registerReceiver(receiver,filter)
-            }
-        },    
-        stopScan(){
-            if(main){
-                main.unregisterReceiver(receiver)
-            }
-        },
-        queryCode: function(code){  
-            //防重复
-            if(_codeQueryTag){
-                return false
+
             }
-            _codeQueryTag = true;    
-            setTimeout(function(){    
-                _codeQueryTag = false;    
-            },150)
-            uni.$emit('scancodedate',{code:code})
         }
     }
 }

+ 1 - 0
hdPad/src/pages/home/cash.vue

@@ -46,6 +46,7 @@ import leftGroup from './components/leftGroup.vue'
 import navComponent from './components/nav.vue'
 import loginComponent from './login.vue'
 import productMins from "@/mixins/product";
+
 export default {
 	name: "cash",
 	components: { rightItem,consoleButton,  loginComponent, leftArea,leftGroup, customerList, rightGoods,navComponent},

+ 35 - 23
hdPad/src/pages/home/components/nav.vue

@@ -1,35 +1,47 @@
 <template>
-    <view class="nav-left">
-        <view class="item-list" v-for="(s,idx) in nav" @tap="goTo(s)" :key="idx">{{s.name}}</view>
-    </view>
+  <view class="nav-left">
+    <view class="item-list" v-for="(s, idx) in nav" @tap="goTo(s)" :key="idx">{{s.name}}</view>
+    <keyboard-listener @keyup="keyup"></keyboard-listener>
+  </view>
 </template>
 <script>
+import keyboardListener from "@/components/keyboard-listener/keyboard-listener.vue";
 export default {
+  name: "navComponet",
+  components: { keyboardListener },
   data() {
     return {
-        nav:[{name:'收银',page:'/pages/home/cash'},{name:'工单',page:'/pages/home/work'},{name:'选款',page:'/pages/home/selectMake'},{name:'新款',page:'/pages/home/make'}]
-    }
+      nav: [
+        { name: "收银", page: "/pages/home/cash" },
+        { name: "工单", page: "/pages/home/work" },
+        { name: "选款", page: "/pages/home/selectMake" },
+        { name: "新款", page: "/pages/home/make" },
+      ],
+    };
   },
-  methods:{
-      goTo(item){
-        this.$util.hitRemind()
-        this.$util.pageTo({ url: item.page, type:2 })
-      }
-  }
-}
+  methods: {
+		keyup(item){
+			console.log(item)
+		},
+    goTo(item) {
+      this.$util.hitRemind();
+      this.$util.pageTo({ url: item.page, type: 2 });
+    },
+  },
+};
 </script>
 <style lang="scss" scoped>
 .nav-left {
-    flex: 5;
-    view:first-child{
-        margin-top: 23upx;
-    }
-    & .item-list {
-        font-size: 10upx;
-        text-align: center;
-        padding: 15upx 0;
-        color:white;
-        width:28upx;
-    }
+  flex: 5;
+  view:first-child {
+    margin-top: 23upx;
+  }
+  & .item-list {
+    font-size: 10upx;
+    text-align: center;
+    padding: 15upx 0;
+    color: white;
+    width: 28upx;
+  }
 }
 </style>