From 3a770819f22efdc0ecb0ba57de0ac64f08421c55 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 13 十一月 2025 16:54:20 +0800
Subject: [PATCH] 波次拣货功能优化

---
 pages/listing/matnrPalletising.vue |  248 +++++++++++++++++++++----------------------------
 1 files changed, 106 insertions(+), 142 deletions(-)

diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
index 50618e4..24551eb 100644
--- a/pages/listing/matnrPalletising.vue
+++ b/pages/listing/matnrPalletising.vue
@@ -1,31 +1,32 @@
 <template>
 	<view class="has-foot">
 		<view>
-		
-		<form>
-			<view class="cu-form-group margin-top">
-				<view class="title">瀹瑰櫒鍙�</view>
-				<input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="container" focus></input>
-				<text class='cuIcon-search text-blue' @click="getList"></text>
-			</view>			
-			<view class="cu-form-group">
-				<view class="title">鐗╂枡缂栫爜</view>
-				<input placeholder="璇锋壂鎻忕墿鏂欑紪鐮�" v-model="matnrCode"></input>
-				<text class='cuIcon-search text-blue' @click="search"></text>
+			<form>
+				<view class="cu-form-group margin-top">
+					<view class="title">瀹瑰櫒鍙�</view>
+					<input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="container" focus></input>
+					<text class='cuIcon-search text-blue' @click="getList"></text>
+				</view>
+				<view class="cu-form-group">
+					<view class="title">鐗╂枡缂栫爜</view>
+					<input placeholder="璇锋壂鎻忕墿鏂欑紪鐮�" v-model="matnrCode"></input>
+					<text class='cuIcon-search text-blue' @click="search"></text>
+				</view>
+				<view class="cu-form-group">
+					<view class="title">绁ㄥ彿</view>
+					<input placeholder="璇锋壂鎻忕幇鍝佺エ鍙�" v-model="fieldsIndex"></input>
+					<text class='cuIcon-search text-blue' @click="search"></text>
+				</view>
+				<view class="cu-form-group">
+					<view class="title">ASN鍗曞彿</view>
+					<input placeholder="璇疯緭鍏SN鍗曞彿" v-model="asnCode"></input>
+				</view>
+			</form>
+			<view class="flex solid-bottom padding-sm justify-between">
+				<view class="text-blue">鐗╂枡鎬荤被锛歿{list.length}}</view>
+				<view class="text-blue">缁勭洏鎬绘暟锛歿{allCount}}</view>
 			</view>
-			<view class="cu-form-group">
-				<view class="title">ASN鍗曞彿</view>
-				<input placeholder="璇疯緭鍏SN鍗曞彿" v-model="asnCode"></input>
-			</view>
-		</form>
-
-		<view class="flex solid-bottom padding-sm justify-between">
-			<view class="text-blue">鐗╂枡鎬荤被:{{list.length}}</view>
-			<view class="text-blue">缁勭洏鎬绘暟:{{allCount}}</view>
 		</view>
-		
-		</view>
-
 		<view class="padding-lr margin-top-sm">
 			<block v-for="(item, index) in list" :key="index">
 				<view class="cu-list det menu sm-border margin-bottom-sm " :class="[item.trackCode===barcode&&'act']"
@@ -36,7 +37,7 @@
 								{{index+1}}
 							</view>
 							<view class="text-blue">
-								缂栫爜:
+								缂栫爜锛�
 								{{`${item.matnrCode}`}}
 							</view>
 						</view>
@@ -46,29 +47,29 @@
 					</view>
 					<view class="cu-item">
 						<view class="content">
-							<text class="text-black">鐗╂枡缂栫爜:</text>
+							<text class="text-black">鐗╂枡缂栫爜锛�</text>
 							<text class="text-grey ">{{item.maktx}}</text>
 						</view>
 					</view>
 					<view class="cu-item">
 						<view class="content">
-							<text class="text-black">ASN:</text>
+							<text class="text-black">鍗曞彿锛�</text>
 						</view>
 						<view class="action">
 							<text class="text-grey ">{{item.asnCode}}</text>
 						</view>
-					</view>					
+					</view>
 					<view class="cu-item">
 						<view class="content">
-							<text class="text-black">渚涘簲鍟嗘壒娆�:</text>
+							<text class="text-black">渚涘簲鍟嗘壒娆★細</text>
 						</view>
 						<view class="action">
 							<text class="text-grey ">{{item.splrBatch}}</text>
 						</view>
 					</view>
-					<view class="cu-item">						
+					<view class="cu-item">
 						<view class="content">
