@@ -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">
+ 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', () => {
+ document.removeEventListener(name, onKey, false)
+<style>
+</style>
@@ -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个以上的结果
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(){
- main.unregisterReceiver(receiver)
- queryCode: function(code){
- //防重复
- if(_codeQueryTag){
- return false
- _codeQueryTag = true;
- setTimeout(function(){
- _codeQueryTag = false;
- },150)
- uni.$emit('scancodedate',{code:code})
@@ -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";
name: "cash",
components: { rightItem,consoleButton, loginComponent, leftArea,leftGroup, customerList, rightGoods,navComponent},
@@ -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";
+ name: "navComponet",
+ components: { keyboardListener },
- 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 })
-}
+ 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>