zhangc
2025-03-11 cd8d6ca53a2245252917f7c938299af9761e4423
pages/phyz/orderOut/bcpOrderOutSelect.vue
@@ -1,8 +1,8 @@
<template>
   <view>
      <view class="code">
         <uni-search-bar  v-model="searchValue1"
            maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clear" placeholder="输入 / 扫描 订单号">
         <uni-search-bar v-model="searchValue1" maxlength="500" ancel="cancel" @confirm="searchValueInput1()"
            @clear="clear" placeholder="输入 / 扫描 订单号">
         </uni-search-bar>
         <view class="code-title">
            <view></view>
@@ -10,7 +10,7 @@
            <view style="width: 100rpx;margin: 16rpx 0;" @click="filter()">筛选</view>
         </view>
      </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>
@@ -21,19 +21,19 @@
            <view>订单数量:{{orderDetl.anfme}}</view>
            <view>库存数量:{{orderDetl.stock}}</view>
            <view>已出数量:{{orderDetl.qty}}</view>
            <view v-if="orderDetl.workNum">正在作业数量:{{orderDetl.workNum}}</view>
            <view>正在作业数量:{{orderDetl.workNum||orderDetl.workNum==0?orderDetl.workNum:""}}</view>
         </view>
         <view class="list-right" @click="goToLocDetl(orderDetl)">
            <uni-icons type="right" size="25"  color="#fff"></uni-icons>
            <uni-icons type="right" size="25" color="#fff"></uni-icons>
         </view>
      </view>
      <!-- 垫高 -->
      <view style="height: 340rpx;text-align: center;color: #b9b9b9;">
         - 已经到底了 -
      </view>
      <!-- 筛选弹窗 -->
      <view>
         <uni-popup ref="filter" type="dialog">
@@ -109,18 +109,18 @@
      },
      onReachBottom() {
         this.status = 'more';
         this.getOrderDetlList(this.searchValue1,10);
         this.getOrderDetlList(this.searchValue1, 10);
      },
      onShow() {
         this.baseUrl = uni.getStorageSync('baseUrl');
         this.token = uni.getStorageSync('token');
         this.searchValue1 = uni.getStorageSync('threeCodeOut1');
         this.searchValue2 = uni.getStorageSync('threeCodeOut2');
         this.getOrderDetlList(this.searchValue1,10)
         this.getOrderDetlList(this.searchValue1, 10)
      },
      methods: {
         getOrderDetlList(threeCode,limit) {
            this.wrkingData = []
         getOrderDetlList(threeCode, limit) {
            this.wrkingData= []
            this.get()
            uni.showLoading({})
            let _this = this
@@ -129,7 +129,9 @@
            _this.data.limit = limit
            uni.request({
               url: `${_this.baseUrl}/orderDetl/pakout/list/authV4`,
               header: {'token': uni.getStorageSync('token')},
               header: {
                  'token': uni.getStorageSync('token')
               },
               data: _this.data,
               method: 'GET',
               success(res) {
@@ -146,48 +148,84 @@
                        }
                     }
                     let list = res.data.records
                     for (let item of list) {
                        for (let k of _this.wrkingData) {
                           if (k.matnr == item.matnr && k.orderNo == item.orderNo && k.threeCode == item.threeCode) {
                              item['workNum'] = k.anfme
                     if (_this.wrkingData&&_this.wrkingData.length >0){
                        for (let item of list) {
                           for (let k of _this.wrkingData) {
                              if (k.matnr == item.matnr && k.orderNo == item.orderNo && k.threeCode == item
                                 .threeCode) {
                                 item['workNum'] = k.anfme
                              }
                           }
                        }
                     }
                     _this.dataList =  _this.dataList.concat(list);
                     _this.dataList = _this.dataList.concat(list);
                     _this.data.curr = _this.data.curr + 1
                     _this.total = res.data.total
                     _this.mask = false
                  } else if (res.code == 403) {
                     uni.showToast({ title: res.msg, icon: "error", position: 'top' })
                     setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
                     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' })
                     uni.showToast({
                        title: res.msg,
                        icon: "error",
                        position: 'top'
                     })
                  }
               }
            })
         },
         get() {
            let _this = this
            let data = {limit:9999,curr: 1}
            let data = {
               limit: 9999,
               curr: 1
            }
            uni.request({
               url: `${_this.baseUrl}/agv/wrkDetl/list/auth`,
               header: {'token': uni.getStorageSync('token')},
               url: `${_this.baseUrl}/orderDetl/pakout/workNum`,
               header: {
                  'token': uni.getStorageSync('token')
               },
               data: data,
               method: 'GET',
               success(res) {
                  var res = res.data
                  if (res.code === 200) {
                     const result = res.data.records.reduce((acc, curr) => {
                         const key = `${curr.matnr}-${curr.orderNo}-${curr.threeCode}`;
                         if (acc[key]) {
                             acc[key].anfme += curr.anfme;
                         } else {
                             acc[key] = { ...curr };
                         }
                         return acc;
                     const result = res.data.reduce((acc, curr) => {
                        const key = `${curr.matnr}-${curr.orderNo}-${curr.threeCode}`;
                        if (acc[key]) {
                           acc[key].anfme += curr.anfme;
                        } else {
                           acc[key] = {
                              ...curr
                           };
                        }
                        return acc;
                     }, {});
                     const newArray = Object.values(result);
                     _this.wrkingData = newArray
                     if (_this.dataList&&_this.dataList.length >0){
                        for (let item of _this.dataList) {
                           for (let k of _this.wrkingData) {
                              if (k.matnr == item.matnr && k.orderNo == item.orderNo && k.threeCode ==
                                 item.threeCode) {
                                 item['workNum'] = k.anfme
                                 break
                              }else{
                                 item['workNum'] = 0
                              }
                           }
                        }
                     }
                  }
               }
            })
@@ -198,37 +236,41 @@
            uni.setStorageSync('threeCodeOut1', this.searchValue1);
            uni.setStorageSync('threeCodeOut2', this.searchValue2);
            if (this.searchValue1.length == 0) {
               this.getOrderDetlList(this.searchValue1,10)
               this.getOrderDetlList(this.searchValue1, 10)
            } else {
               this.getOrderDetlList(this.searchValue1,10)
               this.getOrderDetlList(this.searchValue1, 10)
            }
         },
         searchValueInput2() {
            uni.setStorageSync('threeCodeOut1', this.searchValue1);
            uni.setStorageSync('threeCodeOut2', this.searchValue2);
            if (this.searchValue1.length == 0) {
               this.getOrderDetlList(this.searchValue1,10)
               this.getOrderDetlList(this.searchValue1, 10)
            } else {
               this.getOrderDetlList(this.searchValue1,10)
               this.getOrderDetlList(this.searchValue1, 10)
            }
         },
         clear() {
            this.dataList = []
            this.data.curr = 1
            setTimeout(()=> {
               this.getOrderDetlList(this.searchValue,10)
            },300)
            setTimeout(() => {
               this.getOrderDetlList(this.searchValue, 10)
            }, 300)
         },
         clear2() {
            setTimeout(()=> {
            setTimeout(() => {
               this.searchValue2 = ''
               this.getOrderDetlList(this.searchValue1,10)
            },300)
               this.getOrderDetlList(this.searchValue1, 10)
            }, 300)
         },
         goToLocDetl(item) {
            if (item.qty >= item.anfme) {
               uni.showToast({ title: '已完成订单作业数量', icon: "error", position: 'top' })
               uni.showToast({
                  title: '已完成订单作业数量',
                  icon: "error",
                  position: 'top'
               })
               return
            }
            let _this = this
@@ -237,15 +279,15 @@
               url: './orderCheck',
               success(res) {
                  res.eventChannel.emit('item', {
                     item: item,
                  }),
                  res.eventChannel.emit('type', {
                     type: "bcp"
                  })
                        item: item,
                     }),
                     res.eventChannel.emit('type', {
                        type: "bcp"
                     })
               },
               events: {
                  acceptDataFromOpenedPage: function(data) {
                     _this.getOrderDetlList(this.searchValue1,10)
                     _this.getOrderDetlList(this.searchValue1, 10)
                  }
               }
            })
@@ -261,7 +303,7 @@
            this.data.matnr = this.matnr
            this.data.order_no = this.order_no
            this.data.brand = this.brand
            this.getOrderDetlList(this.searchValue1,10)
            this.getOrderDetlList(this.searchValue1, 10)
            this.$refs.filter.close()
         },
         filterClose() {
@@ -271,34 +313,39 @@
            this.data.matnr = ''
            this.data.order_no = ''
            this.data.brand = ''
            this.getOrderDetlList(this.searchValue1,10)
            this.getOrderDetlList(this.searchValue1, 10)
            this.$refs.filter.close()
         }
      }
   }
