From d111b3ab62e3a10053d3f339497e03e62459148e Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 21 七月 2025 13:51:53 +0800
Subject: [PATCH] #

---
 pages/check/checkOrderItem.vue |  322 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 215 insertions(+), 107 deletions(-)

diff --git a/pages/check/checkOrderItem.vue b/pages/check/checkOrderItem.vue
index 1607c2f..4398c7e 100644
--- a/pages/check/checkOrderItem.vue
+++ b/pages/check/checkOrderItem.vue
@@ -2,97 +2,168 @@
 	<view class="has-foot">
 		<form>
 			<view class="cu-form-group" v-show="!isconfirm">
-				<view class="title">宸紓鍗曞彿</view>
-				<text class="text-black ">{{check.orderCode}}</text>				
+				<view class="title">鐩樼偣鍗曞彿锛�<text class="text-black ">{{check.orderCode}}</text></view>
+				<text class='cuIcon-add text-blue' @click="returnPage"></text>
 			</view>
 			<view class="cu-form-group" v-show="!isconfirm">
 				<view class="title">瀹瑰櫒鍙�</view>
-				<input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="barcode"  focus></input>
+				<input placeholder="璇锋壂鎻忓鍣ㄥ彿" v-model="barcode" focus></input>
 				<text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text>
 				<text class='cuIcon-search text-blue' @click="search"></text>
 			</view>
+			<view class="cu-form-group" v-show="isconfirm">
+				<view class="title">鐗╂枡鐮�</view>
+				<input placeholder="璇锋壂鎻忕墿鏂欑爜" v-model="matnr" focus></input>
+				<text class='cuIcon-close text-gray margin-right-xs' v-show="matnr!==''" @click="clearCode"></text>
+				<text class='cuIcon-search text-blue' @click="addMatnr" v-show="matnr!==''"></text>
 
+			</view>
 		</form>
-		
-				
 
 		<view class="cu-list det menu sm-border  padding">
-			<block  v-for="(item, index) in list">
-				<view  class="cu-list det menu  ">
-					
-				
-				<view class="cu-bar bg-white solid-bottom margin-top-sm">
-					<view class="action">
-						<view class="index">
-							{{index+1}}
-						</view>
-					</view>
-					<view class="content2">
-						<text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text>
-					</view>
-				</view>
-
-				<view class="cu-item">
-					<view class="content">
-						<text class="text-gray">鐗╂枡缂栫爜:<text class="text-black ">{{item.matnrCode}}</text></text>
-					</view>						
-				</view>
-				<view class="cu-item">
-					<view class="content">
-						<text class="text-gray">鐗╂枡鍚嶇О:<text class="text-black ">{{item.maktx}}</text></text>
-					</view>					
-				</view>				
-				<view class="cu-item" v-if="check.checkType === 0">
-					<view class="content">
-						<text class="text-gray">搴撳瓨鏁�:<text class="text-black ">{{item.anfme}}</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%;" :max="max" v-model="item.checkQty"
-								:step='1' ></uni-number-box>
-						</view>
-					</view>						
-				</view>
-				<view class="cu-item">
-					<view class="content">
-						<view class="cu-form-group padding-lr-0">
-							<text class=" text-blue">澶囨敞:</text>
-							<input placeholder="璇疯緭鍏ュ娉�" v-model="item.memo" ></input>
-						</view>
-					</view>						
-				</view>
-				<view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
-					<view class="content">
-						<view class="cu-form-group padding-lr-0">
-							<view class=" text-blue" >宸紓鍘熷洜</view>
-							<view style="width: 80%;">
-								<uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason" :localdata="reasons"
-									placement="top"></uni-data-select>
+			<block v-for="(item, index) in list" v-if="!isconfirm">
+				<view class="cu-list det menu  ">
+					<view class="cu-bar bg-white solid-bottom margin-top-sm">
+						<view class="action">
+							<view class="index">
+								{{index+1}}
 							</view>
 						</view>
