#
whycq
2024-04-22 3e49cb378dacaae5cc41d75dbf3040bd085bf225
pages/phyz/stationManage/pickAgain.vue
@@ -1,7 +1,45 @@
<template>
   <view>
      <view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index">
         <view class="list-left">
            <view class="detl-threeCode">{{orderDetl.threeCode}}</view>
            <view>主单号:{{orderDetl.orderNo}}</view>
            <view>编号:{{orderDetl.matnr}}</view>
            <view>名称:{{orderDetl.maktx}}</view>
            <view>库存数量:{{orderDetl.anfme}}</view>
            <view>订单可出数量:{{orderDetl.stock}}</view>
            <view>入库数量:{{orderDetl.pakinQty}}</view>
         </view>
         <view class="list-right" @click="addItem(index)">
            <uni-icons type="folder-add" size="25"  color="#fff"></uni-icons>
         </view>
      </view>
      <!-- 弹窗 -->
      <view>
         <uni-popup ref="addItem" type="dialog">
            <view class="popup">
               <!-- 标题 -->
               <view class="title">入库数量</view>
               <view class="popup-item">
                  <uni-number-box :value="count" :step='1' :max="9999999" color="#747474" @change="changeValue" />
               </view>
               <view class="btn">
                  <view class="btn-left" @click="addClose">取消</view>
                  <view class="btn-right" @click="addConfirm()">添加</view>
               </view>
            </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>
   </view>
</template>
@@ -10,7 +48,10 @@
   export default {
      data() {
         return {
            dataList: [],
            orderCarList: [],
            pickList: [],
            count: ''
         }
      },
      onShow() {
@@ -22,21 +63,44 @@
         // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
         eventChannel.on('item', function(data) {
            console.log(data);
            _this.pickList = data.wrkDetls
            _this.getLocDetl(data.item.sourceLocNo)
         })
      },
      methods: {
         getLocDetl() {
         getLocDetl(locNo) {
            let _this = this
            uni.request({
               url: `${_this.baseUrl}/agvMobile/query/locDetl/v1`,
               url: `${_this.baseUrl}/agv/locDetl/list/auth/v2`,
               header: { 'token': uni.getStorageSync('token') },
               data: {
                  curr: 1,
                  limit: 999,
                  loc_no: locNo
               },
               method: 'POST',
               method: 'GET',
               success(res) {
                  res = res.data
                  console.log(res);
                  if (res.code === 200) {
                     let enbleList = []
                     for (let k of res.data.records) {
                        for (let j of _this.pickList) {
                           if (j.matnr == k.matnr && j.threeCode == k.threeCode) {
                              break
                           } else {
                              if (k.stock == -1) {
                                 k['color'] = 'order-sts-end'
                              } else {
                                 k.stock = k.stock >= k.anfme ? k.anfme : k.stock
                                 k['color'] = 'order-sts-start'
                              }
                              enbleList.push(k)
                           }
                        }
                     }
                     _this.dataList = enbleList
                     
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
@@ -46,11 +110,153 @@
                  }
               }
            })
         }
         },
         // 已选拣料列表
         orderCar() {
         },
         // 添加入库商品至 待组托列表
         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
            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.count = 0
            this.$refs.addItem.close()
         },
         changeValue(value) {
            this.count = value
         },
      }
   }
</script>
<style>
   @import url('../../../static/css/common/order.css');
   .list-font-color {
      color: #fff;
      /* background-color: #33bb44; */
   }
   .order-sts-start {
      background-color: #3eb689;
   }
   .order-sts-working {
      background-color: #ff9d46;
   }
   .order-sts-end {
      background-color: #ff7356;
   }
   .detl-threeCode {
      font-size: 28px;
      font-weight: bold;
   }
   .shop-car {
      position: fixed;
      left: 22rpx;
      bottom: 150rpx;
      background-color: #2299ff;
      width: 260rpx;
      height: 90rpx;
      display: flex;
      align-items: center;
      box-shadow: 0 0 10px 5px rgba(0, 0, 0, .6);
      border-radius: 10rpx;
      color: #fff;
      font-size: 28px;
      font-weight: bold;
   }
   .car-left {
      padding: 16rpx;
      flex: 5;
   }
   .car-right {
      flex: 4;
   }
   .popup {
      width: 80vw;
      min-height: 100rpx;
      background-color: #FFF;
      border-radius: 25rpx;
      position: relative;
   }
   .title {
      height: 100rpx;
      line-height: 100rpx;
      width: 100%;
      color: #606266;
      text-align: center;
      font-size: 16px;
   }
   .popup-item {
      height: 80rpx;
      line-height: 80rpx;
      display: flex;
      align-items: center;
      justify-content: center;
   }
   .popup-item-left {
      width: 16vw;
      padding-right: 20rpx;
      text-align: right;
      color: #606266;
   }
   .popup-item-right {
      display: flex;
      align-items: center;
      width: 50vw;
      height: 50rpx;
      padding: 2px 5px;
      border: 1px solid #E4E7ED;
      border-radius: 5rpx;
   }
   .popup-item-right input{
      color: #606266;
   }
   .btn {
      display: flex;
      height: 90rpx;
      margin-top: 20rpx;
      border-top: 1px solid #DCDFE6;
      justify-content: center;
      align-items: center;
   }
   .btn-left {
      display: flex;
      flex: 1;
      height: 100%;
      justify-content: center;
      align-items: center;
      color: #606266;
      border-right: 1px solid #DCDFE6;
   }
   .btn-right {
      display: flex;
      flex: 1;
      justify-content: center;
      align-items: center;
      color: #409EFF;
   }
</style>