From b1a44d0c90bf1e5049e18c7faa564cebae3acda9 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期三, 30 四月 2025 13:02:08 +0800
Subject: [PATCH] #

---
 pages/home/index.vue           |   17 ++
 pages.json                     |    6 +
 pages/outbound/fastPicking.vue |  300 ++++++++++++++++++++++++++++++++++++++++++++++++++
 pages/rece/other.vue           |    9 
 pages/rece/standard.vue        |    6 
 5 files changed, 331 insertions(+), 7 deletions(-)

diff --git a/pages.json b/pages.json
index d492730..7316bfe 100644
--- a/pages.json
+++ b/pages.json
@@ -67,6 +67,12 @@
 			}
 		},
 		{
+			"path": "pages/outbound/fastPicking",
+			"style": {
+				"navigationBarTitleText": "蹇�熸嫞璐�"
+			}
+		},
+		{
 			"path": "pages/mat/matSelected",
 			"style": {
 				"navigationBarTitleText": "鐗╂枡"
diff --git a/pages/home/index.vue b/pages/home/index.vue
index 7b28a66..c38f764 100644
--- a/pages/home/index.vue
+++ b/pages/home/index.vue
@@ -99,6 +99,23 @@
 				</navigator>
 			</view>
 		</view>
+		
+		<view class="cu-bar bg-white solid-bottom margin-top">
+			<view class="action">
+				<text class="cuIcon-title text-orange "></text> 鍑哄簱
+			</view>		
+		</view>
+		
+		<view class="cu-list grid col-4 no-border">
+			<view class="cu-item">
+				<navigator hover-class='none' url="/pages/outbound/fastPicking" navigateTo>
+					<view class="cuIcon-apps text-blue">
+					</view>
+					<text>蹇�熸嫞璐�</text>
+				</navigator>
+			</view>
+		
+		</view>
 
 		<view class="padding flex flex-direction">
 			<view class="cu-btn bg-red margin-tb-sm lg round" @click="equit">閫�鍑虹櫥褰�</view>
diff --git a/pages/outbound/fastPicking.vue b/pages/outbound/fastPicking.vue
new file mode 100644
index 0000000..c84be1c
--- /dev/null
+++ b/pages/outbound/fastPicking.vue
@@ -0,0 +1,300 @@
+<template>
+	<view class="has-foot">
+		<form>
+			<view class="cu-form-group" v-show="!isconfirm">
+				<view class="title">瀹瑰櫒/搴撲綅鐮�</view>
+				<input placeholder="璇锋壂鎻忓鍣�/搴撲綅鐮�" v-model="barcode" @input="search()" focus></input>
+				<text class='cuIcon-close text-gray margin-right-xs' v-show="barcode!==''" @click="clearCode"></text>
+			</view>
+
+		</form>
+		<view class="cu-form-group" v-show="isClickItem">
+			<view class="title">QR鐮�</view>
+			<input placeholder="璇锋壂鎻廞R鐮�" v-model="QRbarcode" ></input>
+			
+		</view>
+				
+
+		<view class="cu-list det menu sm-border  padding">
+			<block  v-for="(item, index) in list" :key="index">
+				<view :style="clickItem === index ?itemStyle : {}" class="cu-list det menu  "  @click="clickTaskItem(index)">
+					
+				
+				<view class="cu-bar bg-white solid-bottom margin-top-sm">
+					<view class="action">
+						<view class="index">
+							{{index+1}}
+						</view>
+					</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.trackCode}}</text></text>
+					</view>					
+				</view>
+				<view class="cu-item">
+					<view class="content">
+						<text class="text-gray">鍑哄簱鍗�:<text class="text-black ">{{item.trackCode}}</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">
+					<view class="content">
+						<text class="text-gray">搴撳瓨鍗曚綅:<text class="text-black ">{{item.unit}}</text></text>
+					</view>	
+					<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.matnrCode}}</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 class="content">
+						<text class="text-gray">璁″垝鍒嗘嫞鏁伴噺:<text class="text-black ">{{item.anfme}}</text></text>
+					</view>						
+				</view>
+				<view class="cu-item">						
+					<view class="content2">
+						<text class="text-gray">鏈鍒嗘嫞鏁伴噺:</text>
+						<input type="number" v-model="item.workQty"></input>
+					</view>
+						
+				</view>	
+				</view>
+			</block>
+		</view>
+
+
+		<view class="text-blue text-right padding-lr" v-show="isconfirm">
+			鏈鏀惰揣鎬绘暟閲�:{{allCount}}
+		</view>
+
+		<view class="cu-form-group " v-show="isconfirm">
+			<view class="title">鏀惰揣鍖�</view>
+			<uni-data-select v-model="whAreaId" :localdata="range" placement="top"
+				@change="selChange"></uni-data-select>
+		</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" @click="next">涓嬩竴姝�</button>
+		</view>
+
+		<view class="cu-bar btn-group foot" v-show="isconfirm">
+			<button class="cu-btn text-blue line-blue shadow" @click="prev">涓婁竴姝�</button>
+			<button class="cu-btn bg-blue shadow-blur" @click="confirm">鎻愪氦鏀惰揣</button>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import {
+		request
+	} from '../../common/request.js'
+	import {
+		mapState,
+		mapMutations,
+		mapActions,
+		mapGetters
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				isClickItem:false,
+				clickItem:'',
+				QRbarcode:null,
+				barcode: null,
+				whAreaId: '',
+				list: [],
+				range: [],
+				isconfirm: false,							
+				itemStyle: {
+				        backgroundColor: '#42b983',				        
+				        borderColor: '#42b983'
+				},
+			}
+		},
+		computed: {
+			...mapState('user', ['dynamicFields']),
+			allCount() {
+				return this.list.reduce((acc, row) => +row.receiptQty + acc, 0)
+			}
+		},
+		mounted() {
+			this.search()
+		},
+		methods: {
+			clickTaskItem(index){				
+				if (index === this.clickItem){
+					
+					return ;
+				}
+				this.isClickItem = true
+				this.clickItem = index
+			},
+			typeChange(e){
+				this.typeSelect = e.value
+				this.search()
+			},
+			async search() {
+				this.list = []
+				if(this.barcode === '' || this.barcode ===null){
+					return ;
+				}
+				const {
+					code,
+					data,
+					msg
+				} = await request('/outStockTaskItem/'+this.barcode,{}, 'get')
+				if (code === 200) {					
+					if (Object.keys(data).length === 0){
+						uni.showToast({
+							title: "璇ユ爣绛炬湭鏌ヨ鍒版暟鎹�",
+							icon: "none",
+							position: 'top'
+						})
+					}
+					this.list.push(...data)
+					
+				}else if(code == 401){
+					setTimeout(() => {
+						uni.removeStorageSync('token');
+						uni.reLaunch({
+							url: "/pages/login/login"
+						});
+					}, 1000);
+				}else {
+					uni.showToast({
+						title: msg,
+						icon: "none",
+						position: 'top'
+					})
+				}
+
+
+			},
+			clearCode() {
+				this.barcode = ''
+			},
+			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
+			},
+			selChange(val) {
+				uni.setStorageSync('whAreaId', val)
+			},
+			async confirm() {
+				const newArr = this.list.map(item => {
+					return {
+						...item,
+						receiptQty: item.receiptQty === null ? 0 : +item.receiptQty
+					};
+				});
+				if (this.whAreaId === '') {
+					uni.showToast({
+						icon: "none",
+						title: '璇烽�夋嫨鏀惰揣鍖�'
+					})
+				} else {
+					const {
+						code,
+						data,
+						msg
+					} = await request('/orders/confirm', {
+						receipts: newArr,
+						whAreaId: this.whAreaId
+					})
+					if (code === 200) {
+						uni.showToast({
+							title: '鏀惰揣鎴愬姛'
+						})
+						this.list = []
+						this.barcode = ''
+						this.isconfirm = false
+					} else {
+						uni.showToast({
+							title: msg,
+							icon: "none",
+							position: 'top'
+						})
+					}
+
+				}
+			},
+			
+			DateChange(e, item) {
+				item.prodTime = e.detail.value
+			}
+		}
+	}
+</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;
+
+	}
+
+	.item {
+		position: relative;
+		display: flex;
+		min-height: 80upx;
+		align-items: center;
+	}
+	.content2 {		
+		/* background-color: coral; */
+		width: 100%;
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		color: #0081ff;
+	}
+</style>
\ No newline at end of file
diff --git a/pages/rece/other.vue b/pages/rece/other.vue
index 3166479..69359a8 100644
--- a/pages/rece/other.vue
+++ b/pages/rece/other.vue
@@ -3,9 +3,9 @@
 		<form>
 			<view class="cu-form-group margin-top" v-show="!isconfirm">
 				<view class="title">ASN鍗曞彿</view>