-					</view>						
+						<view class="content2">
+							<text class="text-gray"><text class="text-black ">{{item.exceStatus$}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<text class="text-gray">鐗╂枡缂栫爜:<text class="text-black ">{{item.matnrCode}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<text class="text-gray">鐗╂枡鍚嶇О:<text class="text-black ">{{item.maktx}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<text class="text-gray">鎵规:<text class="text-black ">{{item.batch}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item" v-if="check.checkType === 0">
+						<view class="content">
+							<text class="text-gray">搴撳瓨鏁�:<text class="text-black ">{{item.anfme}}</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%;" :max="max" v-model="item.checkQty"
+									:step='1'></uni-number-box>
+							</view>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<view class="cu-form-group padding-lr-0">
+								<text class=" text-blue">澶囨敞:</text>
+								<input placeholder="璇疯緭鍏ュ娉�" v-model="item.memo"></input>
+							</view>
+						</view>
+					</view>
+					<view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
+						<view class="content">
+							<view class="cu-form-group padding-lr-0">
+								<view class=" text-blue">宸紓鍘熷洜</view>
+								<view style="width: 80%;">
+									<uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason"
+										:localdata="reasons" placement="top"></uni-data-select>
+								</view>
+							</view>
+						</view>
+					</view>
 				</view>
-				
+			</block>
+			
+			<block v-for="(item, index) in matnrList">
+				<view class="cu-list det menu  ">
+					<view class="cu-bar bg-white solid-bottom margin-top-sm">
+						<view class="action">
+							<view class="index">
+								{{index+1}}
+							</view>
+						</view>
+						<view class="action">
+							<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-gray">鐗╂枡缂栫爜:<text class="text-black ">{{item.matnrCode}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<text class="text-gray">鐗╂枡鍚嶇О:<text class="text-black ">{{item.maktx}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item" v-if="check.checkType === 0">
+						<view class="content">
+							<text class="text-gray">搴撳瓨鏁�:<text class="text-black ">{{item.anfme}}</text></text>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<view class="cu-form-group padding-lr-0">
+								<text class=" text-blue">鎵规:</text>
+								<input placeholder="璇疯緭鍏ユ壒娆�" v-model="item.batch"></input>
+							</view>
+						</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%;" :max="max" v-model="item.checkQty"
+									:step='1'></uni-number-box>
+							</view>
+						</view>
+					</view>
+					<view class="cu-item">
+						<view class="content">
+							<view class="cu-form-group padding-lr-0">
+								<text class=" text-blue">澶囨敞:</text>
+								<input placeholder="璇疯緭鍏ュ娉�" v-model="item.memo"></input>
+							</view>
+						</view>
+					</view>
+					<view class="cu-item" v-if="item.checkQty !== item.anfme && check.checkType === 0">
+						<view class="content">
+							<view class="cu-form-group padding-lr-0">
+								<view class=" text-blue">宸紓鍘熷洜</view>
+								<view style="width: 80%;">
+									<uni-data-select style="min-width: 90%; max-width: 90%;" v-model="item.reason"
+										:localdata="reasons" placement="top"></uni-data-select>
+								</view>
+							</view>
+						</view>
+					</view>
 				</view>
-				
-				
-				
 			</block>
 		</view>
-
-
-		
 
 		<view class="cu-bar btn-group foot" v-show="!isconfirm">
 			<button class="cu-btn text-blue line-blue shadow" @click="clear">娓呯┖</button>
 			<button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="complete">鎻愪氦</button>
 		</view>
 
-		
+		<view class="cu-bar btn-group foot" v-show="isconfirm">
+			<button class="cu-btn text-blue line-blue shadow" @click="returnPage">杩斿洖</button>
+			<button class="cu-btn bg-blue shadow-blur" :disabled="repeatClick" @click="sureAdd">纭畾娣诲姞</button>
+		</view>
+
+
 
 	</view>
 </template>
@@ -110,19 +181,21 @@
 	export default {
 		data() {
 			return {
-				check:'',
-				list: [],				
+				check: '',
+				list: [],
 				isconfirm: false,
-				barcode:'',
+				barcode: '',
 				max: 99999999,
-				repeatClick:false,
-				reasons:[]
-				
+				repeatClick: false,
+				reasons: [],
+				matnr: '',
+				matnrList:[]
+
 			}
 		},
-		computed: {			
-			
-			
+		computed: {
+
+
 		},
 		mounted() {
 			this.getReasons()
@@ -130,20 +203,53 @@
 		onLoad() {
 			let that = this
 			const eventChannel = this.getOpenerEventChannel();
-			
+
 			eventChannel.on('checkItem', function(data) {
 				that.check = data.data
-				
+
 			})
-			
+
 		},
 		methods: {
+			sureAdd(){
+				if(this.matnrList.length === 0){
+					uni.showToast({
+						title: "璇锋坊鍔犵墿鏂欐槑缁�",
+						icon: "none",
+						position: 'top'
+					})
+					return ;
+				}
+				this.list.push(...this.matnrList)
+				this.matnrList = []
+				this.isconfirm = !this.isconfirm
+			},
+			remove(index) {
+				this.matnrList.splice(index, 1);
+			},
+			async addMatnr() {
+				const {
+					code,
+					data,
+					msg
+				} = await request('/selectAddMatnr', {
+					matnr:this.matnr
+				})
+				if (code === 200) {
+					this.matnrList.push(data)
+					this.matnr = ''
+				}
+			},
+			returnPage() {
+				this.matnrList = []
+				this.isconfirm = !this.isconfirm
+			},
 			async getReasons() {
 				const {
 					code,
 					data,
 					msg
-				} = await request('/getCheckDiffReasonList', {},'get')
+				} = await request('/getCheckDiffReasonList', {}, 'get')
 				if (code === 200) {
 					this.reasons = data.map(item => ({
 						value: item.id,
@@ -156,7 +262,8 @@
 				this.list = []
 			},
 			clearCode() {
-				this.barcode = ''				
+				this.barcode = ''
+				this.matnr = ''
 			},
 			async search() {
 				this.list = []
@@ -167,67 +274,66 @@
 					code,
 					data,
 					msg
-				} = await request('/getCheckTaskItemList',{
-					barcode:this.barcode,
+				} = await request('/getCheckTaskItemList', {
+					barcode: this.barcode,
 					checkCode: this.check.orderCode
-				}	
-				)
-				if (code === 200) {					
-					if (Object.keys(data).length === 0){
+				})
+				if (code === 200) {
+					if (Object.keys(data).length === 0) {
 						uni.showToast({
 							title: "璇ユ爣绛炬湭鏌ヨ鍒版暟鎹�",
 							icon: "none",
 							position: 'top'
 						})
 					}
-					for(var i=0;i<data.length;i++){
-						data[i].checkQty = data[i].anfme						
+					for (var i = 0; i < data.length; i++) {
+						data[i].checkQty = data[i].anfme
 					}
-					this.list=data
-					
-				}else if(code == 401){
+					this.list = data
+
+				} else if (code == 401) {
 					setTimeout(() => {
 						uni.removeStorageSync('token');
 						uni.reLaunch({
 							url: "/pages/login/login"
 						});
 					}, 1000);
-				}else {
+				} else {
 					uni.showToast({
 						title: msg,
 						icon: "none",
 						position: 'top'
 					})
 				}
-			
-			
+
+
 			},
 			async complete() {
-				
+
 				let that = this
-				if(that.barcode === '' || that.barcode === null){
+				if (that.barcode === '' || that.barcode === null) {
 					uni.showToast({
 						title: "瀹瑰櫒鍙蜂负绌�",
 						icon: "error",
 					})
-					return ;
+					return;
 				}
-				if(that.list === [] || that.list.length === 0){
+				if (that.list === [] || that.list.length === 0) {
 					uni.showToast({
 						title: "浠诲姟鏄庣粏涓虹┖",
 						icon: "error",
 					})
-					return ;
+					return;
 				}
 				this.repeatClick = true
 				const {
 					code,
 					data,
 					msg
-				} = await request('/saveCheckDiff',{
-					container:that.barcode,					
+				} = await request('/saveCheckDiff', {
+					container: that.barcode,
 					checkId: that.check.id,
-					checkDiffItems:that.list
+					checkDiffItems: that.list
 				})
 				if (code === 200) {
 					uni.showToast({
@@ -272,7 +378,8 @@
 		min-height: 80upx;
 		align-items: center;
 	}
-	.content2 {		
+
+	.content2 {
 		/* background-color: coral; */
 		width: 100%;
 		display: flex;
@@ -282,7 +389,8 @@
 		margin-right: 10px;
 		color: #0081ff;
 	}
-	.noMargin{
+
+	.noMargin {
 		margin-top: 0px;
 		padding: 5px;
 	}

--
Gitblit v1.9.1