From 9181f3dce9e6f617b34fa80b7bb72bb490be788b Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期四, 12 三月 2026 10:03:21 +0800
Subject: [PATCH] 1

---
 吉安PDA/pages/stash/inboundorder.vue |  389 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 183 insertions(+), 206 deletions(-)

diff --git "a/\345\220\211\345\256\211PDA/pages/stash/inboundorder.vue" "b/\345\220\211\345\256\211PDA/pages/stash/inboundorder.vue"
index b77775d..465bef0 100644
--- "a/\345\220\211\345\256\211PDA/pages/stash/inboundorder.vue"
+++ "b/\345\220\211\345\256\211PDA/pages/stash/inboundorder.vue"
@@ -1,216 +1,193 @@
 <template>
-	<view>
-		<u-sticky>
-			<view style="background-color: #ffffff;">
-				<uni-search-bar @confirm="search" v-model="searchValue"></uni-search-bar>
-			</view>
-		</u-sticky>
-		<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.OverQty}}
-							</view>
-						</view>
-					</uni-group>
-				</template>
-			</uni-list-item>
+  <view>
+    <u-sticky>
+      <view style="background-color: #ffffff;">
+        <uni-search-bar @confirm="search" v-model="searchValue" @input="handleSearchInput"></uni-search-bar>
+      </view>
+    </u-sticky>
 
-		</uni-list>
-		<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
+    <!-- 绉婚櫎浜嗗唴閮ㄦ粴鍔ㄥ鍣紝璁╅〉闈㈣嚜鐒舵粴鍔紝鎵�鏈夋暟鎹兘浼氭樉绀� -->
+    <uni-list :border="true">
+      <uni-list-item
+        direction="column"
+        v-for="item in allReceivingOrders"
+        :key="item.orderNo"
+        clickable
+        @click="groupClick(item.orderNo)"
+        link
+        :to="page + 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;line-height: 17px;color: #596671;font-size: 14px;text-align: center;display: flex;justify-content: left;">
+              鐗╂枡鏂欏彿锛�&nbsp;&nbsp;
+              <view class="container">
+                <view v-for="(materielCode, index) in getUniqueMaterielCodes(item.details)" :key="index">
+                  {{ materielCode }}
+                  <u-line color="blue" v-if="index < getUniqueMaterielCodes(item.details).length - 1" />
+                </view>
+              </view>
+            </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.OverQty }}
+              </view>
+            </view>
+          </uni-group>
+        </template>
+      </uni-list-item>
+    </uni-list>
 
-		<u-back-top :scroll-top="scrollTop" top="400"></u-back-top>
-	</view>
+    <!-- 绉婚櫎鍔犺浇鏇村缁勪欢锛屽洜涓轰笉鍒嗛〉浜� -->
+    <!-- <uni-load-more :status="status" v-if="loadVisible && allReceivingOrders.length > 0"></uni-load-more> -->
+
+    <!-- 绌烘暟鎹彁绀� -->
+    <view v-if="allReceivingOrders.length === 0 && !isLoading" style="text-align: center; padding: 100rpx 0; color: #999;">
+      鏆傛棤鍏ュ簱璁㈠崟鏁版嵁
+    </view>
+
+    <!-- 杩斿洖椤堕儴鎸夐挳锛堝彲閫夛級 -->
+    <u-back-top :scroll-top="scrollTop" top="400"></u-back-top>
+  </view>
 </template>
 
 <script>
