From a232dcf6d4a59c7c47e06b6619eb7566163f95b4 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期三, 05 十一月 2025 19:26:46 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/pda-master into devlop

---
 pages/listing/matnrPalletising.vue |  402 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 402 insertions(+), 0 deletions(-)

diff --git a/pages/listing/matnrPalletising.vue b/pages/listing/matnrPalletising.vue
new file mode 100644
index 0000000..50618e4
--- /dev/null
+++ b/pages/listing/matnrPalletising.vue
@@ -0,0 +1,402 @@
+<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>
+			</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']"
+					:ref="item.trackCode+'ref'">
+					<view class="cu-bar bg-white solid-bottom ">
+						<view class="action">
+							<view class="index">
+								{{index+1}}
+							</view>
+							<view class="text-blue">
+								缂栫爜:
+								{{`${item.matnrCode}`}}
+							</view>
+						</view>
+						<view class="action" v-if="!isconfirm">
+							<text @click="remove(index)" class="cuIcon-close text-red" style="font-size: 24px;"></text>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<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>
+						</view>
+						<view class="action">
+							<text class="text-grey ">{{item.asnCode}}</text>
+						</view>
+					</view>					
+					<view class="cu-item">
+						<view class="content">
+							<text class="text-black">渚涘簲鍟嗘壒娆�:</text>
+						</view>
+						<view class="action">
+							<text class="text-grey ">{{item.splrBatch}}</text>
+						</view>
+					</view>
+					<view class="cu-item">						
+						<view class="content">
+							<text class="text-black">璐ㄦ缁撴灉: <text class="text-grey ">{{item.inspect}}</text></text>
+						</view>
+					</view>
+					<!-- <view class="cu-item">
+						<view class="content">
+							<text class="text-black">骞冲彴琛屽彿: <text class="text-grey ">{{item.platformId}}</text></text>
+						</view>
+						<view class="content">
+							<text class="text-black">璐ㄦ缁撴灉: <text class="text-grey ">{{item.inspect}}</text></text>
+						</view>
+					</view> -->
+
+					<view class="cu-item">
+						<view class="content">
+							<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>
+						</view>
+						<view class="content">
+							<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
+									class="text-grey ">{{item.anfme - item.workQty - item.qty}}</text></text>
+						</view>
+						
+					</view>
+					<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>缁勭洏鏁伴噺:
+								</view>
+								<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>
+				</view>
+			</block>
+		</view>
+		<view class="cu-bar btn-group foot">
+			<button class="cu-btn text-blue line-blue shadow" @click="clear">娓呯┖</button>
+			<button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="confirm">缁勭洏</button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import {
+		request
+	} from '../../common/request.js'
+	import {
+		mapState,
+		mapMutations,
+		mapActions,
+		mapGetters
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				barcode: '',
+				container: '',
+				megreQty: '',
+				list: [],
+				range: [],
+				asnCode: '',
+				repeatClick: false,
+				isconfirm: false,				
+				matnrCode:'',
+				max: 99999999,
+			}
+		},
+		computed: {
+			...mapState('user', ['dynamicFields']),
+			allCount() {
+				return this.list.reduce((acc, row) => +row.anfme + acc, 0) || 0
+			}
+		},
+		mounted() {},
+		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)
+						},
+					},
+				
+				
+				});
+			},
+			// 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 getList() {
+				if(this.container === '' || this.container === null){
+					uni.showToast({
+						title: "瀹瑰櫒鐮佷负绌�",
+						icon: "none",
+						position: 'top'
+					})
+					return ;
+				}
+				const {
+					code,
+					data,
+					msg
+				} = await request('/asnOrderItem/container', {
+					barcode: this.container
+				})
+				if (code === 200) {
+					uni.showToast({
+						title: msg,
+						icon: "success",
+						position: 'top'
+					})
+				} else {
+					uni.showToast({
+						title: msg,
+						icon: "none",
+						position: 'top'
+					})
+				}
+			},
+			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 => (
+						i.id === item.id // 鏍规嵁id鍘婚噸
+					)) === index && item.isptResult === self[0].isptResult
+				);
+				let newLength = this.list.length
+				
+				if(oldLength > newLength){	
+					this.showMsg("鏂版槑缁嗚杩囨护锛岃妫�鏌ョ姸鎬�")
+					
+				}
+								
+			},
+			showMsg(msg){				
+				setTimeout(function() {
+				 uni.showToast({
+				 	icon: "none",
+				 	position: 'top',
+				 	title: msg,
+				 	duration:2000,				 	
+				 })
+				}, 200);
+				
+			},
+			scrollTo() {
+				const ref = this.$refs[`${this.barcode}ref`][0];
+				uni.pageScrollTo({
+					scrollTop: ref.$el.offsetTop,
+					duration: 300
+				})
+			},
+			remove(index) {
+				this.list.splice(index, 1);
+			},
+			clear() {
+				this.list = []
+				this.barcode = ''
+			},
+			next() {
+				if (this.list.length) {
+					this.isconfirm = true
+				} else {
+					uni.showToast({
+						icon: "none",
+						title: '鏈�夌墿鏂欐爣绛�'
+					})
+				}
+			},
+			prev() {
+				this.isconfirm = false
+			},
+			async confirm() {
+				if(this.container === '' || this.container === null){
+					uni.showToast({
+						title: "瀹瑰櫒鐮佷负绌�",
+						icon: "none",
+						position: 'top'
+					})
+					return ;
+				}
+				if(this.list.length ===0 || this.list === null){
+					uni.showToast({
+						title: "鏈坊鍔犳槑缁�",
+						icon: "none",
+						position: 'top'
+					})
+					return ;
+				}
+				this.repeatClick = true				
+				const newArr = this.list.map(item => {
+					
+					return {
+						...item,
+						anfme: item.anfme === null ? 0 : +item.anfme,						
+					};
+				});
+
+				const {
+					code,
+					data,
+					msg
+				} = await request('/waitPakin/merge', {
+					items: newArr,
+					barcode: this.container,					
+				})
+				if (code === 200) {
+					uni.showToast({
+						title: '缁勭洏鎴愬姛'
+					})
+					this.list = []
+					this.barcode = ''
+					this.container = ''
+					this.isconfirm = false
+				} else {
+					uni.showToast({
+						title: msg,
+						icon: "none",
+						position: 'top'
+					})
+				}
+				this.repeatClick = false
+			},
+		}
+	}
+</script>
+
+<style>
+	.index {
+		border: 1px solid #e54d42;
+		color: #e54d42;
+		border-radius: 50%;
+		display: block;
+		width: 50rpx;
+		height: 50rpx;
+		line-height: 48rpx;
+		text-align: center;
+		margin-right: 20rpx;
+		font-size: 30rpx;
+	}
+
+	.text-blue {
+		color: #0081ff !important;
+
+	}
+
+	.act {
+		border: 1px solid #e54d42;
+	}
+
+	.item {
+		position: relative;
+		display: flex;
+		min-height: 80upx;
+		align-items: center;
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.1