Переглянути джерело

海康-上架扫描库位

zhaohuanhuan 4 місяців тому
батько
коміт
5a3224b97d
1 змінених файлів з 31 додано та 7 видалено
  1. 31 7
      src/views/haikang/putaway/putaway/index.vue

+ 31 - 7
src/views/haikang/putaway/putaway/index.vue

@@ -29,11 +29,15 @@
               </template>
             </van-field>
             <van-field v-model="searchLocation" placeholder="请扫描库位" label="上架库位:" left-icon="" readonly :class="[scanType===4?'search-input-barcode':'']"
-                       autocomplete="off" @click="setBarcodeInput(searchLocation,4)"></van-field>
+                       autocomplete="off" @click="setBarcodeInput(searchLocation,4)">
+              <template #button>
+                <div v-if="recommendedLocation" style="color:#666;font-size: 12px"><span style="font-size: 10px">推荐:</span>{{ recommendedLocation }}</div>
+              </template>
+            </van-field>
           </div>
         </div>
         <div class="putaway-button">
-          <van-button type="primary" size="small" block  @click="setPutaway(2)" >提交上架</van-button>
+          <van-button type="primary" size="small" block :disabled="searchLocation!=recommendedLocation || searchLocation=='' "   @click="setPutaway(2)" >提交上架</van-button>
         </div>
         <div class="putaway-box" v-if="barcodeActive.bin">
           <div><box ref="boxRef" :box="{name:workBinNo,category:barcodeActive.gridCount}"></box></div>
@@ -112,6 +116,8 @@ const count = ref('')
 const countRef=ref(null)
 //上架库位
 const searchLocation=ref('')
+//推荐库位
+const recommendedLocation=ref('')
 const locationList = (data) => {
   return data.reduce((acc, item) => {
     const key = item.boxCode
@@ -198,6 +204,7 @@ const _handlerScan = (code) => {
       searchBarcode.value = ''
       count.value=''
       searchLocation.value=''
+      recommendedLocation.value=''
       tips.value = err.message
       barcodeActive.value={}
       showNotify({ type: 'danger', duration: 3000, message:  err.message })
@@ -216,27 +223,39 @@ const _handlerScan = (code) => {
         })
         locationScanBarcodeBinList.value = [...new Set(locationScanBarcodeBinList.value)]
         barcodeActive.value =matchedBarcodeItem.value[0]
-        searchLocation.value=barcodeActive.value.locationId
+        recommendedLocation.value=barcodeActive.value.locationId
+
         setTimeout(() => {
           boxRef.value?.clearHigh()
           boxRef.value?.high(barcodeActive.value.gridNum || 1)
         }, 300)
-        scanType.value = 3
-        count.value=1
+        scanType.value = 4
+        // count.value=1
         // countRef.value?.focus()
-        tips.value = `请输入上架数量`
+        tips.value = `请扫描上架库位`
       scanSuccess()
     } else {
       count.value=''
       searchBarcode.value = ''
       searchLocation.value=''
+      recommendedLocation.value=''
       barcodeActive.value={}
       tips.value = `${code}-商品条码不匹配,请重新扫描`
       showNotify({ type: 'danger', duration: 3000, message: `${code}-商品条码不匹配,请重新扫描` })
       scanError()
     }
   }else if(scanType.value==4){
-    searchLocation.value = code
+    if(barcodeToUpperCase(code)!=barcodeToUpperCase(recommendedLocation.value)){
+      tips.value = `${code}-扫描库位与推荐库位不一致,请重新扫描`
+      showNotify({ type: 'danger', duration: 3000, message: `${code}-扫描库位与推荐库位不一致,请重新扫描` })
+      scanError()
+      return
+    }
+    searchLocation.value = barcodeToUpperCase(code)
+    scanType.value = 3
+    count.value=1
+    // countRef.value?.focus()
+    tips.value = `请输入上架数量`
   }
 }
 
@@ -312,6 +331,7 @@ const setPutaway=async (type)=>{
         barcodeActive.value=''
         searchBarcode.value=''
         searchLocation.value=''
+        recommendedLocation.value=''
         count.value=''
         scanType.value = 2
         tips.value = `请继续扫描商品条码`
@@ -350,6 +370,7 @@ const setPutaway=async (type)=>{
           workBinNo.value=''
           searchBarcode.value=''
           searchLocation.value=''
+          recommendedLocation.value=''
           scanType.value = 1
         }).catch(err=>{
           closeLoading()
@@ -377,6 +398,7 @@ const setGoBack=async (item)=>{
         workBinNo.value=''
         searchBarcode.value=''
         searchLocation.value=''
+        recommendedLocation.value=''
         scanType.value = 1
         tips.value = `请扫描料箱编号`
         showNotify({ type: 'success', duration: 3000, message: `请扫描下一个料箱编号` })
@@ -392,6 +414,7 @@ const setGoBack=async (item)=>{
         workBinNo.value=''
         searchBarcode.value=''
         searchLocation.value=''
+        recommendedLocation.value=''
         scanType.value = 1
         tips.value = `请扫描料箱编号`
         scanError()
@@ -403,6 +426,7 @@ const setGoBack=async (item)=>{
         workBinNo.value=''
         searchBarcode.value=''
         searchLocation.value=''
+        recommendedLocation.value=''
         scanType.value = 1
         tips.value = `料箱调取成功,请继续扫描料箱编号`
         showNotify({ type: 'success', duration: 3000, message: `料箱调取成功,请继续扫描料箱编号` })