-				<input placeholder="璇锋壂鎻廇SN鍗曞彿" v-model="asncode" focus></input>
+				<input placeholder="璇锋壂鎻廇SN鍗曞彿" v-model="asncode" @input="search" focus></input>
 				<text class='cuIcon-close text-gray margin-right-xs' v-show="asncode!==''" @click="clearCode"></text>
-				<text class='cuIcon-search text-blue' @click="search"></text>
+				<!-- <text class='cuIcon-search text-blue' @click="search"></text> -->
 			</view>
 			<view class="cu-form-group" v-show="!isconfirm">
 				<view class="title">鐗╂枡鏍囩</view>
@@ -90,7 +90,7 @@
 							<view class="cu-form-group padding-lr-0">
 								<view class="title text-blue"><text
 										class="text-red text-xl vertical-middle">*</text>鏀惰揣鏁伴噺:</view>
-								<input type="number" placeholder="璇疯緭鍏ユ暟閲�" v-model="item.receiptQty"></input>
+								<uni-number-box style="width: 70%;" v-model="item.receiptQty" :step='1'></uni-number-box>
 							</view>
 						</view>
 						<view class="content" v-else>
@@ -159,8 +159,7 @@
 		</view>
 
 		<view class="cu-bar btn-group foot" v-show="isconfirm">