</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;
   }
   .title {
      height: 100rpx;
      line-height: 100rpx;
@@ -307,6 +354,7 @@
      text-align: center;
      font-size: 16px;
   }
   .popup-item {
      height: 80rpx;
      line-height: 80rpx;
@@ -314,12 +362,14 @@
      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;
@@ -329,9 +379,11 @@
      border: 1px solid #E4E7ED;
      border-radius: 5rpx;
   }
   .popup-item-right input{
   .popup-item-right input {
      color: #606266;
   }
   .btn {
      display: flex;
      height: 90rpx;
@@ -340,6 +392,7 @@
      justify-content: center;
      align-items: center;
   }
   .btn-left {
      display: flex;
      flex: 1;
@@ -349,6 +402,7 @@
      color: #606266;
      border-right: 1px solid #DCDFE6;
   }
   .btn-right {
      display: flex;
      flex: 1;
@@ -356,6 +410,7 @@
      align-items: center;
      color: #409EFF;
   }
   .filter-popup {
      width: 100%;
      height: 80vh;
@@ -363,17 +418,20 @@
      position: relative;
      border-radius: 30rpx 30rpx 0rpx 0rpx;
   }
   .filter-popup-item {
      height: 100%;
      width: 100%;
      background-color: #c9cdd5;
   }
   .filter-popup-item-left {
      width: 30%;
      height: 100%;
      background-color: #DCDFE6;
   }
   .item-btn {
      width: 100%;
      height: 80rpx;
@@ -381,9 +439,11 @@
      background-color: #c9cdd5;
      text-align: center;
   }
   .item-btn:checked {
      background-color: #606266;
   }
   .filter-btn {
      position: absolute;
      left: 0;
@@ -391,10 +451,13 @@
      width: 100%;
      background-color: #FFF;
   }
   .item-cl {
      display: flex;align-items: center;
      display: flex;
      align-items: center;
   }
   .item-cl input {
      border-bottom: 1px solid #b9b9b9;
   }
</style>
</style>