#
whycq
2024-05-30 0e78823dd6ee8de811246e687298b17b28cd80c7
pages/phyz/stationManage/pickAgain.vue
@@ -8,21 +8,24 @@
            <view>名称:{{orderDetl.maktx}}</view>
            <view>库存数量:{{orderDetl.anfme}}</view>
            <view>订单可出数量:{{orderDetl.stock}}</view>
            <view>入库数量:{{orderDetl.pakinQty}}</view>
            <view>已拣数量:{{orderDetl.pickedAnfme}}</view>
            <view>拣料数量:{{orderDetl.count}}</view>
         </view>
         <view class="list-right" @click="addItem(index)">
            <uni-icons type="folder-add" size="25"  color="#fff"></uni-icons>
         </view>
      </view>
      <!-- 垫高 -->
      <view style="height: 100rpx;text-align: center;color: #b9b9b9;"></view>
      
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="addItem" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">入库数量</view>
               <view class="title">拣料数量</view>
               <view class="popup-item">
                  <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" />
                  <uni-number-box :value="count" :step='1' :max="maxCount" color="#747474" @change="changeValue" />
               </view>
               <view class="btn">
                  <view class="btn-left" @click="addClose">取消</view>
@@ -31,15 +34,9 @@
            </view>
         </uni-popup>
      </view>
      <view class="shop-car" @click="orderCar()">
         <view class="car-left">
            <uni-icons type="cart-filled" size="35"  color="#fff"></uni-icons>
         </view>
         <view class="car-right">
            <text>{{orderCarList.length}}</text>
         </view>
      <!-- 底部操作按钮 -->
      <view class="buttom">
         <button size="mini" type="primary" @click="confirmPick('warn')">确认拣料</button>
      </view>
   </view>
</template>
@@ -51,7 +48,12 @@
            dataList: [],
            orderCarList: [],
            pickList: [],
            count: ''
            index: 0,
            count: 0,
            maxCount: 0,
            wrkNo: '',
            locNo: '',
            pickedAnfme: 0
         }
      },
      onShow() {
@@ -64,6 +66,8 @@
         eventChannel.on('item', function(data) {
            console.log(data);
            _this.pickList = data.wrkDetls
            _this.wrkNo = data.wrkDetls[0].wrkNo
            _this.locNo = data.item.sourceLocNo
            _this.getLocDetl(data.item.sourceLocNo)
         })
      },
@@ -83,10 +87,14 @@
                  res = res.data
                  console.log(res);
                  if (res.code === 200) {
                     let enbleList = []
                     _this.chosed(_this.pickList,res.data.records)
                     return
                     let enbleList = [], isfl;
                     for (let k of res.data.records) {
                        isfl = false;
                        for (let j of _this.pickList) {
                           if (j.matnr == k.matnr && j.threeCode == k.threeCode) {
                              isfl = true;
                              break
                           } else {
                              if (k.stock == -1) {
@@ -95,8 +103,12 @@
                                 k.stock = k.stock >= k.anfme ? k.anfme : k.stock
                                 k['color'] = 'order-sts-start'
                              }
                              enbleList.push(k)
                              k['count'] = 0
                           }
                        }
                        if (!isfl) {
                           enbleList.push(k)
                        }
                        
                     }
@@ -112,43 +124,96 @@
            })
         },
         // 已选拣料列表
         orderCar() {
         chosed(wrkDetls,locDetls) {
            let isfl = false, enbleList = []
            for (let locDetl of locDetls) {
               locDetl['color'] = 'order-sts-start'
               locDetl['pickedAnfme'] = 0
               locDetl['count'] = 0
               for (let wrkDetl of wrkDetls) {
                  if (wrkDetl.threeCode == locDetl.threeCode && wrkDetl.matnr == locDetl.matnr) {
                     locDetl['pickedAnfme'] = wrkDetl.anfme
                     if (locDetl.stock == -1) {
                        locDetl.stock = 0
                     }
                     if (wrkDetl.anfme < locDetl.anfme) {
                        locDetl['color'] = 'order-sts-working'
                        locDetl['pickedAnfme'] = wrkDetl.anfme
                        locDetl['count'] = 0
                     } else {
                        locDetl['color'] = 'order-sts-end'
                     }
                     break
                  }
               }
            }
            this.dataList = locDetls
         },
         // 添加入库商品至 待组托列表
         addItem(index) {
            // 判断添加的商品是否和已经添加的重复
            let dataList = this.dataList
            for (let k of this.orderCarList) {
               if (k.orderNo == dataList[index].orderNo
                  && k.threeCode == dataList[index].threeCode
                  && k.matnr == dataList[index].matnr) {
                     uni.showToast({ title: '请勿重复添加商品!', icon: "none", position: 'top' })
                     return
               }
            }
            this.index = index
            let orderCount = this.dataList[index].stock
            let locCount = this.dataList[index].anfme
            let pickedAnfme = this.dataList[index].pickedAnfme
            // 预计最大要出库
            let ftCount = pickedAnfme + orderCount
            if (orderCount > locCount) {
               this.maxCount = locCount - pickedAnfme
            } else {
               if (ftCount > locCount) {
                  this.maxCount = locCount -pickedAnfme
               } else {
                  this.maxCount = orderCount
               }
            }
            this.$refs.addItem.open()
         },
         addClose() {
            this.$refs.addItem.close()
            this.count = 0
         },
         addConfirm() {
            // if (this.count == 0) {
            //    uni.showToast({ title: '入库数量不合法!', icon: "none", position: 'top' })
            //    return
            // }
            this.dataList[this.index]['used'] = true
            this.dataList[this.index]['pakinQty'] = this.count
            this.orderCarList.push(this.dataList[this.index])
            this.index = 0
            this.dataList[this.index].count = this.count
            this.count = 0
            this.$refs.addItem.close()
         },
         changeValue(value) {
            this.count = value
         },
         // 确认再次拣料
         confirmPick() {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agvMobile/pick/again/auth`,
               header: { 'token': uni.getStorageSync('token') },
               data: JSON.stringify({
                  wrkNo: _this.wrkNo,
                  locNo: _this.locNo,
                  picks: _this.dataList
               }),
               method: 'POST',
               success(res) {
                  res = res.data
                  console.log(res);
                  if  (res.code === 200) {
                     _this.getOpenerEventChannel().emit('acceptDataFromOpenedPage', {data: 1});
                     setTimeout(()=>{
                        uni.navigateBack()
                     },700)
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                  } else {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                  }
               }
            })
         }
      }
   }
</script>