1
wankeda
3 天以前 844c7c3ce2c39139490a6ecb0f35170f6cade290
¼ª°²PDA/pages/stash/CPinboundorder.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,257 @@
<template>
   <view>
      <u-sticky>
         <view style="background-color: #ffffff;">
            <uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
         </view>
      </u-sticky>
      <!-- å°†é¡µé¢å†…容包装在 scroll-view ä¸­ -->
      <scroll-view
         scroll-y
         :style="{height: 'calc(100vh - 100px)'}"
         @scrolltolower="onReachBottom"
         ref="scrollView"
      >
         <uni-list :border="true">
            <uni-list-item direction="column" clickable @click="groupClick(item.orderNo)" link :to="page+item.orderNo"
               v-for="item in allReceivingOrders" :key="item.orderNo">
               <template v-slot:body>
                  <uni-group margin-top="20">
                     <view
                        style="line-height: 17px;color: #596671;font-size: 14px;text-align: center;display: flex;justify-content: space-between;">
                        å…¥åº“单号&nbsp;&nbsp;{{item.orderNo}}
                     </view>
                     <view
                        style="margin-top: 10rpx;line-height: 17px;color: #596671;font-size: 14px;text-align: center;display: flex;justify-content: space-between;">
                        åˆ›å»ºäººå‘˜&nbsp;&nbsp;{{item.creater}}
                     </view>
                     <view
                        style="margin-top: 10rpx;line-height: 17px;color: #596671;font-size: 14px;text-align: center;display: flex;justify-content: space-between;">
                        åˆ›å»ºæ—¥æœŸ&nbsp;&nbsp;{{item.createDate}}
                     </view>
                     <view style="margin-top: 10rpx;display: flex;align-items: center; ">
                        <view
                           style="text-align: center;line-height: 40rpx;border-radius: 8rpx; width: 238rpx;height: 40rpx;font-size: 22rpx;background-color:rgba(22,127,247,0.18);color: #1F63FF;">
                           è®¢å•状态&nbsp;&nbsp;{{item.InboundOrderStatus}}
                        </view>
                        <view
                           style="text-align: center;line-height: 40rpx;border-radius: 8rpx; width: 158rpx;height: 40rpx;font-size: 22rpx;color: #F56C6C;">
                           æ€»é‡&nbsp;&nbsp;{{item.SumQty}}
                        </view>
                        <view
                           style="text-align: center;line-height: 40rpx;border-radius: 8rpx; width: 158rpx;height: 40rpx;font-size: 22rpx;color: #F56C6C;">
                           å·²ç»„盘&nbsp;&nbsp;{{item.RecQty}}
                        </view>
                        <view
                           style="text-align: center;line-height: 40rpx;border-radius: 8rpx; width: 158rpx;height: 40rpx;font-size: 22rpx;color: #F56C6C;">
                           å·²å…¥&nbsp;&nbsp;{{item.OverQty}}
                        </view>
                     </view>
                  </uni-group>
               </template>
            </uni-list-item>
         </uni-list>
         <uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
         <u-back-top :scroll-top="scrollTop" top="400"></u-back-top>
      </scroll-view>
   </view>
