From f9e93380e5192b35943769950c698c50b86febb6 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期五, 13 九月 2024 08:41:21 +0800
Subject: [PATCH] #

---
 static/js/scanModule.js |   45 +++++++++++
 pages/home/home.vue     |    7 +
 pages/pakin/test.vue    |   58 ++++++++++++++
 pages.json              |   11 ++
 static/js/PresetsPda.js |   30 +++++++
 pages/pakin/pakin.vue   |   31 ++++++-
 6 files changed, 177 insertions(+), 5 deletions(-)

diff --git a/pages.json b/pages.json
index be5a1d9..f0a0f11 100644
--- a/pages.json
+++ b/pages.json
@@ -184,7 +184,16 @@
 				"enablePullDownRefresh" : false
 			}
 		}
-	],
+	    ,{
+            "path" : "pages/pakin/test",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "鏂囨湰娴嬭瘯",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
 		"navigationBarTitleText": "uni-app",
diff --git a/pages/home/home.vue b/pages/home/home.vue
index 8df69e7..c3a36e3 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -31,6 +31,13 @@
 						cuIcon: 'pullup',
 						url: '/pakin/pakin'
 					},
+					{
+						title: '鏂囨湰娴嬭瘯',
+						name: 'pakin',
+						color: 'cyan',
+						cuIcon: 'pullup',
+						url: '/pakin/test'
+					},
 					// {
 					// 	title: '鍐嶆鎷f枡',
 					// 	name: 'changePallet',
diff --git a/pages/pakin/pakin.vue b/pages/pakin/pakin.vue
index 1eb04f0..ff6b206 100644
--- a/pages/pakin/pakin.vue
+++ b/pages/pakin/pakin.vue
@@ -130,6 +130,8 @@
 </template>
 
 <script>
