diff --git a/src/pages-erp/purchase-in/scan/index.vue b/src/pages-erp/purchase-in/scan/index.vue index bfaf896..47d39c3 100644 --- a/src/pages-erp/purchase-in/scan/index.vue +++ b/src/pages-erp/purchase-in/scan/index.vue @@ -24,6 +24,7 @@ v-model="scanCode" placeholder="请扫描采购订单号" :loading="scanLoading" + :auto-focus="false" :show-confirm-button="true" camera-text="拍单号" @submit="handleOrderScanSubmit" @@ -131,7 +132,7 @@ :focus="activeScanField === 'batch'" placeholder="请输入或扫描批次号" confirm-type="next" - @focus="setActiveScanField('batch')" + @focus="handleScanFieldFocus('batch')" @confirm="handleBatchConfirm" > @@ -349,6 +350,7 @@ const items = ref([]) const feedback = ref() const lastScannedTargetKey = ref('') const activeScanField = ref<'batch' | 'location'>('batch') +const suppressKeyboardField = ref<'batch' | 'location' | ''>('') const hasSelectedOrder = computed(() => Boolean(selectedOrder.value?.id)) const currentWarehouse = computed(() => @@ -453,7 +455,27 @@ function setActiveScanField(field: 'batch' | 'location') { activeScanField.value = field } +function hideSoftKeyboardForAutoFocus() { + nextTick(() => { + uni.hideKeyboard() + setTimeout(() => { + uni.hideKeyboard() + }, 80) + }) +} + +function handleScanFieldFocus(field: 'batch' | 'location') { + setActiveScanField(field) + if (suppressKeyboardField.value !== field) { + return + } + + suppressKeyboardField.value = '' + hideSoftKeyboardForAutoFocus() +} + async function focusScanField(field: 'batch' | 'location') { + suppressKeyboardField.value = field activeScanField.value = field === 'batch' ? 'location' : 'batch' await nextTick() activeScanField.value = field diff --git a/src/pages-erp/stock-in/scan/index.vue b/src/pages-erp/stock-in/scan/index.vue index a3292c0..9f265d3 100644 --- a/src/pages-erp/stock-in/scan/index.vue +++ b/src/pages-erp/stock-in/scan/index.vue @@ -37,6 +37,7 @@ v-model="scanCode" placeholder="请先选择仓库,再扫描产品条码" :loading="scanLoading" + :auto-focus="false" @submit="handleScanSubmit" @camera-scan="handleCameraScan" /> diff --git a/src/pages-erp/stock-out/scan/index.vue b/src/pages-erp/stock-out/scan/index.vue index b3d57ab..826463b 100644 --- a/src/pages-erp/stock-out/scan/index.vue +++ b/src/pages-erp/stock-out/scan/index.vue @@ -37,6 +37,7 @@ v-model="scanCode" placeholder="请先选择仓库,再扫描产品条码" :loading="scanLoading" + :auto-focus="false" @submit="handleScanSubmit" @camera-scan="handleCameraScan" />