</template>
<script>
   import {
      InboundOrderStatus
   } from '../../common/config.js'
   export default {
      data() {
         return {
            page: "/pages/stash/CPraworderboxing?",
            loadVisible: false,
            searchValue: "",
            status: "more",
            allReceivingOrders: [],
            pageNo: 1,
            scrollTop: 0,
            warehouseId: "",
            isLoaded: false,
            // æ·»åŠ ä¸€ä¸ªå˜é‡è®°å½•æ˜¯å¦æ­£åœ¨åŠ è½½
            isLoadingMore: false
         }
      },
      onLoad(res) {
         this.warehouseId = res.warehouseId;
         this.page = this.page + "warehouseId=" + this.warehouseId + "&orderNo=";
         this.getData();
      },
      // ç§»é™¤åŽŸæ¥çš„ onReachBottom,使用 scroll-view çš„ @scrolltolower
      onShow() {
         if (this.isLoaded) {
            // ä»Žå…¶ä»–页面返回时刷新
            this.getData();
         }
      },
      onPageScroll(e) {
         this.scrollTop = e.scrollTop;
      },
      methods: {
         search(res) {
            this.getData();
         },
         groupClick() {
         },
         // scroll-view æ»šåŠ¨åˆ°åº•éƒ¨æ—¶è§¦å‘
         onReachBottom() {
            if (this.isLoadingMore || this.status === 'noMore') return;
            this.isLoadingMore = true;
            this.pageNo += 1;
            this.status = "loading";
            this.getData();
         },
         getData() {
            var postData = {
               MainData: {
                  warehouseId: this.warehouseId,
                  orderNo: this.searchValue,
                  pageNo: this.pageNo
               },
            }
            this.$u.post('/api/InboundOrder/GetInboundOrders', postData).then((res) => {
               if (res.status) {
                  if (res.data.length > 0) {
                     const newData = res.data.map(i => ({
                        ...i,
                        InboundOrderStatus: InboundOrderStatus.find(item => item.value == i
                           .orderStatus).label,
                        SumQty: i.details.map(item => item.orderQuantity).reduce((prev,
                           next) => prev + next, 0),
                        OverQty: i.details.map(item => item.overInQuantity).reduce((prev,
                           next) => prev + next, 0),
                        RecQty: i.details.map(item => item.receiptQuantity).reduce((prev,
                           next) => prev + next, 0)
                     }));
                     if (this.searchValue == '') {
                        // è¿½åŠ æ•°æ®è€Œä¸æ˜¯æ›¿æ¢
                        this.allReceivingOrders = [...this.allReceivingOrders, ...newData];
                        if (this.allReceivingOrders.length > 3) {
                           this.loadVisible = true;
                        } else {
                           this.loadVisible = false;
                        }
                     } else {
                        // æœç´¢æ—¶æ›¿æ¢æ•°æ®
                        this.allReceivingOrders = newData;
                        if (this.allReceivingOrders.length > 3) {
                           this.loadVisible = true;
                        } else {
                           this.loadVisible = false;
                        }
                     }
                     // å¦‚果没有更多数据
                     if (res.data.length < 10) { // å‡è®¾æ¯é¡µ10条数据
                        this.status = 'noMore';
                     } else {
                        this.status = 'more';
                     }
                  } else {
                     this.status = 'noMore';
                     this.loadVisible = true;
                  }
               }
               this.isLoadingMore = false;
            })
         }
      }
   }
</script>
<style lang="scss">
   @import '@/common/uni-ui.scss';
   page {
      display: flex;
      flex-direction: column;
      box-sizing: border-box;
      background-color: #efeff4;
      min-height: 100%;
      height: 100vh;
   }
   /* ç¡®ä¿ scroll-view å æ®æ•´ä¸ªé¡µé¢ç©ºé—´ */
   scroll-view {
      height: calc(100vh - 100px);
   }
   .tips {
      color: #67c23a;
      font-size: 14px;
      line-height: 40px;
      text-align: center;
      background-color: #f0f9eb;
      height: 0;
      opacity: 0;
      transform: translateY(-100%);
      transition: all 0.3s;
   }
   .tips-ani {
      transform: translateY(0);
      height: 40px;
      opacity: 1;
   }
   .content {
      width: 100%;
      display: flex;
   }
   .list-picture {
      width: 100%;
      height: 145px;
   }
   .thumb-image {
      width: 100%;
      height: 100%;
   }
   .ellipsis {
      display: flex;
      overflow: hidden;
   }
   .uni-ellipsis-1 {
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
   }
   .uni-ellipsis-2 {
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
   }
   .customcss {
      display: flex;
      position: fixed;
      width: 100%;
      top: 10px;
      text-align: center;
      z-index: 999;
      left: 30px;
      height: 20%;
   }
   .footer {
      padding-top: 50%;
   }
</style>