From 439fad8ed851adceba20b9d9c4a11b0eef153602 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期二, 03 三月 2026 15:54:46 +0800
Subject: [PATCH] Revert "fix(scan): 修复扫码组件重复触发和超时处理问题"

---
 src/components/scan/index.vue |   96 +++++------------------------------------------
 1 files changed, 11 insertions(+), 85 deletions(-)

diff --git a/src/components/scan/index.vue b/src/components/scan/index.vue
index 45dc54b..018c202 100644
--- a/src/components/scan/index.vue
+++ b/src/components/scan/index.vue
@@ -4,18 +4,10 @@
   </view>
 </template>
 <script lang="ts" setup>
-declare const plus: any;
-
 const main = ref();
 const receiver = ref();
 const filter = ref();
 const codeQueryTag = ref(false);
-const isInitialized = ref(false);
-const isReceiverRegistered = ref(false);
-const scanTimeoutMs = 3500;
-const scanTimeoutTimer = ref<ReturnType<typeof setTimeout> | null>(null);
-const isWaitingScanResult = ref(false);
-const isScanning = ref(false);
 const props = defineProps({
   emitName: {
     type: String,
@@ -23,27 +15,7 @@
   },
 });
 
-const clearScanTimeout = () => {
-  if (!scanTimeoutTimer.value) return;
-  clearTimeout(scanTimeoutTimer.value);
-  scanTimeoutTimer.value = null;
-};
-
-const startScanTimeoutWatch = () => {
-  clearScanTimeout();
-  isWaitingScanResult.value = true;
-  scanTimeoutTimer.value = setTimeout(() => {
-    if (!isWaitingScanResult.value) return;
-    console.warn("鎵爜瓒呮椂鏈敹鍒板箍鎾�");
-    isWaitingScanResult.value = false;
-    isScanning.value = false;
-    queryCode("");
-    scanTimeoutTimer.value = null;
-  }, scanTimeoutMs);
-};
-
 const initScan = () => {
-  if (isInitialized.value) return;
   main.value = plus.android.runtimeMainActivity(); //鑾峰彇activity
   let IntentFilter: any = plus.android.importClass("android.content.IntentFilter");
   filter.value = new IntentFilter();
@@ -58,67 +30,36 @@
       var banMaSacanInfo = intent.getStringExtra(
         "com.motorolasolutions.emdk.datawedge.data_string"
       );
-      if (!banMaSacanInfo) {
-        banMaSacanInfo =
-          intent.getStringExtra("com.symbol.datawedge.data_string") ||
-          intent.getStringExtra("data");
-      }
       // callback(intent.getStringExtra('com.motorolasolutions.emdk.datawedge.data_string'));
       console.log("鏂戦┈鎵弿缁撴灉", banMaSacanInfo);
       // 浼犲叆鎺ユ敹鍒扮殑鍙傛暟
-      isWaitingScanResult.value = false;
-      isScanning.value = false;
-      clearScanTimeout();
-      if (!banMaSacanInfo) {
-        console.warn("鎵弿杩斿洖涓虹┖");
-      }
-      queryCode(banMaSacanInfo || "");
+      queryCode(banMaSacanInfo);
     },
   });
-  isInitialized.value = true;
 };
 
 // 寮�鍚箍鎾�
 const startScan = () => {
   //  #ifdef APP
-  if (!isInitialized.value) {
-    initScan();
-  }
-  if (!main.value || !receiver.value || !filter.value || isReceiverRegistered.value) return;
   console.log("startScan,寮�鍚箍鎾帴鏀�");
-  try {
-    main.value.registerReceiver(receiver.value, filter.value);
-    isReceiverRegistered.value = true;
-  } catch (error) {
-    console.error("startScan澶辫触", error);
-  }
+  main.value.registerReceiver(receiver.value, filter.value);
   // #endif
 };
 // 鍏抽棴骞挎挱
 const stopScan = () => {
   //  #ifdef APP
-  if (!main.value || !receiver.value || !isReceiverRegistered.value) return;
   console.log("stopScan缁撴潫");
-  try {
-    main.value.unregisterReceiver(receiver.value);
-  } catch (error) {
-    console.error("stopScan澶辫触", error);
-  } finally {
-    isReceiverRegistered.value = false;
-  }
+  main.value.unregisterReceiver(receiver.value);
   // #endif
 };
 
 const queryCode = (code: any) => {
   //  #ifdef APP
-  if (codeQueryTag.value) {
-    console.warn("鐭椂闂村唴閲嶅鍥炶皟琚嫤鎴�");
-    return false;
-  }
+  if (codeQueryTag.value) return false;
   codeQueryTag.value = true;
   setTimeout(function () {
     codeQueryTag.value = false;
-  }, 300);
+  }, 150);
   // console.log('-****--鎵爜code锛� ', code);
   let data = code;
   uni.$emit(props.emitName, {
@@ -129,21 +70,14 @@
 
 const triggerScan = () => {
   console.log("瑙﹀彂鎵弿");
-  if (isScanning.value) {
-    console.warn("宸叉湁鎵弿杩涜涓紝蹇界暐鏈瑙﹀彂");
-    return;
-  }
-  isScanning.value = true;
-
-  if (!main.value) return;
-
-  startScanTimeoutWatch();
-
-  const Intent = plus.android.importClass("android.content.Intent");
-  const intent = new Intent();
+  // 鑾峰彇Android鎰忓浘绫�
+  let Intent = plus.android.importClass("android.content.Intent");
+  // 瀹炰緥鍖栨剰鍥�
+  let intent = new Intent();
+  // 瀹氫箟鎰忓浘锛岀敱鍘傚晢鎻愪緵(姝ゅ璁剧疆涓轰笢澶х殑锛� 寮�濮嬫壂鎻忓箍鎾璫om.scan.onStartScan锛屽搴旂殑鍋滄鎵弿骞挎挱涓篶om.scan.onEndScan)
   intent.setAction("com.symbol.datawedge.api.ACTION");
   intent.putExtra("com.symbol.datawedge.api.SOFT_SCAN_TRIGGER", "START_SCANNING");
-
+  // 骞挎挱杩欎釜鎰忓浘
   main.value.sendBroadcast(intent);
 };
 
@@ -155,19 +89,11 @@
   startScan();
 });
 
-onShow(() => {
-  startScan();
-});
-
 onHide(() => {
-  isWaitingScanResult.value = false;
-  clearScanTimeout();
   stopScan();
 });
 
 onUnmounted(() => {
-  isWaitingScanResult.value = false;
-  clearScanTimeout();
   stopScan();
 });
 

--
Gitblit v1.9.3