-							<text class="text-black">璐ㄦ缁撴灉: <text class="text-grey ">{{item.inspect}}</text></text>
+							<text class="text-black">绁ㄥ彿锛�<text class="text-grey ">{{item.crushNo}}</text></text>
 						</view>
 					</view>
 					<!-- <view class="cu-item">
@@ -82,31 +83,30 @@
 
 					<view class="cu-item">
 						<view class="content">
-							<text class="text-black">搴撳瓨鍗曚綅: <text class="text-grey ">{{item.stockUnit}}</text></text>
+							<text class="text-black">搴撳瓨鍗曚綅锛� <text class="text-grey ">{{item.stockUnit}}</text></text>
 						</view>
 						<view class="content">
-							<text class="text-black">鏀惰揣鏁伴噺: <text class="text-grey ">{{item.anfme}}</text></text>
+							<text class="text-black">鏀惰揣鏁伴噺锛� <text class="text-grey ">{{item.anfme}}</text></text>
 						</view>
 						<view class="content">
-							<text class="text-black">宸蹭笂鏋舵暟閲�: <text
+							<text class="text-black">宸蹭笂鏋舵暟閲忥細 <text
 									class="text-grey ">{{item.workQty + item.qty}}</text></text>
 						</view>
 					</view>
 					<view class="cu-item">
 						<view class="content">
-							<text class="text-black">鍙粍鐩樻暟閲�: <text
+							<text class="text-black">鍙粍鐩樻暟閲忥細<text
 									class="text-grey ">{{item.anfme - item.workQty - item.qty}}</text></text>
 						</view>
-						
 					</view>
-					<view class="cu-item">						
+					<view class="cu-item">
 						<view class="content">
 							<view class="cu-form-group padding-lr-0">
 								<view class="title text-blue"><text
-										class="text-red text-xl vertical-middle">*</text>缁勭洏鏁伴噺:
+										class="text-red text-xl vertical-middle">*</text>缁勭洏鏁伴噺锛�
 								</view>
-								<uni-number-box style="width: 70%;" :min="0" :max="max" :decimal="2" :step="0.01" v-model="item.receiptQty"
-									></uni-number-box>
+								<uni-number-box style="width: 70%;" :min="0" :max="max" :decimal="2" :step="0.01"
+									v-model="item.receiptQty"></uni-number-box>
 							</view>
 						</view>
 					</view>
@@ -140,108 +140,74 @@
 				range: [],
 				asnCode: '',
 				repeatClick: false,
-				isconfirm: false,				
-				matnrCode:'',
+				fieldsIndex: null,
+				isconfirm: false,
+				matnrCode: '',
 				max: 99999999,
 			}
 		},
 		computed: {
 			...mapState('user', ['dynamicFields']),
 			allCount() {
-				return this.list.reduce((acc, row) => +row.anfme + acc, 0) || 0
+				return this.list.reduce((acc, row) => + (row.anfme + acc).toFixed(2), 0) || 0
 			}
 		},
 		mounted() {},
