chen.llin
10 天以前 b4a14804f37d0d715af1f00ccb9e1621d238cc58
common/rfid-input-helper.js
@@ -14,6 +14,7 @@
/**
 * 初始化RFID助手(只初始化插件引用和事件监听,不初始化RFID模块)
 * RFID模块由App.vue全局初始化,这里只负责监听按键和读取标签
 * 注意:即使初始化失败,也不抛出异常,确保不影响页面使用
 */
function initRFIDForInput() {
   try {
@@ -22,28 +23,34 @@
      modal = uni.requireNativePlugin('modal');
      
      if (!uhfModel) {
         console.warn('[RFIDInputHelper] RFID插件未找到');
         console.warn('[RFIDInputHelper] ⚠ RFID插件未找到,RFID扫描功能不可用,但页面可正常使用');
         return false;
      }
      
      // 监听上电事件(监听全局上电状态,RFID模块由App.vue初始化)
      globalEvent.addEventListener('POWEREvent', function(e) {
         console.log('[RFIDInputHelper] POWEREvent:', JSON.stringify(e));
         if (e && e.status === 'connected') {
            isPowerOn = true;
            console.log('[RFIDInputHelper] ✓ RFID模块已上电');
         } else {
            isPowerOn = false;
            console.log('[RFIDInputHelper] ✗ RFID模块未上电');
         }
      });
      try {
         globalEvent.addEventListener('POWEREvent', function(e) {
            console.log('[RFIDInputHelper] POWEREvent:', JSON.stringify(e));
            if (e && e.status === 'connected') {
               isPowerOn = true;
               console.log('[RFIDInputHelper] ✓ RFID模块已上电');
            } else {
               isPowerOn = false;
               console.log('[RFIDInputHelper] ✗ RFID模块未上电');
            }
         });
      } catch (eventError) {
         console.warn('[RFIDInputHelper] ⚠ 添加POWEREvent监听失败:', eventError);
         console.warn('[RFIDInputHelper] ⚠ RFID扫描功能可能不可用,但页面可正常使用');
      }
      
      // 注意:RFID模块由App.vue在onLaunch时全局初始化
      // 这里只负责监听按键和读取标签,不初始化RFID模块
      
      return true;
   } catch (error) {
      console.error('[RFIDInputHelper] 初始化失败:', error);
      console.error('[RFIDInputHelper] ⚠ 初始化失败:', error);
      console.warn('[RFIDInputHelper] ⚠ RFID扫描功能不可用,但页面可正常使用');
      return false;
   }
}
@@ -128,25 +135,46 @@
 * 读取RFID标签(单标签读,无过滤)
 */
function readRFIDTag() {
   if (!uhfModel) {
      // 如果模块未初始化,尝试初始化
      uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule");
   try {
      if (!uhfModel) {
         console.warn('[RFIDInputHelper] RFID模块未找到');
         modal.toast({
            message: 'RFID模块未找到',
            duration: 1.5
         });
         // 如果模块未初始化,尝试初始化
         try {
            uhfModel = uni.requireNativePlugin("iData-UHFPlugin-UHFModule");
         } catch (e) {
            console.warn('[RFIDInputHelper] ⚠ RFID模块未找到:', e);
         }
         if (!uhfModel) {
            console.warn('[RFIDInputHelper] RFID模块未找到');
            if (modal) {
               modal.toast({
                  message: 'RFID模块未找到',
                  duration: 1.5
               });
            }
            return;
         }
      }
      // 检查RFID是否已上电(RFID模块由App.vue全局初始化)
      if (!isPowerOn) {
         console.warn('[RFIDInputHelper] RFID未上电,无法扫描');
         if (modal) {
            modal.toast({
               message: 'RFID正在上电,请稍候...',
               duration: 1.5
            });
         }
         return;
      }
   }
   // 检查RFID是否已上电(RFID模块由App.vue全局初始化)
   if (!isPowerOn) {
      modal.toast({
         message: 'RFID正在上电,请稍候...',
         duration: 1.5
      });
   } catch (error) {
      console.error('[RFIDInputHelper] ⚠ 读取RFID标签前检查失败:', error);
      console.warn('[RFIDInputHelper] ⚠ RFID扫描功能不可用,但页面可正常使用');
      if (modal) {
         modal.toast({
            message: 'RFID扫描功能不可用',
            duration: 1.5
         });
      }
      return;
   }