-	import { InboundOrderStatus } from '../../common/config.js'
-	export default {
-		data() {
-			return {
-				page: "/pages/stash/raworderboxing?",
-				loadVisible: false,
-				searchValue: "",
-				status: "more",
-				allReceivingOrders: [],
-				pageNo: 1,
-				scrollTop: 0,
-				warehouseId: "",
-				isLoaded:false
-			}
-		},
-		onLoad(res) {
-			this.warehouseId = res.warehouseId;
-			this.page = this.page + "warehouseId=" + this.warehouseId + "&orderNo=";
-			this.getData();
-		},
-		onReachBottom() {
-			this.pageNo += 1;
-			this.getData();
-			this.isLoaded=true;
-		},
-		onShow() {
-			if (this.isLoaded) {
-				// 浠庡叾浠栭〉闈㈣繑鍥炴椂鍒锋柊
-				this.getData();
-			}
-		},
-		onPageScroll(e) {
-			this.scrollTop = e.scrollTop;
-		},
-		methods: {
-			search(res) {
-				this.getData();
-			},
-			groupClick() {
+import { InboundOrderStatus } from '../../common/config.js';
 
-			},
-			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) {
-							if (this.searchValue == '') {
-								this.allReceivingOrders = 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)
-								}));
-								// this.allReceivingOrders = res.data;
-								if (this.allReceivingOrders.length > 3) {
-									this.loadVisible = true;
-								} else {
-									this.loadVisible = false;
-								}
-							} else {
-								this.allReceivingOrders = 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)
-								}));
-								if (this.allReceivingOrders.length > 3) {
-									this.loadVisible = true;
-								} else {
-									this.loadVisible = false;
-								}
-							}
-						} else {
-							this.status = 'noMore';
-							//this.allReceivingOrders = [];
-							this.loadVisible = true;
-						}
-					}
-				})
-			}
-		}
-	}
+export default {
+  data() {
+    return {
+      page: '/pages/stash/raworderboxing?',
+      searchValue: '',
+      allReceivingOrders: [], // 鏄剧ず鍦ㄥ墠绔殑鏁版嵁锛堝彲鑳借鎼滅储杩囨护锛�
+      originalOrders: [], // 瀛樺偍鎵�鏈夊師濮嬫暟鎹�
+      scrollTop: 0,
+      warehouseId: '',
+      isLoaded: false, // 鏄惁浠庤鎯呴〉杩斿洖
+      isLoading: false, // 闃叉閲嶅璇锋眰
+    };
+  },
+  onLoad(res) {
+    this.warehouseId = res.warehouseId;
+    this.page = this.page + 'warehouseId=' + this.warehouseId + '&orderNo=';
+    // 鐩存帴鍔犺浇鍏ㄩ儴鏁版嵁锛堜笉鍒嗛〉锛�
+    this.getAllData();
+  },
+  onShow() {
+    // 浠庤鎯呴〉杩斿洖鏃讹紝濡傛灉鏁版嵁宸茶淇敼锛屽彲浠ラ噸鏂板姞杞�
+    if (this.isLoaded) {
+      this.getAllData();
+      this.isLoaded = false;
+    }
+  },
+  onPageScroll(e) {
+    this.scrollTop = e.scrollTop;
+  },
+  methods: {
+    // 鐗╂枡鏂欏彿鍘婚噸
+    getUniqueMaterielCodes(details) {
+      if (!details || !Array.isArray(details)) return [];
+      return [...new Set(details.map(item => item.materielCode))];
+    },
+
+    // 鎼滅储杈撳叆澶勭悊锛堝墠绔瓫閫夛級
+    handleSearchInput() {
+      if (this.searchValue === '') {
+        this.allReceivingOrders = [...this.originalOrders];
+        return;
+      }
+      const searchText = this.searchValue.toLowerCase().trim();
+      this.allReceivingOrders = this.originalOrders.filter(item => {
+        if (item.orderNo && item.orderNo.toLowerCase().includes(searchText)) {
+          return true;
+        }
+        if (item.details && item.details.length > 0) {
+          return item.details.some(detail =>
+            detail.materielCode && detail.materielCode.toLowerCase().includes(searchText)
+          );
+        }
+        return false;
+      });
+    },
+
+    search() {
+      this.handleSearchInput();
+    },
+
+    groupClick() {
+      this.isLoaded = true;
+    },
+
+    // 涓�娆℃�ц幏鍙栨墍鏈夋暟鎹紙涓嶅垎椤碉級
+    getAllData() {
+      if (this.isLoading) return;
+      this.isLoading = true;
+
+      // 璁剧疆涓�涓冻澶熷ぇ鐨� pageSize 鏉ヨ幏鍙栨墍鏈夋暟鎹紙鏍规嵁鎺ュ彛鏈�澶ч檺鍒惰皟鏁达級
+      const postData = {
+        MainData: {
+          warehouseId: this.warehouseId,
+          orderNo: '',
+          pageNo: 1,
+          pageSize: 9999, // 鍋囪鎺ュ彛鏀寔杩欎箞澶х殑鍒嗛〉
+        },
+      };
+
+      this.$u
+        .post('/api/InboundOrder/GetInboundOrders', postData)
+        .then(res => {
+          this.isLoading = false;
+          if (res.status) {
+			console.log(res.data);
+            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) || 0,
+              OverQty: i.details?.map(item => item.overInQuantity).reduce((prev, next) => prev + next, 0) || 0,
+            }));
+
+            this.originalOrders = newData; // 鐩存帴鏇挎崲锛屼笉鍒嗛〉杩藉姞
+            // 鏍规嵁鎼滅储璇嶈繃婊ゆ樉绀�
+            if (this.searchValue) {
+              this.handleSearchInput();
+            } else {
+              this.allReceivingOrders = [...this.originalOrders];
+            }
+          } else {
+            this.$u.toast('鏁版嵁鍔犺浇澶辫触锛岃閲嶈瘯');
+          }
+        })
+        .catch(err => {
+          this.isLoading = false;
+          this.$u.toast('缃戠粶寮傚父锛岃妫�鏌ョ綉缁�');
+        });
+    },
+  },
+};
 </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: auto;
-	}
-
-	.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 scoped>
+.container {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 10rpx;
+}
+.container view {
+  white-space: nowrap;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3