-		methods: {			
+		methods: {
 			async search() {
 				const find = this.list.find(el => el.trackCode === this.barcode);
 				find ? this.scrollTo() : this.getDet();
-
 			},
 			getDet() {
 				let that = this;
-				uni.navigateTo({
-					url: "../listing/itemSelect",
-					success: function(res) {
-						// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
-						res.eventChannel.emit('data', {
-							matnrCode: that.matnrCode,
-							asnCode: that.asnCode
-						})
-					},
-					events: {
-						// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�  鍙﹀涓�涓〉闈紶杩囨潵鐨�
-						backData: function(data) {									
-							that.showBackData(data.data)
-						},
-					},
-				
-				
-				});
+				let param = {
+					matnrCode: that.matnrCode.trim(),
+					asnCode: that.asnCode.trim(),
+					fieldsIndex: that.fieldsIndex.trim()
+				}
+				that.getDetl(param);
 			},
-			// async getDet() {
-			// 	let that = this;
-			// 	const {
-			// 		code,
-			// 		data,
-			// 		msg
-			// 	} = await request('/asnOrderItem/trackCode', {
-			// 		matnrCode: that.matnrCode,
-			// 		asnCode: that.asnCode
-			// 	}, "post")
-			// 	if (code === 200) {
-			// 		data.map(item => {
-			// 			item.receiptQty = 0;
-			// 			item.selected = false;
-			// 		})
-			// 		// for (var i = 0; i < data.length; i++) {
-			// 		// 	data[i].receiptQty =1;
-			// 		// 	data[i].selected = false;							
-			// 		// }
-			// 		if(data !== [] || data !== null){					
-			// 		uni.navigateTo({
-			// 				url: "../listing/itemSelect",
-			// 				success: function(res) {
-			// 					// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
-			// 					res.eventChannel.emit('data', {
-			// 						item: data
-			// 					})
-			// 				},
-			// 				events: {
-			// 					// 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�  鍙﹀涓�涓〉闈紶杩囨潵鐨�
-			// 					backData: function(data) {									
-			// 						that.showBackData(data.data)
-			// 					},
-			// 				},
-						
-						
-			// 			});
-						
-			// 		}
-						
-			// 		// this.list = data
-			// 	} else {
-			// 		uni.showToast({
-			// 			title: msg,
-			// 			icon: "none",
-			// 			position: 'top'
-			// 		})
-			// 	}
-			// },
+
+			async getDetl(req) {
+				let that = this;
+				// uni.showLoading({
+				// 	title: '鍔犺浇涓�...'
+				// })
+				const { code, data, msg } = await request('/asnOrderItem/trackCode', {
+					matnrCode: that.matnrCode,
+					asnCode: that.asnCode,
+					code: that.asnCode,
+					fieldsIndex: that.fieldsIndex,
+					batch: req.batch
+				}, "post")
+				if (code === 200) {
+					for (var i = 0; i < data.length; i++) {
+						data[i].receiptQty = data[i].anfme - data[i].workQty;
+						data[i].crushNo = that.fieldsIndex;
+						data[i].selected = true;
+					}
+					that.fieldsIndex = null;
+					that.showBackData(data)
+				} else {
+					uni.showToast({
+						title: msg,
+						icon: "none",
+						position: 'top'
+					})
+				}
+				// uni.hideLoading();
+			},
+
 			async getList() {
-				if(this.container === '' || this.container === null){
+				if (this.container === '' || this.container === null) {
 					uni.showToast({
 						title: "瀹瑰櫒鐮佷负绌�",
 						icon: "none",
 						position: 'top'
 					})
-					return ;
+					return;
 				}
-				const {
-					code,
-					data,
-					msg
-				} = await request('/asnOrderItem/container', {
+				const {	code, data,	msg	} = await request('/asnOrderItem/container', {
 					barcode: this.container
 				})
 				if (code === 200) {
@@ -258,11 +224,11 @@
 					})
 				}
 			},
-			showBackData(data){				
-				let status ;
-				data.map(item => {					
+			showBackData(data) {
+				let status;
+				data.map(item => {
 					this.list.push(item)
-				})	
+				})
 				let oldLength = this.list.length
 				this.list = this.list.filter((item, index, self) =>
 					self.findIndex(i => (
@@ -270,23 +236,21 @@
 					)) === index && item.isptResult === self[0].isptResult
 				);
 				let newLength = this.list.length
-				
-				if(oldLength > newLength){	
+
+				if (oldLength > newLength) {
 					this.showMsg("鏂版槑缁嗚杩囨护锛岃妫�鏌ョ姸鎬�")
-					
 				}
-								
 			},
-			showMsg(msg){				
+			showMsg(msg) {
 				setTimeout(function() {
-				 uni.showToast({
-				 	icon: "none",
-				 	position: 'top',
-				 	title: msg,
-				 	duration:2000,				 	
-				 })
+					uni.showToast({
+						icon: "none",
+						position: 'top',
+						title: msg,
+						duration: 2000,
+					})
 				}, 200);
-				
+
 			},
 			scrollTo() {
 				const ref = this.$refs[`${this.barcode}ref`][0];
@@ -316,28 +280,28 @@
 				this.isconfirm = false
 			},
 			async confirm() {
-				if(this.container === '' || this.container === null){
+				if (this.container === '' || this.container === null) {
 					uni.showToast({
 						title: "瀹瑰櫒鐮佷负绌�",
 						icon: "none",
 						position: 'top'
 					})
-					return ;
+					return;
 				}
-				if(this.list.length ===0 || this.list === null){
+				if (this.list.length === 0 || this.list === null) {
 					uni.showToast({
 						title: "鏈坊鍔犳槑缁�",
 						icon: "none",
 						position: 'top'
 					})
-					return ;
+					return;
 				}
-				this.repeatClick = true				
+				this.repeatClick = true
 				const newArr = this.list.map(item => {
-					
+
 					return {
 						...item,
-						anfme: item.anfme === null ? 0 : +item.anfme,						
+						anfme: item.anfme === null ? 0 : +item.anfme,
 					};
 				});
 
@@ -347,7 +311,7 @@
 					msg
 				} = await request('/waitPakin/merge', {
 					items: newArr,
-					barcode: this.container,					
+					barcode: this.container,
 				})
 				if (code === 200) {
 					uni.showToast({

--
Gitblit v1.9.1