From 5d62f0a16c8475aff2103f476fe827ec3e16046c Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 24 三月 2025 19:49:17 +0800
Subject: [PATCH] 1

---
 pages/phyz/orderOut/bcpOrderOutSelect_3.vue |  416 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pages.json                                  |    2 
 2 files changed, 417 insertions(+), 1 deletions(-)

diff --git a/pages.json b/pages.json
index acd3d62..f0e1c53 100644
--- a/pages.json
+++ b/pages.json
@@ -429,7 +429,7 @@
 		    "path" : "pages/phyz/orderOut/bcpOrderOutSelect_3",
 		    "style" :                                                                                    
 		    {
-		        "navigationBarTitleText": "鍚稿绠卞3涓嬫灦鍑哄簱",
+		        "navigationBarTitleText": "鍏朵粬鍑哄簱鍗�",
 		        "enablePullDownRefresh": false
 		    }
 		    
diff --git a/pages/phyz/orderOut/bcpOrderOutSelect_3.vue b/pages/phyz/orderOut/bcpOrderOutSelect_3.vue
new file mode 100644
index 0000000..a6d27fa
--- /dev/null
+++ b/pages/phyz/orderOut/bcpOrderOutSelect_3.vue
@@ -0,0 +1,416 @@
+<template>
+	<view>
+		<view class="code">
+			<uni-search-bar  v-model="searchValue1" 
+				maxlength="500" ancel="cancel" @confirm="searchValueInput1()" @clear="clear" placeholder="杈撳叆 / 鎵弿 璁㈠崟鍙�">
+			</uni-search-bar>
+			<view class="code-title">
+				<view></view>
+				<view style="width: 100%;text-align: center;margin: 16rpx 0;">{{searchValue1}} 鎬绘暟閲忥細- {{total}} -</view>
+				<view style="width: 100rpx;margin: 16rpx 0;" @click="filter()">绛涢��</view>
+			</view>
+		</view>
+		
+		<view class="list list-font-color" :class="orderDetl.color" v-for="(orderDetl,index) in dataList" :key="index">
+			<view class="list-left">
+				<view class="detl-threeCode">{{orderDetl.threeCode}}</view>
+				<view>涓诲崟鍙凤細{{orderDetl.orderNo}}</view>
+				<view>缂栧彿锛歿{orderDetl.matnr}}</view>
+				<view>鍚嶇О锛歿{orderDetl.maktx}}</view>
+				<view>绫诲瀷锛歿{orderDetl.brand}}</view>
+				<view>璁㈠崟鏁伴噺锛歿{orderDetl.anfme}}</view>
+				<view>搴撳瓨鏁伴噺锛歿{orderDetl.stock}}</view>
+				<view>宸插嚭鏁伴噺锛歿{orderDetl.qty}}</view>
+				<view>姝e湪浣滀笟鏁伴噺锛歿{orderDetl.workNum?orderDetl.workNum:0}}</view>
+				
+			</view>
+			<view class="list-right" @click="goToLocDetl(orderDetl)">
+				<uni-icons type="right" size="25"  color="#fff"></uni-icons>
+			</view>
+		</view>
+		
+		<!-- 鍨珮 -->
+		<view style="height: 340rpx;text-align: center;color: #b9b9b9;">
+			- 宸茬粡鍒板簳浜� -
+		</view>
+		
+		<!-- 绛涢�夊脊绐� -->
+		<view>
+			<uni-popup ref="filter" type="dialog">
+				<view class="filter-popup">
+					<!-- 鏍囬 -->
+					<view class="title">绛涢��</view>
+					<view class="popup-item" style="background-color: #dfdfdf;">
+						<view class="item-cl">
+							<view>閿�鍞鍗曪細</view>
+							<input type="text" v-model="searchValue1">
+						</view>
+					</view>
+					<view class="popup-item" style="background-color: #dfdfdf;">
+						<view class="item-cl">
+							<view>涓昏鍗曞彿锛�</view>
+							<input type="text" v-model="orderNo">
+						</view>
+					</view>
+					<view class="popup-item" style="background-color: #dfdfdf;">
+						<view class="item-cl">
+							<view>鍟嗗搧缂栧彿锛�</view>
+							<input type="text" v-model="matnr">
+						</view>
+					</view>
+					<view class="popup-item" style="background-color: #dfdfdf;">
+						<view class="item-cl">
+							<view>鍟嗗搧鍚嶇О锛�</view>
+							<input type="text" v-model="maktx">
+						</view>
+					</view>
+					<view class="popup-item" style="background-color: #dfdfdf;">
+						<view class="item-cl">
+							<view>鍟嗗搧绉嶇被锛�</view>
+							<input type="text" v-model="brand">
+						</view>
+					</view>
+					<view class="btn filter-btn">
+						<view class="btn-left" @click="filterClose">閲嶇疆</view>
+						<view class="btn-right" @click="filterConfirm()">纭</view>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				baseUrl: '',
+				token: '',
+				searchValue1: '',
+				searchValue2: '',
+				orderNo: '',
+				matnr: '',
+				maktx: '',
+				brand: '',
+				total: '',
+				dataList: [],
+				orderCarList: [],
+				data: {
+					curr: 1,
+					limit: 100,
+					three_code: '',
+					matnr: '',
+					maktx: '',
+					order_no: '',
+					brand: ''
+				},
+				wrkingData: []
+			}
+		},
+		onReachBottom() {
+			this.status = 'more';
+			this.getOrderDetlList(this.searchValue1,10);
+		},
+		onShow() {
+			this.baseUrl = uni.getStorageSync('baseUrl');
+			this.token = uni.getStorageSync('token');
+			this.searchValue1 = uni.getStorageSync('threeCodeOut1');
+			this.searchValue2 = uni.getStorageSync('threeCodeOut2');
+			this.getOrderDetlList(this.searchValue1,10)
+		},
+		methods: {
+			 getOrderDetlList(threeCode,limit) {
+				this.wrkingData= []
+				this.get()
+				uni.showLoading({})
+				let _this = this
+				_this.mask = true
+				_this.data.three_code = threeCode
+				_this.data.limit = limit
+				uni.request({
+					url: `${_this.baseUrl}/orderDetl/pakout/list/authV9`,
+					header: {'token': uni.getStorageSync('token')},
+					data: _this.data,
+					method: 'GET',
+					success(res) {
+						uni.hideLoading({})
+						res = res.data
+						if (res.code === 200) {
+							for (let k of res.data.records) {
+								if (k.anfme > k.qty && k.qty == 0) {
+									k['color'] = 'order-sts-start'
+								} else if (k.anfme > k.qty && k.qty != 0) {
+									k['color'] = 'order-sts-working'
+								} else {
+									k['color'] = 'order-sts-end'
+								}
+							}
+							let list = res.data.records
+							if (_this.wrkingData&&_this.wrkingData.length >0){
+								for (let item of list) {
+									for (let k of _this.wrkingData) {
+										if (k.matnr == item.matnr && k.orderNo == item.orderNo && k.threeCode == item
+											.threeCode) {
+											item['workNum'] = k.anfme
+										}
+									}
+								}
+							}
+							_this.dataList =  _this.dataList.concat(list);
+							_this.data.curr = _this.data.curr + 1
+							_this.total = res.data.total
+							_this.mask = false
+						} else if (res.code == 403) {
+							uni.showToast({ title: res.msg, icon: "error", position: 'top' })
+							setTimeout(() => { uni.reLaunch({ url: '../../login/login' }); }, 1000);
+						} else {
+							uni.showToast({ title: res.msg, icon: "error", position: 'top' })
+						}
+					}
+				})
+			},
+			get() {
+				let _this = this
+				let data = {limit:9999,curr: 1}
+				uni.request({
+					url: `${_this.baseUrl}/orderDetl/pakout/workNum`,
+					header: {'token': uni.getStorageSync('token')},
+					data: data,
+					method: 'GET',
+					success(res) {
+						var res = res.data
+						if (res.code === 200) {
+							const result = res.data.reduce((acc, curr) => {
+							    const key = `${curr.matnr}-${curr.orderNo}-${curr.threeCode}`;
+							    if (acc[key]) {
+							        acc[key].anfme += curr.anfme;
+							    } else {
+							        acc[key] = { ...curr };
+							    }
+							    return acc;
+							}, {});
+							const newArray = Object.values(result);
+							_this.wrkingData = newArray
+								if (_this.dataList&&_this.dataList.length >0){
+									for (let item of _this.dataList) {
+										for (let k of _this.wrkingData) {
+											if (k.matnr == item.matnr && k.orderNo == item.orderNo && k.threeCode ==
+												item.threeCode) {
+												item['workNum'] = k.anfme
+												break
+											}else{
+												item['workNum'] = 0
+											}
+										}
+									}
+								}
+						}
+					}
+				})
+			},
+			searchValueInput1() {
+				this.dataList = []
+				this.data.curr = 1
+				uni.setStorageSync('threeCodeOut1', this.searchValue1);
+				uni.setStorageSync('threeCodeOut2', this.searchValue2);
+				if (this.searchValue1.length == 0) {
+					this.getOrderDetlList(this.searchValue1,10)
+				} else {
+					this.getOrderDetlList(this.searchValue1,10)
+				}
+				
+			},
+			searchValueInput2() {
+				uni.setStorageSync('threeCodeOut1', this.searchValue1);
+				uni.setStorageSync('threeCodeOut2', this.searchValue2);
+				if (this.searchValue1.length == 0) {
+					this.getOrderDetlList(this.searchValue1,10)
+				} else {
+					this.getOrderDetlList(this.searchValue1,10)
+				}
+			},
+			clear() {
+				this.dataList = []
+				this.data.curr = 1
+				setTimeout(()=> {
+					this.getOrderDetlList(this.searchValue,10)
+				},300)
+			},
+			clear2() {
+				setTimeout(()=> {
+					this.searchValue2 = ''
+					this.getOrderDetlList(this.searchValue1,10)
+				},300)
+			},
+			goToLocDetl(item) {
+				if (item.qty >= item.anfme) {
+					uni.showToast({ title: '宸插畬鎴愯鍗曚綔涓氭暟閲�', icon: "error", position: 'top' })
+					return
+				}
+				let _this = this
+				item['orderType'] = 'bcp'
+				uni.navigateTo({
+					url: './orderCheck_2',
+					success(res) {
+						res.eventChannel.emit('item', {
+							item: item,
+						}),
+						res.eventChannel.emit('type', {
+							type: "bcp"
+						})
+					},
+					events: {
+						acceptDataFromOpenedPage: function(data) {
+							_this.getOrderDetlList(this.searchValue1,10)
+						}
+					}
+				})
+			},
+			// 绛涢��
+			filter() {
+				this.$refs.filter.open('bottom')
+			},
+			filterConfirm() {
+				this.dataList = []
+				this.data.curr = 1
+				this.data.maktx = this.maktx
+				this.data.matnr = this.matnr
+				this.data.order_no = this.order_no
+				this.data.brand = this.brand
+				this.getOrderDetlList(this.searchValue1,10)
+				this.$refs.filter.close()
+			},
+			filterClose() {
+				this.dataList = []
+				this.data.curr = 1
+				this.data.maktx = ''
+				this.data.matnr = ''
+				this.data.order_no = ''
+				this.data.brand = ''
+				this.getOrderDetlList(this.searchValue1,10)
+				this.$refs.filter.close()
+			}
+			
+		}
+	}
+</script>
+
+<style>
+	@import url('../../../static/css/common/order.css');
+	.list-font-color {
+		color: #fff;
+		/* background-color: #33bb44; */
+	}
+	.order-sts-start {
+		background-color: #3eb689;
+	}
+	.order-sts-working {
+		background-color: #ff9d46;
+	}
+	.order-sts-end {
+		background-color: #ff7356;
+	}
+	.detl-threeCode {
+		font-size: 28px;
+		font-weight: bold;
+	}
+	
+	.title {
+		height: 100rpx;
+		line-height: 100rpx;
+		width: 100%;
+		color: #606266;
+		text-align: center;
+		font-size: 16px;
+	}
+	.popup-item {
+		height: 80rpx;
+		line-height: 80rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	.popup-item-left {
+		width: 16vw;
+		padding-right: 20rpx;
+		text-align: right;
+		color: #606266;
+	}
+	.popup-item-right {
+		display: flex;
+		align-items: center;
+		width: 50vw;
+		height: 50rpx;
+		padding: 2px 5px;
+		border: 1px solid #E4E7ED;
+		border-radius: 5rpx;
+	}
+	.popup-item-right input{
+		color: #606266;
+	}
+	.btn {
+		display: flex;
+		height: 90rpx;
+		margin-top: 20rpx;
+		border-top: 1px solid #DCDFE6;
+		justify-content: center;
+		align-items: center;
+	}
+	.btn-left {
+		display: flex;
+		flex: 1;
+		height: 100%;
+		justify-content: center;
+		align-items: center;
+		color: #606266;
+		border-right: 1px solid #DCDFE6;
+	}
+	.btn-right {
+		display: flex;
+		flex: 1;
+		justify-content: center;
+		align-items: center;
+		color: #409EFF;
+	}
+	.filter-popup {
+		width: 100%;
+		height: 80vh;
+		background-color: #FFF;
+		position: relative;
+		border-radius: 30rpx 30rpx 0rpx 0rpx;
+	}
+	.filter-popup-item {
+		height: 100%;
+		width: 100%;
+		background-color: #c9cdd5;
+	}
+	.filter-popup-item-left {
+		width: 30%;
+		height: 100%;
+		background-color: #DCDFE6;
+		
+	}
+	.item-btn {
+		width: 100%;
+		height: 80rpx;
+		line-height: 80rpx;
+		background-color: #c9cdd5;
+		text-align: center;
+	}
+	.item-btn:checked {
+		background-color: #606266;
+	}
+	.filter-btn {
+		position: absolute;
+		left: 0;
+		bottom: 0;
+		width: 100%;
+		background-color: #FFF;
+	}
+	.item-cl {
+		display: flex;align-items: center;
+	}
+	.item-cl input {
+		border-bottom: 1px solid #b9b9b9;
+	}
+</style>

--
Gitblit v1.9.1