From cc32dc8d26f71497ce7f7e43930ec03035e6fe90 Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期三, 20 十一月 2024 14:23:14 +0800
Subject: [PATCH] #

---
 pages/order/orderComb.vue   |   87 ++++++-------
 pages.json                  |    9 +
 pages/order/orderSelect.vue |  248 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 298 insertions(+), 46 deletions(-)

diff --git a/pages.json b/pages.json
index 853f6cf..ca2ab5c 100644
--- a/pages.json
+++ b/pages.json
@@ -388,6 +388,15 @@
             }
             
         }
+        ,{
+            "path" : "pages/order/orderSelect",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "閫夋嫨璁㈠崟",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "black",
diff --git a/pages/order/orderComb.vue b/pages/order/orderComb.vue
index af177b6..0668df0 100644
--- a/pages/order/orderComb.vue
+++ b/pages/order/orderComb.vue
@@ -20,10 +20,10 @@
 				<input type="text" placeholder=" 鎵爜 / 杈撳叆" v-model="barcode" :focus="barcodeFocus"
 					@input="barcodeInput()">
 			</view>
-			<view class="item">
+			<!-- <view class="item">
 				<view class="code-decs">璁㈠崟鍙�:</view>
 				<uni-combox :candidates="orderNoList" placeholder="璇烽�夋嫨璁㈠崟" v-model="orderNo" @input="getOrderDet"></uni-combox>
-			</view>
+			</view> -->
 		</view>
 		<view class="mat-list-title">
 			<view style="width: 200rpx;"></view>
@@ -32,49 +32,21 @@
 		</view>
 		<scroll-view>
 			<checkbox-group class="list" v-for="(item,i) in dataList" :key="i" @change="checkboxChange">
-				<view class="aside">
-					<!-- <checkbox :value="item.matnr" :checked="item.checked" @click="set(i)"/> -->
-				</view>
 				<view class="list-left" style="margin: 0;">
 					<view class="list-left-item">
-						<view class="desc">No锛�</view>
-						<view class="left-item">{{i + 1}}</view>
+						<view class="desc">No锛歿{i + 1}}</view>
 					</view>
 					<view class="list-left-item">
-						<view class="desc">璁㈠崟鍙凤細</view>
-						<view class="left-item">
-							<uni-tag :text="item.orderNo" type="primary"></uni-tag>
-						</view>
+						<view class="desc">璁㈠崟鍙凤細{{item.orderNo}}</view>
 					</view>
 					<view class="list-left-item">
-						<view class="desc">鏂欏彿锛�</view>
-						<view class="left-item">
-							<uni-tag :text="item.matnr" type="primary"></uni-tag>
-						</view>
+						<view class="desc">鏂欏彿锛歿{item.matnr}}</view>
 					</view>
 					<view class="list-left-item">
-						<view class="desc">鍚嶇О锛�</view>
-						<view class="left-item">{{item.maktx}}</view>
+						<view class="desc">鎵瑰彿锛歿{item.batch}}</view>
 					</view>
-					<view class="list-left-item">
-						<view class="desc">瑙勬牸锛�</view>
-						<view class="left-item">{{item.specs}}</view>
-					</view>
-					<view class="list-left-item">
-						<view class="desc">鎵瑰彿锛�</view>
-						<view class="left-item">
-							<uni-tag :text="item.batch" type="warning"></uni-tag>
-						</view>
-					</view>
-					<!-- <view class="list-left-item">
-						<view class="desc">閲嶉噺锛�</view>
-						<view class="left-item">
-							<uni-tag :text="item.weight" type="warning"></uni-tag>
-						</view>
-					</view> -->
-					<view class="list-left-item">
-						<view class="desc">鍓╀綑鏁伴噺锛�</view>
-						<view class="left-item">{{item.anfme}}</view>
+					<view class="list-left-item" >
+						<view class="desc">鏁伴噺锛歿{item.anfme}}</view>
 					</view>
 				</view>
 				<view class="list-right">
@@ -113,7 +85,7 @@
 					<view class="popup-item">
 						<view class="popup-item-left">鏁伴噺:</view>
 						<view class="popup-item-right" style="border: none;justify-content: center;">
-							<uni-number-box :value="count" :step='1' :max="9999999" color="#747474"
+							<uni-number-box :value="count" :step='1' :max="maxCount" color="#747474"
 								@change="changeValue" />
 						</view>
 					</view>
@@ -191,6 +163,7 @@
 				removeNum: 0,
 				orderNoList: [],
 				orderNo: '',
