From aea26294b5a6b4b18abe9f7244d0140770626613 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期二, 26 九月 2023 14:57:21 +0800
Subject: [PATCH] #

---
 pages/basics/pick.vue  |  651 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 pages/index/index2.vue |    6 
 pages.json             |    9 
 3 files changed, 666 insertions(+), 0 deletions(-)

diff --git a/pages.json b/pages.json
index 885d263..cc58aa2 100644
--- a/pages.json
+++ b/pages.json
@@ -211,6 +211,15 @@
 		        "enablePullDownRefresh": false
 				
 		    }
+		},
+		{
+		    "path" : "pages/basics/pick",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "鎷f枡",
+		        "enablePullDownRefresh": false
+				
+		    }
 		}
 		
 		
diff --git a/pages/basics/pick.vue b/pages/basics/pick.vue
new file mode 100644
index 0000000..74d6f38
--- /dev/null
+++ b/pages/basics/pick.vue
@@ -0,0 +1,651 @@
+<template>
+	<view >
+		<scroll-view scroll-y catch:touchmove="touchmove">
+			<view class="square-2">
+				<view class="square-title">
+					<view class="title-sign"><view class="sign"></view></view>
+					<view class="title-text"><text>鎵樼洏鏉$爜</text></view>
+				</view>
+				<view class="square-content">
+					<view class="content-input">
+						<input v-model="barcode" type="text" placeholder="鎵爜 / 杈撳叆" 
+						:focus="barcodeFocus" @input="checkedBarcode()" placeholder-style="line-height:  85rpx;">
+						<uni-icons type="closeempty" size="20" color="#dadada" @click="removeBarcode()"></uni-icons>
+					</view>
+				</view>
+			</view>
+			
+			<view class="square-1">
+				<view class="square-title">
+					<view class="title-sign"><view class="sign"></view></view>
+					<view class="title-text"><text>鍟嗗搧鍒楄〃</text></view>
+					<!-- <label v-show="matList.length != 0" style="float: right;margin-right: 20px;margin-top: 13px;"><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove()"></uni-icons></label> -->
+				</view>
+			</view>
+			
+			<view class="square-none"  v-show="matList.length === 0">
+				<view class="v-show">鏆傛棤鏇村鏁版嵁...</view>
+			</view>
+			
+			<checkbox-group @change="checkbox">
+				<view v-for="(item,index) in matList" :key="index" class="data-list bg-false" :class="'bg-'+item.checked" >
+					<view class="data-list-left">
+						<!-- <view>
+							<checkbox :value="item.id+''" :checked="item.checked" style="display: block;" />
+						</view> -->
+						<!-- <table>
+							<tr><td>鐗╂枡鍙凤細</td><td>{{item.matnr}}</td></tr>
+						</table> -->
+						<view><text style="width: 400rpx;">瑙勬牸锛歿{item.specs}}</text></view>
+						<view><text style="width: 400rpx;">鍗曞彿锛歿{item.orderNo ? item.orderNo : '--'}}</text></view>
+						<view><text style="width: 400rpx;">鍝佸悕锛歿{item.maktx}}</text></view>
+						<view><text style="width: 400rpx;">鍏ュ簱鍖哄煙锛歿{item.matType$}}</text></view>
+						<view><text style="width: 400rpx;">鎵瑰彿锛歿{item.batch}}</text></view>
+						<view><text style="width: 400rpx;">瀹㈡埛淇℃伅锛歿{item.cstmr}}</text></view>
+						<view>
+							<text style="width: 400rpx;">澶囨敞锛歿{item.memo}}</text>
+							<text style="width: 400rpx;margin-left: 100rpx">鍑哄簱鏁伴噺锛歿{item.anfme}}</text>
+						</view>
+						<!-- <view>
+							<text style="width: 400rpx;">鏁伴噺锛歿{item.anfme}}</text>
+						</view> -->
+					</view>
+					<!-- <view class="data-list-right">
+						<label><uni-icons type="compose" size="20" color="#a5a5a5" @click="revise(item,index)"></uni-icons></label>
+						<label><uni-icons type="trash" size="25" color="#a5a5a5" @click="remove(item,index)"></uni-icons></label>
+					</view> -->
+				</view>
+			</checkbox-group>
+		</scroll-view>
+		
+		
+		<!-- 搴曢儴鎸夐挳 -->
+		<view class="footer flex justify-around">
+			<!-- <label class="label-btn" style="width: 170rpx;">
+				<checkbox :checked="check" @click="allChecked()">{{checkText}}</checkbox>
+			</label>
+			<label class="label-btn" style="width: 100rpx;">
+				<text  @click="reChecked()">鍙嶉��</text>
+			</label> -->
+			
+			<label class="label-btn" style="width: 150rpx;">
+				<button class="cu-btn" @click="resst()">閲嶇疆</button>
+			</label>
+			<!-- <label class="label-btn">
+				<button class="cu-btn bg-blue " @click="comb()">缁勬墭</button>
+			</label> -->
+		</view>
+		<!-- 寮圭獥 -->
+		<!-- 淇敼鏁伴噺 -->
+		<uni-popup ref="revise" >
+			<view class="revise-box ">
+				<view class="revise-box-top">
+					<view class="color-block-blue"></view>
+					<text class="title">淇敼</text>
+				</view>
+				<view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+					<text style="display: inline-block;float: left;width: 50px;">鎵瑰彿锛�</text>
+					<input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="batch">
+				</view>
+				<view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+					<text style="display: inline-block;float: left;width: 50px;">澶囨敞锛�</text>
+					<input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="memo">
+				</view>
+				<view class="" style="position: relative;left: 50px;margin-bottom: 20px;">
+					<text style="display: inline-block;float: left;width: 50px;">瀹㈡埛锛�</text>
+					<input type="text" style="width: 100px;border-bottom: 1px solid #9e9e9e;" v-model="cstmr">
+				</view>
+				<view class="changeBox">
+					<view class="num-box">
+						<text style="display: inline-block;float: left;width: 50px;">鏁伴噺锛�</text>
+						<uni-number-box :value="count" :max="9999999" color="#747474"  @change="changeValue"/>
+					</view> 
+				</view>
+				<view class="revise-box-buttom">
+					<view>
+						<button class="cu-btn bg-blue" @click="confirm()">纭</button>
+					</view>
+				</view>
+			</view>
+		</uni-popup>
+	</view>
+</template>
+
+<script>
+	import permision from "@/common/permission.js"
+import loginVue from "../login/login.vue";
+	export default {
+		data() {
+			return {
+				commonUrl:null,
+				barcode: '',
+				barcodeFocus:true,
+				focus:false,
+				type: 'center',
+				searchBox: 'hide',
+				pick:'hide',
+				matnr:'',
+				matList:[],
+				result: '',
+				enableQty:'',
+				count:'',
+				minCount:0,
+				maxCount:'',
+				rowNum:'',
+				check:false,
+				checkText:'鍏ㄩ��',
+				checkedData:[],
+				batch:'',
+				memo: '',
+				cstmr: '',
+				ck1: false,
+				ck2: true,
+				frozen: 0,
+			}
+		},
+		onShow() {
+			setTimeout(()=>{
+				// this.focuss()
+			}, 100);
+			
+		},
+		mounted(){
+			const UIP = uni.getStorageSync('UIP');
+			this.baseIP = UIP;
+			const UPORT = uni.getStorageSync('UPORT');
+			this.basePORT = UPORT
+			const PROJ = uni.getStorageSync('UPROJ');
+			this.baseUrl = PROJ
+			this.getUrl()
+		},
+		methods: {
+			// 鑾峰彇url
+			getUrl() {
+				this.commonUrl = this.baseHttp + this.baseIP + ':' +this.basePORT + "/" +this.baseUrl
+			},
+			// 妫�鏌ユ潯鐮�
+			checkedBarcode() {
+				let that = this
+				uni.request({
+					url: that.commonUrl + '/mobile/pick/auth',
+					data:that.barcode,
+					header: {
+						'token':uni.getStorageSync('token')
+					},
+					method:'POST',
+					success(result) {
+						var res = result.data
+						if (res.code === 200) {
+							if (!res.data) {
+								
+							} else {
+								for (let k in res.data) {
+									that.matList.push(res.data[k])
+								}
+							}
+						}
+					}
+				})
+			},
+			// 鍐荤粨
+			isFrozen() {
+				var temp = this.ck1
+				this.ck1 = this.ck2
+				this.ck2 = temp
+				this.frozen = this.ck1
+				if (this.frozen == true) {
+					this.frozen = 1
+				} else {
+					this.frozen = 0
+				}
+			},
+			// barcode input 浜嬩欢
+			barcodeInput() {
+				// 涓嶈缃畾鏃跺櫒 浼氬嚭鐜版壂鍏ョ殑瀛楃涓蹭笉鍏�
+				setTimeout(()=>{
+					var len = this.barcode.length
+					if (len != 8) {
+						uni.showToast({title: '鎵樼洏鐮佹湁璇閲嶈瘯', icon: "none", position: 'top'});
+						this.barcodeFocuss()
+						return;
+					}
+					this.focuss()
+				},200)
+			},
+			// 鎵樼洏鐮佹湁璇噸缃�
+			barcodeFocuss() {
+				let that = this;
+				that.barcodeFocus = false;
+				setTimeout(()=>{
+					that.barcode = '';
+					that.barcodeFocus = true;
+				}, 100);
+			},
+			// 鍟嗗搧鍏夋爣娓呯┖閲嶇疆
+			focuss() {
+				// #ifdef APP
+				let that = this;
+				that.focus = false;
+				setTimeout(()=>{
+					that.matnr = '';
+					that.focus = true;
+				}, 100);
+				// #endif
+			},
+			resst() {
+				this.matList = []
+				this.barcode = ''
+				this.matnr = ''
+				this.barcodeFocuss()
+				uni.vibrateShort();
+			},
+			removeBarcode() {
+				this.barcode = ''
+				uni.vibrateShort();
+				this.barcodeFocus = false;
+				this.$nextTick(function() {
+					this.barcodeFocus = true;
+				});
+			},
+			removeMatnr() {
+				this.matnr = ''
+				uni.vibrateShort();
+				this.focus = false;
+				this.$nextTick(function() {
+					this.focus = true;
+				});
+			},
+			// 鍒楄〃鍒犻櫎鎸夐挳
+			remove(item,index) {
+				this.matList.splice(index,1)
+				uni.vibrateShort();
+			},
+			comb() {
+				uni.vibrateShort();
+				let that = this;
+				if (that.barcode === '') {
+					uni.showToast({title: '璇锋壂鎻忔墭鐩樻潯鐮�', icon: "none", position: 'top'});
+					return;
+				}
+				if (that.matList.length === 0) {
+					uni.showToast({title: '璇锋坊鍔犲晢鍝佸垪琛�', icon: "none", position: 'top'});
+					return;
+				}
+				for (var i = 0; i < that.matList.length; i++) {
+					if (that.matList[i].anfme == 0 || that.matList[i].anfme == '') {
+						uni.showToast({title: that.matList[i].matnr + '缁勬墭鏁伴噺涓嶈兘涓�0', icon: "none", position: 'top'});
+						return;
+					}
+				}
+				uni.showLoading();
+				uni.request({
+				    url: that.commonUrl + '/mobile/comb/auth',
+				    data: JSON.stringify({
+						frozen: that.frozen,
+						barcode: that.barcode,
+						combMats: that.matList
+					}),
+					method: 'POST',
+				    header: {
+						'token':uni.getStorageSync('token')
+				    },
+					success(result) {
+						uni.hideLoading();
+						var res = result.data
+						if (res.code === 200) {
+							const innerAudioContext = uni.createInnerAudioContext();
+							innerAudioContext.src = '/static/music/pakinOk.mp3';
+							innerAudioContext.play()
+							that.resst();
+							uni.showToast({
+								title: res.msg,
+								position: 'bottom',
+								duration: 1000
+							});
+						} else if (res.code == 403) {
+							uni.showToast({title: res.msg, icon: "none", position: 'top'})
+							setTimeout(() => {
+								uni.reLaunch({
+									url: '../login/login'
+								});
+							}, 1000);
+						} else {
+							uni.showToast({title: res.msg, icon: "none",position: 'top'})
+						}
+					}
+				});
+			},
+			selectMat() {
+				let that = this
+				uni.vibrateShort();
+				uni.navigateTo({
+					url: "matSelect",
+					events: {
+					    // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�  鍙﹀涓�涓〉闈紶杩囨潵鐨�
+					    acceptDataFromOpenedPage: function(data) {
+							that.matnr = data.data
+							that.findMat(that.matnr)
+					    },
+					},
+					success: function(res) {
+					    // 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�   鍚戝彟澶栦竴涓〉闈紶閫掑�肩殑
+					    res.eventChannel.emit('commonUrl', {commonUrl:that.commonUrl })
+					},
+					
+				});
+				that.matnr = ''
+			},
+			findMat() {
+				let that = this
+				uni.request({
+				    url: that.commonUrl + '/mat/auth',
+				    data: {
+						matnr:that.matnr
+				    },
+				    header: {
+						'token':uni.getStorageSync('token')
+				    },
+					success(result) {
+						uni.vibrateShort();
+						let res = result.data
+						if (res.code === 200 && res.data) {
+							that.matData = res.data
+							that.matnr = ''
+							that.matData['batch'] = ''
+							uni.navigateTo({
+								url: "matQuery",
+								events: {
+								    // 涓烘寚瀹氫簨浠舵坊鍔犱竴涓洃鍚櫒锛岃幏鍙栬鎵撳紑椤甸潰浼犻�佸埌褰撳墠椤甸潰鐨勬暟鎹�
+								    matList: function(data) {
+										that.checkMat(data.data)
+										// that.matList.push(data.data)
+									},
+								},
+								success: function(res) {
+									// 閫氳繃eventChannel鍚戣鎵撳紑椤甸潰浼犻�佹暟鎹�
+									res.eventChannel.emit('matData', { data: that.matData })
+								},
+							});
+						} else if (res.code == 403) {
+							uni.showToast({title: res.msg, icon: "none", position: 'top'})
+							setTimeout(() => {
+								uni.reLaunch({
+									url: '../login/login'
+								});
+							}, 1000);
+						} else {
+							uni.showToast({title: res.msg, icon: "none",position: 'top'})
+						}
+						
+					}
+				});
+				
+			},
+		
+			// 娣诲姞鍟嗗搧
+			addMat(mat) {
+				this.matList.unshift(mat)
+			},
+			checkMat(mat) {
+				var len = this.matList.length
+				var add = true
+				var date = new Date()
+				var today = date.getFullYear() + '/' + (date.getMonth()+1) + '/' + date.getDate()
+				for (var i = 0; i < len; i++) {
+					if (mat.matnr == this.matList[i].matnr) {
+						this.matList[i].anfme += mat.anfme 
+						this.$forceUpdate() // 寮哄埗鍒锋柊
+						add = false
+					}
+				}
+				if (add) {
+					if(mat.batch === '' || mat.batch === null) {
+						// mat.batch = today
+					}
+					this.matList.unshift(mat)
+				}
+			},
+			change(e) {
+			},
+			toggle(type) {
+				this.type = type
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
+				this.$refs.goodsSearch.open(type)
+			},
+			checkbox: function (e) {
+				var items = this.matList,
+					values = e.detail.value;
+				for (var i = 0, lenI = items.length; i < lenI; ++i) {
+					const item = items[i]
+					item.id = item.id + ''
+					if(values.indexOf(item.id) >= 0){
+						this.$set(item,'checked',true)
+					}else{
+						this.$set(item,'checked',false)
+					}
+				}
+				if (values.length == items.length) {
+					this.check = true
+					this.checkText = "鍙栨秷鍏ㄩ��"
+				} else {
+					this.check = false
+					this.checkText = "鍏ㄩ��"
+				}
+				uni.vibrateShort();
+			},
+			revise(item,index) {
+				this.count = this.matList[index].anfme
+				this.batch = this.matList[index].batch
+				this.memo = this.matList[index].memo
+				this.cstmr = this.matList[index].cstmr
+				this.rowNum = index
+				this.eject()
+			},
+			eject(type) {
+				this.type = type
+				// open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
+				this.$refs.revise.open(type)
+			},
+			changeValue(value) {
+				this.count = value
+			},
+			confirm() {
+				this.matList[this.rowNum].anfme = this.count
+				this.matList[this.rowNum].batch = this.batch
+				this.matList[this.rowNum].memo = this.memo
+				this.matList[this.rowNum].cstmr = this.cstmr
+				this.$refs.revise.close()
+				this.$forceUpdate() // 寮哄埗鍒锋柊
+			},
+			// 鍒楄〃鍙嶉��
+			reChecked() { 
+				if (this.matList.length == 0) {
+					return;
+				}
+				var checkArr = []
+				for (var i = 0; i < this.matList.length;i++) {
+					if (this.matList[i].checked == true) {
+						this.$set(this.matList[i],'checked',false)
+					}else{
+						this.$set(this.matList[i],'checked',true)
+					}
+					if (this.matList[i].checked == true) {
+						checkArr.push(this.matList[i].checked) 
+					}
+				}
+				if (checkArr.length == this.matList.length) {
+					this.check = true
+					this.checkText = "鍙栨秷鍏ㄩ��"
+				} else {
+					this.check = false
+					this.checkText = "鍏ㄩ��"
+				}
+				uni.vibrateShort();
+			},
+			// 鍒楄〃鍏ㄩ��
+			allChecked(e){ 
+				
+				if (this.check == true) {
+					for (var i = 0; i < this.matList.length;i++) {
+						this.$set(this.matList[i],'checked',false)
+					}
+					this.check = false
+					this.checkText = "鍏ㄩ��"
+				} else {
+					for (var i = 0; i < this.matList.length;i++) {
+						this.$set(this.matList[i],'checked',true)
+					}
+					this.check = true
+					this.checkText = "鍙栨秷鍏ㄩ��"
+				}
+				uni.vibrateShort();
+			},
+		}
+	}
+</script>
+
+<style>
+	/* @import "../../colorui/main.css";
+	@import "../../colorui/icon.css"; */
+	.revise-box {
+		position: relative;
+		width: 500rpx;
+		height: 570rpx;
+		border-radius: 25px;
+		background-color: #fff;
+		border-radius: 20rpx;
+	}
+	.revise-box-top {
+		width: 400rpx;
+		height: 120rpx;
+		border-radius: 25px;
+	}
+	.changeBox {
+		width: 400rpx;
+		height: 100rpx;
+	}
+	.num-box {
+		margin-left: 100rpx;
+	}
+	.revise-box-buttom{
+		margin-left: 190rpx;
+	}
+	.pak-seach-box {
+		background-color: #FFFFFF;
+		margin: 15rpx 15rpx 0rpx 15rpx;
+		width: 96%;
+		height: 150rpx;
+		border-radius: 20rpx;
+	}
+	.box-top{
+		display: block;
+		height: 60rpx;
+		width: 720rpx;
+	}
+	.color-block-blue {
+		background-color: #1E9FFF;
+		display: inline-block;
+		float: left;
+		margin: 15rpx 15rpx 0 15rpx;
+		width: 12rpx;
+		height: 40rpx;
+		border: 5rpx solid #1E9FFF;
+		border-radius: 20rpx;
+	}
+	.title {
+		display: inline-block;
+		float: left;
+		font-size: 34rpx;
+		font-weight: 700;
+		height: 50rpx;
+		line-height: 50rpx;
+		margin-top: 10rpx;
+	}
+	.box-buttom {
+		display: inline-block;
+		background-color: #ededed;
+		width: 65%;
+		height: 60rpx;
+		border-radius: 20rpx;
+		margin: 15rpx 15rpx 0rpx 15rpx;
+	}
+	.box-buttom input {
+		width: 75%;
+		float: left;
+		margin: 8rpx 10rpx 0rpx 25rpx;
+	}
+	.box-buttom .search-icon{
+		width: 60rpx;
+		height: 60rpx;
+		float: right;
+		margin-top: 5rpx;
+		margin-right: 10rpx;
+	}
+	/* .pak-seach-box input {
+		background-color: #ededed;
+		border: 1rpx solid #d8d8d8;
+		display: inline-block;
+		border-radius: 20rpx;
+		float: left;
+		width: 70%;
+		height: 60rpx;
+		line-height: 60rpx;
+		margin: 15rpx 15rpx 0rpx 15rpx;
+		padding-left: 20rpx;
+	} */
+	.pak-seach-box button {
+		background-color: #1E9FFF;
+		color: #ffffff;
+		display: inline-block;
+		float: right;
+		width: 180rpx;
+		height: 60rpx;
+		margin: 15rpx 15rpx 0rpx 15rpx;
+		line-height: 60rpx;
+	}
+	.pakin-btn {
+		background-color: #1E9FFF;
+	}
+	.pak-data-box {
+		background-color: #F1F1F1;
+		margin: 15rpx 15rpx 0rpx 15rpx;
+		width: 96%;
+		height: 70rpx;
+		border-radius: 20rpx;
+	}
+	.pak-data-box .box-top {
+		background-color: #FFFFFF;
+		height: 70rpx;
+		border-radius: 20rpx 20rpx 20rpx 20rpx;
+	}
+	.bg-false {
+		background-color: #FFFFFF;
+	}
+	.bg-true {
+		background-color: #ebebeb;
+	}
+	.data-list {
+		border-bottom: 1px solid #d8d8d8;
+		min-height: 280rpx;
+		margin: 15rpx;
+		border-radius: 20rpx;
+		display: flex;
+	}
+	.data-list:first-child {
+		margin-top: 20rpx;
+	}
+	.data-list:last-child {
+		margin-bottom: 180rpx;
+	}
+	.data-list-left {
+		margin-left: 6%;
+		min-height: 280rpx;
+		color: #676767;
+		width: 500rpx;
+		color: #676767;
+		width: 100%;
+	}
+	.matnr {
+		padding-top: 10rpx;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/index/index2.vue b/pages/index/index2.vue
index 78401de..77b0c2f 100644
--- a/pages/index/index2.vue
+++ b/pages/index/index2.vue
@@ -97,6 +97,12 @@
 						color: 'blue',
 						cuIcon: 'safe'
 					},
+					{
+						title: '鎷f枡',
+						name: 'stockCheckv2',
+						color: 'blue',
+						cuIcon: 'safe'
+					},
 					// {
 					// 	title: '骞充粨搴撳瓨鐩樼偣',
 					// 	name: 'manStoCheck',

--
Gitblit v1.9.1