+	import {setCurrentDeviceAction} from '../../static/js/PresetsPda.js'
+	import {initScan,startScan,stopScan} from '../../static/js/scanModule.js'
 	export default {
 		data() {
 			return {
@@ -203,11 +205,32 @@
 			},
 			// 鎼滅储鐗╂枡
 			findMat() {
-				let that = this
+				let _this = this
+				initScan();
+				startScan();
 				let item = {}
-				item['threeCode'] = that.matnr
-				this.dataList.unshift(item)
-				this.focuss()
+				uni.$on("SCAN_CODE", ({code}) => {
+					console.log(code);
+					item['threeCode'] = code
+					if (_this.dataList.length > 0) {
+						let add = false
+						for	(let k of _this.dataList) {
+							if (code == k.threeCode) {
+								add = false
+							} else {
+								add = true
+							}
+						}
+						if (add) {
+							_this.dataList.unshift(item)
+						}
+					} else {
+						_this.dataList.unshift(item)
+					}
+					_this.focuss()
+					// code灏辨槸鎵爜鐨勭粨鏋� 鎺ヤ笅鏉ュ啓涓氬姟闇�姹�
+				});
+				
 			},
 			selectMat() {
 				let that = this
diff --git a/pages/pakin/test.vue b/pages/pakin/test.vue
new file mode 100644
index 0000000..9e90aa1
--- /dev/null
+++ b/pages/pakin/test.vue
@@ -0,0 +1,58 @@
+<template>
+	<view>
+		<view>
+			<!-- <input type="text" v-model="val" maxlength="600"/> -->
+			<textarea v-model="val" placeholder="" maxlength="600" @input="input"/>
+		</view>
+		<hr>
+		<view>
+			{{val}}
+		</view>
+	</view>
+</template>
+
+<script>
+	import {setCurrentDeviceAction} from '../../static/js/PresetsPda.js'
+	import {initScan,startScan,stopScan} from '../../static/js/scanModule.js'
+	export default {
+		data() {
+			return {
+				val: ''
+			}
+		},
+		onload() {
+			console.log("onLoad");
+			// 灏嗘湰璁惧鐨勪俊鎭瓨鍏ユ湰鍦�
+			setCurrentDeviceAction();
+			// 鍒濆鍖�
+			initScan();
+		},
+		destroyed() {
+			stopScan();
+		},
+		methods: {
+			input() {
+				console.log(this.val);
+				initScan();
+				startScan();
+				uni.$on("SCAN_CODE", ({code}) => {
+					console.log("code:" + code);
+					// code灏辨槸鎵爜鐨勭粨鏋� 鎺ヤ笅鏉ュ啓涓氬姟闇�姹�
+				});
+			},
+			mounted() {
+				initScan();
+				startScan();
+				uni.$on("SCAN_CODE", ({code}) => {
+					console.log("code:" + code);
+					// code灏辨槸鎵爜鐨勭粨鏋� 鎺ヤ笅鏉ュ啓涓氬姟闇�姹�
+				});
+			},
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>
diff --git a/static/js/PresetsPda.js b/static/js/PresetsPda.js
new file mode 100644
index 0000000..227ae9c
--- /dev/null
+++ b/static/js/PresetsPda.js
@@ -0,0 +1,30 @@
+const deviceBrand = uni.getSystemInfoSync().deviceBrand;
+
+// 鐩墠宸茬煡鐨勫箍鎾姩浣滃拰骞挎挱鏍囩 鍚庣画鍙户缁彔鍔�
+// 鑷畾涔夊箍鎾姩浣滃拰鏍囩涔熷彲杩涜棰勮
+export const actionData = [{
+		// 闇嶅凹闊﹀皵锛堥粯璁ゅ箍鎾拰鏍囩锛�
+		deviceBrand: 'mobiwire',
+		action: 'com.honeywell.scan.broadcast',
+		stringExtra: 'data',
+	},
+	{
+		// 浼樺崥璁紙榛樿骞挎挱鍜屾爣绛撅級
+		deviceBrand: 'urovo',
+		action: 'android.intent.ACTION_DECODE_DATA',
+		stringExtra: 'barcode_string',
+	}
+]
+
+// 棣栭〉杩涘叆椤甸潰 灏嗘湰璁惧鐨勪俊鎭瓨鍏ユ湰鍦�  濡傛灉璇ュ巶鍟嗘病鍦ㄩ璁句腑 灏辨嬁绗竴涓綅缃殑閰嶇疆锛屾牴鎹」鐩腑浣跨敤鐨凱DA鑷鍐冲畾
+export const setCurrentDeviceAction = () => {
+	// 濡傛灉鏈湴鏈夊瓨骞挎挱淇℃伅 灏变笉鎷夸簡
+	if (uni.getStorageSync('currentDeviceData')?.deviceBrand) return
+	const data = actionData.find(item => deviceBrand === item.deviceBrand)
+	if (data && Object.keys(data).length) {
+		uni.setStorageSync('currentDeviceData', data)
+	} else {
+		uni.setStorageSync('currentDeviceData', actionData[0])
+	}
+
+};
\ No newline at end of file
diff --git a/static/js/scanModule.js b/static/js/scanModule.js
new file mode 100644
index 0000000..3ac99d6
--- /dev/null
+++ b/static/js/scanModule.js
@@ -0,0 +1,45 @@
+let main, receiver, filter;
+let _codeQueryTag = false; // 鏍囪鍙橀噺
+
+export const initScan = () => {
+  
+  main = plus.android.runtimeMainActivity(); // 鑾峰彇涓� activity
+  var IntentFilter = plus.android.importClass("android.content.IntentFilter");
+  filter = new IntentFilter();
+  const action = uni.getStorageSync('currentDeviceData').action // 鑾峰彇鍔ㄤ綔
+  const stringExtra = uni.getStorageSync('currentDeviceData').stringExtra // 鑾峰彇瀛楃涓查澶栧弬鏁�
+  filter.addAction(action); // 娣诲姞骞挎挱鍔ㄤ綔
+  receiver = plus.android.implements(
+    "io.dcloud.feature.internal.reflect.BroadcastReceiver",
+    {
+      onReceive: function (context, intent) {
+        plus.android.importClass(intent);
+        let code = intent.getStringExtra(stringExtra); // 鑾峰彇骞挎挱涓殑瀛楃涓查澶栧弬鏁�
+		console.log(code);
+        queryCode(code);
+      },
+    }
+  );
+};
+
+
+export const startScan = () => {
+  main.registerReceiver(receiver, filter); // 寮�濮嬬洃鍚箍鎾�
+};
+export const stopScan = () => {
+	console.log(1);
+  main.unregisterReceiver(receiver); // 鍋滄鐩戝惉骞挎挱
+  // 瑙g粦 uni 鍏ㄥ眬浜嬩欢鐩戝惉鍣紝鍚﹀垯鍙兘浼氬嚭閿�
+  uni.$off('SCAN_CODE');
+};
+export const queryCode = (code) => {
+  // 闃叉閲嶅鏌ヨ
+  if (_codeQueryTag) return false;
+  _codeQueryTag = true; // 鏍囪涓哄凡缁忔煡璇�
+  setTimeout(function () {
+    _codeQueryTag = false; // 閲嶇疆鏍囪
+  }, 150);
+  var id = code;
+  //id 灏辨槸鎵爜鐨勭粨鏋�
+  uni.$emit("SCAN_CODE", { code: id }); // 瑙﹀彂 SCAN_CODE 浜嬩欢锛屽苟浼犻�掓壂鎻忓埌鐨勫唴瀹�
+};
\ No newline at end of file

--
Gitblit v1.9.1