+				maxCount: 0
 			}
 		},
 		onShow() {
@@ -212,14 +185,35 @@
 				this.dataList[e].checked = ck ? false:true
 			},
 			getChecked() {
-				var checkedList = []
-				for(var i = 0; i < this.dataList.length; i++) {
-					var t = !this.dataList[i].checked
-					if (this.dataList[i].checked) {
-						checkedList.push(this.dataList[i])
+				let _this = this
+				uni.navigateTo({
+					url: './orderSelect',
+					success(res) {
+						res.eventChannel.emit('matList', {
+							matList: _this.dataList
+						})
+					},
+					events: {
+						pickList: function(data) {
+							for (let k of data.data) {
+								let add = true
+								if (_this.dataList.length == 0) {
+									_this.dataList.push(k)
+									continue
+								}
+								for (let m of _this.dataList) {
+									if (k.matnr == m.matnr && k.orderNo == k.orderNo) {
+										add = false
+									}
+								}
+								if (add) {
+									k['maxCount'] = k.anfme
+									_this.dataList.push(k)
+								}
+							}
+						}
 					}
-				}
-				this.dataList = checkedList
+				})
 			},
 			getOrderDet() {
 				let that = this
@@ -459,6 +453,7 @@
 				this.count = this.dataList[i].anfme
 				this.batch = this.dataList[i].batch
 				this.weight = this.dataList[i].weight
+				this.maxCount = this.dataList[i].maxCount
 				this.rowNum = i
 				this.eject()
 			},
@@ -542,7 +537,7 @@
 	.code {
 		width: 100%;
 		position: fixed;
-		min-height: 200rpx;
+		min-height: 100rpx;
 		background-color: #FFF;
 		z-index: 10;
 	}
@@ -583,7 +578,7 @@
 		width: 100%;
 		background-color: white;
 		position: fixed;
-		margin-top: 200rpx;
+		margin-top: 100rpx;
 		z-index: 9;
 		/* border-top: 1px solid #DCDFE6; */
 		text-align: center;
diff --git a/pages/order/orderSelect.vue b/pages/order/orderSelect.vue
new file mode 100644
index 0000000..6fa2fbe
--- /dev/null
+++ b/pages/order/orderSelect.vue
@@ -0,0 +1,248 @@
+<template>
+	<view>
+		<view class="code">
+			<view style="display: flex;align-items: center;">
+				<view style="width: 70rpx;padding-left: 20rpx;">{{searchType}}</view>
+				<view style="flex: 1;margin-left: -8rpx;background-color: white;padding: 4px;margin: 4px;border-radius: 4px;">
+					<!-- <uni-search-bar  v-model="searchValue"
+						maxlength="500" ancel="cancel" @confirm="getMatList()" @clear="clear" placeholder="杈撳叆 / 鎵弿">
+					</uni-search-bar> -->
+					<uni-combox :candidates="orderNoList" placeholder="璇烽�夋嫨璁㈠崟" v-model="orderNo" @input="getOrderDet"></uni-combox>
+				</view>
+			</view>
+			<view class="code-title">
+				<view style="flex: 1;"></view>
+				<view style="width: 100%;text-align: center;margin: 16rpx 0;flex: 1;">{{searchValue}} 鎬绘暟閲忥細- {{dataList.length}} -</view>
+				<view style="flex: 1;display: flex;align-items: center;"><button size="mini" type="primary" @click="allSelect()">{{seltitle}}</button></view>
+			</view>
+		</view>
+		
+		<view class="order__list" v-for="(orderDetl,index) in dataList" :key="index">
+			<view class="order__list__left">
+				<view>No锛歿{index + 1}}</view>
+				<view>璁㈠崟鍙凤細{{orderDetl.orderNo}}</view>
+				<view>鏂欏彿锛歿{orderDetl.matnr}}</view>
+				<view>鎵瑰彿锛歿{orderDetl.batch}}</view>
+				<view>鍙敤鏁伴噺锛歿{orderDetl.enableQty}}</view>
+			</view>
+			<view class="order__list__right">
+				<!-- <uni-icons type="folder-add" size="25"  color="#fff"></uni-icons> -->
+				<label @click="checkboxChange(orderDetl)">
+					<checkbox :value="orderDetl.matnr" :checked="orderDetl.checked" style="transform:scale(0.7)" /><text></text>
+				</label>
+			</view>
+		</view>
+		<!-- 搴曢儴鎿嶄綔鎸夐挳 -->
+		<view class="buttom">
+			<button size="mini" type="primary" @click="addItems()">鎻愬彇</button>
+		</view>
+		<view style="height: 100rpx;width: 100%;text-align: center;line-height: 100rpx;">- 宸茬粡鍒板簳浜� -</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				baseUrl: '',
+				token: '',
+				storeId: 0,
+				store: '',
+				total: 0,
+				searchType: '璁㈠崟',
+				searchValue: '',
+				dataList: [],
+				selectedList: [],
+				matnr: '',
+				orderNo: '',
+				orderNoList: [],
+				seltitle: '鍏ㄩ��'
+			}
+		},
+		onShow() {
+			let _this = this
+			this.baseUrl = uni.getStorageSync('baseUrl');
+			this.token = uni.getStorageSync('token');
+			this.storeId = uni.getStorageSync('store')
+			if (this.storeId == 1) {
+				this.store = '瀹佹尝浠�'
+			}
+			if (this.storeId == 2) {
+				this.store = '鏂版槍浠�'
+			}
+			const eventChannel = this.getOpenerEventChannel();
+			eventChannel.on('item', function(data) {
+				_this.matnr = data.item.matnr
+				_this.getMatList()
+			})
+			this.getOrderNoList()
+		},
+		methods: {
+			addItems() {
+				let pickList = []
+				for (let k of this.dataList) {
+					if (k.checked) {
+						pickList.push(k)
+					}
+				}
+				this.getOpenerEventChannel().emit('pickList', {data: pickList});
+				uni.navigateBack({
+					
+				})
+			},
+			checkboxChange(e) {
+				let items = this.dataList,
+				values = e.matnr;
+				if (e.checked) {
+					this.$set(e,'checked',false)
+				} else {
+					this.$set(e,'checked',true)
+				}
+				var count = 0
+				for (let k of items) {
+					if (k.checked) {
+						count++
+					}
+				}
+				if (count == items.length && count > 0) {
+					this.seltitle = '鍙栨秷鍏ㄩ��'
+				} else {
+					this.seltitle = '鍏ㄩ��'
+				}
+			},
+			allSelect() {
+				if (this.seltitle == '鍏ㄩ��') {
+					for (let k of this.dataList) {
+						k.checked = true
+					}
+					this.seltitle = '鍙栨秷鍏ㄩ��'
+				} else {
+					for (let k of this.dataList) {
+						k.checked = false
+					}
+					this.seltitle = '鍏ㄩ��'
+				}
+				
+			},
+			getOrderDet() {
+				let that = this
+				uni.request({
+					url: that.baseUrl + '/order/list/orderNo',
+					data: {orderNo: that.orderNo} ,
+					method: 'GET',
+					success(res) {
+						res = res.data;
+						if (res.code === 200) {
+							that.dataList = res.data
+							for (var i = 0; i < that.dataList.length; i++) {
+								that.$set(that.dataList[i],'checked',false)
+							}
+						}
+					}
+				})
+			},
+			getOrderNoList() {
+				let that = this
+				uni.request({
+					url: this.baseUrl + '/order/comb/list/all',
+					header: {
+						'token': uni.getStorageSync('token')
+					},
+					method: 'POST',
+					success(res) {
+						res = res.data
+						for (var i = 0; i < res.data.length; i++) {
+							that.orderNoList.push(res.data[i].order_no)
+						}
+					}
+				})
+			},
+			clear() {
+				this.searchValue = ''
+				this.getOrderNoList(this.locNo)
+			},
+			back() { uni.navigateBack({}) },
+			set(e) {
+				var ck = this.dataList[e].checked
+				this.dataList[e].checked = ck ? false : true
+			},
+			getMatList() {
+				let that = this
+				let searchParam = {
+					orderNo: that.searchValue,
+					matnr: that.matnr,
+				}
+				console.log(searchParam);
+				uni.request({
+					url: that.baseUrl + '/mobile/outBound/mat/list',
+					header: {
+						'token': uni.getStorageSync('token')
+					},
+					data: searchParam,
+					method: 'GET',
+					success(res) {
+						res = res.data;
+						if (res.code === 200) {
+							that.total = res.data.length
+							const result1 = res.data.filter(obj1 => 
+							    !that.selectedList.some(obj2 => obj1.matnr === obj2.matnr && obj1.orderNo === obj2.orderNo)
+							);
+							that.dataList = result1
+							that.total = result1.length
+						} else if (res.code == 403) {
+							uni.showToast({ title: res.msg, icon: "error", position: 'center' })
+							setTimeout(() => { uni.reLaunch({ url: '../login/login' }); }, 1000);
+						} else {
+							uni.showToast({ title: res.msg, icon: "error", position: 'center' })
+						}
+					}
+				})
+				
+			},
+			addItem(mat) {
+				this.getOpenerEventChannel().emit('sMat', {data: mat});
+				uni.navigateBack({
+					
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	@import url('../../static/css/wms.css/wms.css');
+	.code {
+		background-color: #d9d9d9;
+		z-index: 99;
+		position: sticky;
+		top: 0rpx;
+		left: 0;
+	}
+	.code-title {
+		display: flex;
+	}
+	.order__list {
+		margin: 20rpx;
+		font-size: 14px;
+		background-color: #fff;
+		border-radius: 20rpx;
+		border: 1px solid #eeeeee;
+		display: flex;
+		position: relative;
+		background-color: #3eb689;
+		color: #FFF;
+	}
+	.order__list__left {
+		flex: 1;
+		padding: 20rpx;
+		position: relative;
+	}
+	.order__list__right {
+		width: 70rpx;
+		border-left: 1px solid #eeeeee;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+</style>
+

--
Gitblit v1.9.1