Преглед на файлове

无法获取扫码值问题

yangg преди 1 година
родител
ревизия
6fba759b6a

BIN
src/assets/images/JP.png


+ 4 - 2
src/views/InoutStorage/inStorage.vue

@@ -37,10 +37,10 @@
             width="90%" style="height: 200px" :before-close="handleClose">
             <el-form :model="snCodeForm" label-width="auto" style="max-width: 600px">
                 <el-form-item label="SKU">
-                    <el-input v-model="snCodeForm.bar_code" ref="inputRef" inputmode="none" @keyup.enter="toSearch()" />
+                    <el-input v-model="snCodeForm.bar_code" ref="inputRef" clearable :inputmode="inputmode" @keyup.enter="toSearch()" />
                 </el-form-item>
                 <el-form-item label="序列号">
-                    <el-input v-model="snCodeForm.sn_code" ref="snInputRef" inputmode="none"
+                    <el-input v-model="snCodeForm.sn_code" clearable ref="snInputRef" inputmode="none"
                         @keyup.enter="toSnCode()" />
                 </el-form-item>
             </el-form>
@@ -73,6 +73,7 @@ const appointment_time = ref('')
 const defaultTime = new Date(2000, 1, 1, 12, 0, 0)
 let dialogVisible = ref(false)
 const tableData = ref([])
+let inputmode = ref('text')
 let barcodeValue = ref('')
 const router = useRouter();
 const route = useRoute()