-			<button class="cu-btn text-blue line-blue shadow" @click="prev">涓婁竴姝�</button>
-			<button class="cu-btn bg-blue shadow-blur" @click="confirm(true)">鏀惰揣骞跺畬鎴�</button>
+			<button class="cu-btn text-blue line-blue shadow" @click="prev">涓婁竴姝�</button>			
 			<button class="cu-btn bg-blue shadow-blur" @click="confirm(false)">鏀惰揣</button>
 		</view>
 
diff --git a/pages/rece/standard.vue b/pages/rece/standard.vue
index 57cb689..496ceed 100644
--- a/pages/rece/standard.vue
+++ b/pages/rece/standard.vue
@@ -76,11 +76,13 @@
 				<view class="cu-item">
 					<view class="content">
 						<text class="text-blue">璁″垝鏀惰揣鏁伴噺:<text class="text-grey ">{{item.anfme}}</text></text>
-					</view>
+					</view>					
+				</view>
+				<view class="cu-item">					
 					<view class="content" v-if="!isconfirm">
 						<view class="cu-form-group padding-lr-0">
 							<view class="title text-blue">鏀惰揣鏁伴噺:</view>
-							<input type="number" placeholder="璇疯緭鍏ユ敹璐ф暟閲�" v-model="item.receiptQty"></input>
+							<uni-number-box style="width: 70%;" v-model="item.receiptQty" :step='1'></uni-number-box>
 						</view>
 					</view>
 					<view class="content" v-else>

--
Gitblit v1.9.1