/** * 扫码模式配置 Store 模块 * 管理 安卓设备 / IDATA PDA / 带扫码PDA 三种模式 * 默认:uniapp(安卓设备) */ export default { namespaced: true, state: { // 扫码模式:'uniapp' | 'idata' | 'android' scanMode: 'uniapp' }, mutations: { SET_SCAN_MODE(state, mode) { state.scanMode = mode } }, actions: { /** * 初始化扫码模式(从本地存储恢复,默认 uniapp) */ initScanMode({ commit }) { try { const saved = uni.getStorageSync('scanMode') if (saved && ['uniapp', 'idata', 'android'].includes(saved)) { commit('SET_SCAN_MODE', saved) console.log('[Scan Store] 恢复扫码模式:', saved) } else { commit('SET_SCAN_MODE', 'uniapp') uni.setStorageSync('scanMode', 'uniapp') } } catch (e) { console.error('[Scan Store] 初始化失败:', e) commit('SET_SCAN_MODE', 'uniapp') } }, /** * 设置扫码模式并持久化 * @param {string} mode - 'uniapp' | 'idata' | 'android' */ setScanMode({ commit }, mode) { if (!['uniapp', 'idata', 'android'].includes(mode)) { console.error('[Scan Store] 无效的模式:', mode) return } commit('SET_SCAN_MODE', mode) uni.setStorageSync('scanMode', mode) console.log('[Scan Store] 扫码模式已切换为:', mode) } }, getters: { scanMode: state => state.scanMode, isUniapp: state => state.scanMode === 'uniapp', isIdata: state => state.scanMode === 'idata', isAndroid: state => state.scanMode === 'android' } }