@@ -216,6 +217,7 @@ const scanCode = () => {
                 setTimeout(() => {
                     if (inputRef.value) {
                         inputRef.value.select();
+                        inputmode.value='none'
                     }
                 }, 100);
             } catch (error) {

+ 4 - 2
src/views/InoutStorage/outStorage.vue

@@ -44,10 +44,10 @@
             width="90%" style="height: 200px" :before-close="handleClose">
             <el-form :model="snCodeForm" label-width="auto" style="max-width: 600px">
                 <el-form-item label="SKU">
-                    <el-input v-model="snCodeForm.bar_code" ref="inputRef" inputmode="none" @keyup.enter="toSearch()" />
+                    <el-input v-model="snCodeForm.bar_code" ref="inputRef" clearable :inputmode="inputmode" @keyup.enter="toSearch()" />
                 </el-form-item>
                 <el-form-item label="序列号">
-                    <el-input v-model="snCodeForm.sn_code" ref="snInputRef" inputmode="none"
+                    <el-input v-model="snCodeForm.sn_code" ref="snInputRef" clearable inputmode="none"
                         @keyup.enter="toSnCode()" />
                 </el-form-item>
             </el-form>
@@ -80,6 +80,7 @@ const appointment_time = ref('')
 const defaultTime = new Date(2000, 1, 1, 12, 0, 0)
 let dialogVisible = ref(false)
 const tableData = ref([])
+let inputmode = ref('text')
 let barcodeValue = ref('')
 const router = useRouter();
 const route = useRoute()
@@ -223,6 +224,7 @@ const scanCode = () => {
                 setTimeout(() => {
                     if (inputRef.value) {
                         inputRef.value.select();
+                        inputmode.value='none'
                     }
                 }, 100);
             } catch (error) {

+ 4 - 2
src/views/Inventory/addInventory.vue

@@ -40,10 +40,10 @@
             width="90%" style="height: 200px" :before-close="handleClose">
             <el-form :model="snCodeForm" label-width="auto" style="max-width: 600px">
                 <el-form-item label="SKU">
-                    <el-input v-model="snCodeForm.bar_code" ref="inputRef" inputmode="none" @keyup.enter="toSearch()" />
+                    <el-input v-model="snCodeForm.bar_code" ref="inputRef" clearable :inputmode="inputmode" @keyup.enter="toSearch()" />
                 </el-form-item>
                 <el-form-item label="序列号">
-                    <el-input v-model="snCodeForm.sn_code" ref="snInputRef" inputmode="none"
+                    <el-input v-model="snCodeForm.sn_code" ref="snInputRef" clearable inputmode="none"
                         @keyup.enter="toSnCode()" />
                 </el-form-item>
             </el-form>
@@ -76,6 +76,7 @@ const appointment_time = ref('')
 const defaultTime = new Date()
 let dialogVisible = ref(false)
 const tableData = ref([])
+let inputmode = ref('text')
 let barcodeValue = ref('')
 const router = useRouter();
 const route = useRoute()
@@ -221,6 +222,7 @@ const scanCode = () => {
                 setTimeout(() => {
                     if (inputRef.value) {
                         inputRef.value.select();
+                        inputmode.value='none'
                     }
                 }, 100);
             } catch (error) {

+ 16 - 6
src/views/apps/shippingPage.vue

@@ -81,13 +81,12 @@
             width="90%" style="height: 200px" :before-close="handleClose">
             <el-form :model="snCodeForm" label-width="auto" style="max-width: 600px">
                 <el-form-item label="SKU">
-                    <el-input v-model="snCodeForm.bar_code" :inputmode="inputmode" ref="inputRef"
-                        @keyup.enter="toSearch()">
-                        <template #append> <el-button @click="getInfo">搜索</el-button> </template>
+                    <el-input class="hidden-input" v-model="snCodeForm.bar_code" @keyup.enter="toSearch()" clearable :inputmode="inputmode"   ref="inputRef">
+                        <template #append> <img src="../../assets/images/JP.png" @click="inputmode='text'" class="w-8 h-8" /> </template>
                     </el-input>
                 </el-form-item>
                 <el-form-item label="序列号">
-                    <el-input v-model="snCodeForm.sn_code" inputmode="none" ref="snInputRef"
+                    <el-input v-model="snCodeForm.sn_code" clearable inputmode="none" ref="snInputRef"
                         @keyup.enter="toSnCode()" />
                 </el-form-item>
             </el-form>
@@ -130,7 +129,7 @@ const defaultTime = new Date(2000, 1, 1, 12, 0, 0)
 let dialogVisible = ref(false)
 const tableData = ref([])
 let barcodeValue = ref('')
-let inputmode = ref('none')
+let inputmode = ref('text')
 const router = useRouter();
 const route = useRoute()
 const activeTab = ref('product-info');
@@ -227,6 +226,10 @@ const getInfo = () => {
 const toSearch = async () => {
     activeTab.value = 'product-info'
     try {
+        if (!snCodeForm.bar_code) {
+            console.log('扫码枪输入为空,忽略此次事件');
+            return;
+        }
         const res: any = await orderApi.getProduct(
             shippingForm.value.warehouse_id,
             snCodeForm.bar_code.replace(/\s+/g, '')
@@ -265,6 +268,7 @@ const toSearch = async () => {
                 snInputRef.value.focus();
             });
         } else {
+            if (shippingForm.value.order_item_vos[index.value].num >= shippingForm.value.order_item_vos[index.value].orderNum) return ElMessage.warning('录入完成,请录入下一条!')
             shippingForm.value.order_item_vos[index.value].num += 1
             snCodeForm.bar_code = ''
             //dialogVisible.value = false;
@@ -304,7 +308,8 @@ const toSnCode = async () => {
         //shippingForm.value.order_item_vos[index.value].id = shippingForm.value.order_item_vos[indexs].id;
         if (shippingForm.value.order_item_vos[index.value].num === shippingForm.value.order_item_vos[index.value].orderNum) {
             snCodeForm.bar_code = "";
-            dialogVisible.value = false;
+            return ElMessage.warning('录入完成,请录入下一条!')
+            /*   dialogVisible.value = false; */
         } else {
             snCodeForm.bar_code = "";
             nextTick(() => {
@@ -338,6 +343,7 @@ const scanCode = () => {
                         // 首先,让输入框失去焦点,这会阻止键盘的唤起
                         //inputRef.value.removeAttribute('readonly');
                         inputRef.value.focus();
+                        inputmode.value='none'
                     }
                 }, 100);
             } catch (error) {
@@ -574,4 +580,8 @@ const getInforList = async () => {
 .p-4 {
     padding: 1rem;
 }
+.hidden-input .el-input__inner {
+    width: 0;
+    padding: 0;
+}
 </style>