Parcourir la source

优化PDA代码,质检操作、入库操作、出库操作界面优化。

SunYaLong il y a 1 an
Parent
commit
934badab36

+ 27 - 0
TFT-PDA/pages.json

@@ -182,6 +182,33 @@
             }
             
         }
+        ,{
+            "path" : "pages/Inspect/inspectOperateNew",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "质检操作  步骤-2",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/Instore/instoreDtlNew",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "入库操作  步骤-2",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/Outstore/outstoreDtlNew",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "出库操作  步骤-2",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"globalStyle": {
 		"navigationBarTextStyle": "white",

+ 3 - 2
TFT-PDA/pages/Inspect/inspect01.vue

@@ -81,7 +81,7 @@
 					isHaveToken : true
 				}
 				let retData = await getApp().RequestData(parm)
-				console.log(retData)
+				// console.log(retData)
 				if(retData.isSuccess) {
 					if(retData.data.code == 200) {
 						let len = retData.data.data.length
@@ -114,7 +114,8 @@
 				this.foucusIndex = 0
 			},
 			goDetailPage(item) {
-				let urlStr = '/pages/Inspect/inspectDtl?deliverNo=' + item.deliverNo;
+				// let urlStr = '/pages/Inspect/inspectDtl?deliverNo=' + item.deliverNo;
+				let urlStr = '/pages/Inspect/inspectOperateNew?deliverNo=' + item.deliverNo;
 				uni.navigateTo({
 					url: urlStr
 				});

+ 231 - 0
TFT-PDA/pages/Inspect/inspectOperateNew.vue

@@ -0,0 +1,231 @@
+<template>
+	<view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;margin-top: 5px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;">交验单号:</text>
+			<text style="align-self: center;font-size: 35rpx;word-wrap: break-word;width: 200px;font-weight: bold;">{{deliverNo}}</text>
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;">物料号:</text>
+			<text style="align-self: center;font-size: 35rpx;word-wrap: break-word;width: 200px;font-weight: bold;">{{SapDeliverRecordSumMd.materialCode}}</text>
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;">物料名称:</text>
+			<text style="align-self: center;font-size: 35rpx;word-wrap: break-word;width: 200px;font-weight: bold;">{{SapDeliverRecordSumMd.materialName}}</text>
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;width: 260rpx;">规格型号/图号:</text>
+			<input class="uni-input" style="margin-right: 5px;" v-model="materialSpecCode" :focus="foucusIndex === 0" @confirm="foucusChange0" placeholder="请输规格型号/图号" />
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 1px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;">交验单数量:</text>
+			<text style="align-self: center;font-size: 40rpx;font-weight: bold;">{{SapDeliverRecordSumMd.sumQty}}</text>
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 1px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;">已质检合格数量:</text>
+			<text style="align-self: center;font-size: 40rpx;font-weight: bold;color: blue;">{{SapDeliverRecordSumMd.sumCheckQty}}</text>
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px; margin-top: 5px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;width: 260rpx;">BN/SN码:</text>
+			<input class="uni-input" style="margin-right: 5px;" v-model="bnSnCode" :focus="foucusIndex === 1" @confirm="foucusChange1" placeholder="请输BN/SN码" />
+		</view>
+		<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px; margin-top: 5px;">
+			<text style="align-self: center;font-size: 35rpx;color: darkslategray;width: 260rpx;">合格数量:</text>
+			<input class="uni-input" type="number" style="margin-right: 5px;" v-model="checkOkQty" :focus="foucusIndex === 2" @confirm="foucusChange2" placeholder="请输合格数量" />
+		</view>
+		<button type="primary" style="margin-top: 15px;" @click="submitResult">质检结果提交</button>
+		<button type="primary" style="margin-top: 8px;" @click="resetCondition">重   置</button>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				SapDeliverRecordSumMd: {},
+				bnSnCode: '',
+				checkOkQty: '',
+				foucusIndex: 0,
+				materialSpecCode: '',
+				deliverNo: '',
+			}
+		},
+		onUnload() {
+			
+		},
+		onLoad(option) {
+			this.deliverNo = option.deliverNo;
+		},
+		methods: {
+			async submitResult() {
+				// let that = this;
+				if(this.isEmptyStr(this.materialSpecCode)) {
+					uni.showToast({
+						title: '规格型号/图号 不能为空!',
+						icon: 'none',
+						duration: 1000,
+						mask:true,
+					})
+					return
+				}
+				if(this.isEmptyStr(this.bnSnCode)) {
+					uni.showToast({
+						title: 'BN/SN码不能为空!',
+						icon: 'none',
+						duration: 1000,
+						mask:true,
+					})
+					return
+				}
+				if(Number(this.checkOkQty) <= 0) {
+					uni.showToast({
+						title: '未输入质检合格数量!',
+						icon: 'none',
+						duration: 1000,
+						mask:true,
+					})
+					return
+				}
+				if((Number(this.checkOkQty) + this.SapDeliverRecordSumMd.sumCheckQty) > this.SapDeliverRecordSumMd.qty) {
+					uni.showToast({
+						title: '质检合格数量录入错误,数量不能大于未录入数!',
+						icon: 'none',
+						duration: 1000,
+						mask:true,
+					})
+					return
+				}
+				let tmpMd = {};
+				tmpMd.DeliverNo = this.deliverNo;
+				tmpMd.MaterialSpec = this.materialSpecCode;
+				tmpMd.bnSnCode = this.bnSnCode;
+				tmpMd.checkOkQty = this.checkOkQty;
+				let parm = {
+					url : '/business/QaInspectRecord/addSapDeliverDtlInspectResult',
+					data: tmpMd,
+					method: 'POST',
+					isHaveToken : true
+				}
+				let retData = await getApp().RequestData(parm)
+				if(retData.isSuccess) {
+					if(retData.data.code == 200) {
+						this.resetCondition()
+					}
+					else {
+						uni.showToast({
+							title: '提交数据失败!' + retData.data.msg,
+							icon: 'none',
+							duration: 1000,
+							mask:true,
+						})
+					}
+				}
+				else {
+					uni.showToast({
+						title: '接口异常!' + retData.retMsg,
+						icon: 'none',
+						duration: 1000,
+						mask:true,
+					})
+				}
+			},
+			isEmptyStr(s) {
+				if (s == undefined || s === '') {
+					return true
+				}
+				return false
+			},
+			async foucusChange0(event) {
+				let str = event.detail.value
+				let parm = {
+					url : '/business/SapDeliverRecord/GetSapDeliverRecordSum?materialSpecCode=' + this.materialSpecCode + '&deliverNo=' + this.deliverNo,
+					data: { },
+					method: 'POST',
+					isHaveToken : true
+				}
+				let retData = await getApp().RequestData(parm)
+				// console.log(retData)
+				if(retData.isSuccess) {
+					if(retData.data.code == 200) {
+						let tmpMd = retData.data.data
+						if(tmpMd.sumQty <= tmpMd.sumCheckQty) {
+							let tmpMaterialSpecCode = this.materialSpecCode
+							uni.showToast({
+								title: `物料号:【${tmpMaterialSpecCode}】\r\n已全部质检完成!!`,
+								icon: 'none',
+								duration: 1500,
+								mask:true,
+								success: () => {
+									this.materialSpecCode = ''
+									this.foucusIndex = 3;
+									setTimeout(() => {
+										this.foucusIndex = 0;
+									}, 100)
+								}
+							})
+						}
+						else {
+							this.SapDeliverRecordSumMd = retData.data.data
+							this.foucusIndex = 1
+						}
+					}
+					else {
+						uni.showToast({
+							title: '获取交验单明细数据失败!\r\n' + retData.data.msg,
+							icon: 'none',
+							duration: 1500,
+							mask:true,
+							success: () => {
+								this.materialSpecCode = ''
+								this.foucusIndex = 3;
+								setTimeout(() => {
+									this.foucusIndex = 0;
+								}, 100)
+							}
+						})
+					}
+				}
+				else {
+					uni.showToast({
+						title: '接口异常!' + retData.retMsg,
+						icon: 'none',
+						duration: 1500,
+						mask:true,
+						success: () => {
+							this.materialSpecCode = ''
+							this.foucusIndex = 3;
+							setTimeout(() => {
+								this.foucusIndex = 0;
+							}, 100)
+						}
+					})
+				}
+			},
+			foucusChange1(event) {
+				let str = event.detail.value
+				if(str.length !== 0) {
+					this.foucusIndex = 2
+				}
+			},
+			foucusChange2(event) {
+				let str = event.detail.value
+				if(str.length !== 0) {
+					this.foucusIndex = 3
+				}
+			},
+			resetCondition() {
+				this.materialSpecCode = ''
+				this.SapDeliverRecordSumMd = {}
+				this.bnSnCode = ''
+				this.checkOkQty = ''
+			    this.foucusIndex = 3;
+				setTimeout(() => {
+				   this.foucusIndex = 0;
+				}, 100)
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	@import '@/common/uni-nvue.css';
+</style>

+ 4 - 4
TFT-PDA/pages/Inspect/inspectRecordQuery.vue

@@ -29,7 +29,7 @@
 				<view class="myDeliverDetail" >
 					<view style="flex-direction: row;flex-direction: row;height: 25px;display: flex;padding: 2px;border-radius: 5px 5px;">
 						<text style="align-self: center;">物料编号:</text>
-						<text style="align-self: center;">{{newsitem.materialCode}}</text>
+						<text style="align-self: center;font-size: 30rpx;font-weight: bold;">{{newsitem.materialCode}}</text>
 						<text :class="newsitem.keyFlag ? 'keyFlagRed' : 'keyFlagGray'" style="align-self: center;margin-left: 20px;">{{newsitem.keyFlag ? '★' : '■'}}</text>
 					</view>
 					<view class="line-h"></view>
@@ -41,11 +41,11 @@
 							</view>
 							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
 								<text style="align-self: center;color: #555;font-size: 25rpx;">规格型号/图号:</text>
-								<text style="align-self: center;font-size: 25rpx;word-wrap: break-word;width: 200px;">{{newsitem.materialSpec}}</text>
+								<text style="align-self: center;font-size: 30rpx;font-weight: bold;word-wrap: break-word;width: 200px;">{{newsitem.materialSpec}}</text>
 							</view>
 							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
 								<text style="align-self: center;color: #555;font-size: 25rpx;">生产令号:</text>
-								<text style="align-self: center;font-size: 25rpx;word-wrap: break-word;width: 200px;">{{newsitem.bomNo}}</text>
+								<text style="align-self: center;font-size: 30rpx;font-weight: bold;word-wrap: break-word;width: 200px;">{{newsitem.bomNo}}</text>
 							</view>
 							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
 								<text style="align-self: center;color: #555;font-size: 25rpx;">BN/SN:</text>
@@ -53,7 +53,7 @@
 							</view>
 							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
 								<text style="align-self: center;color: #555;font-size: 25rpx;">质检合格数量:</text>
-								<text style="align-self: center;font-size: 30rpx;font-weight: bold;color: blue;">{{newsitem.checkQty}}</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: blue;">{{newsitem.checkQty}}</text>
 							</view>
 							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
 								<text style="align-self: center;color: #555;font-size: 25rpx;">质检人:</text>

+ 223 - 0
TFT-PDA/pages/Instore/instoreDtlNew.vue

@@ -0,0 +1,223 @@
+<template>
+	<view>
+		<view class="uni-form-item uni-column">
+			<view class="uni-flex uni-row">
+				<view class="title" style="width: 120rpx;">交验单号:</view>
+				<input class="uni-input" style="font-size: 40rpx;font-weight: bold;color: black;" disabled="true" v-model="deliverNo"/>
+			</view>
+			<view class="uni-flex uni-row" style="margin-top: 3px;margin-bottom: 3px;">
+				<view class="title" style="width: 120rpx;">物料号:</view>
+				<input class="uni-input" style="margin-right: 5px;" :focus="foucusIndex === 0" v-model="materialSpecCode" placeholder="请输入物料信息" @confirm="confirmFun"/>
+			</view>
+			<view class="uni-flex uni-row">
+				<button type="primary" style="-webkit-flex: 1;flex: 1;margin-left: 5px;" @click="queryFun">查    询</button>
+				<button type="primary" style="-webkit-flex: 1;flex: 1;margin-left: 5px;margin-right: 5px;" @click="resetCondition">重    置</button>
+			</view>
+		</view>
+		<uni-section title="待入库的质检记录数据:" type="line" style="margin-bottom: 3px;padding: 3px;">
+			<view class="my-tips-view" v-if="isShowTips">没有查询到数据......</view>
+			<view v-for="(newsitem,key) in inspectRecordList" :key="key">
+				<view class="myDeliverDetail" @click="myDeliverDetailClick(newsitem)">
+					<view style="flex-direction: row;flex-direction: row;height: 25px;display: flex;padding: 2px;border-radius: 5px 5px;">
+						<text style="align-self: center;">物料编号:</text>
+						<text style="align-self: center;font-size: 30rpx;font-weight: bold;">{{newsitem.materialCode}}</text>
+						<text :class="newsitem.keyFlag ? 'keyFlagRed' : 'keyFlagGray'" style="align-self: center;margin-left: 20px;">{{newsitem.keyFlag ? '★' : '■'}}</text>
+					</view>
+					<view class="line-h"></view>
+					<view style="flex-direction: row;flex-direction: row;display: flex;-webkit-justify-content: space-between;justify-content: space-between;">
+						<view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">物料名称:</text>
+								<text style="align-self: center;font-size: 25rpx;word-wrap: break-word;width: 200px;">{{newsitem.materialName}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">规格型号/图号:</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: blue;word-wrap: break-word;width: 200px;">{{newsitem.materialSpec}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">生产令号:</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: blue;word-wrap: break-word;width: 200px;">{{newsitem.bomNo}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">BN/SN:</text>
+								<text style="align-self: center;font-size: 30rpx;font-weight: bold;word-wrap: break-word;width: 200px;">{{newsitem.bnSnCode}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">质检合格数量:</text>
+								<text style="align-self: center;font-size: 30rpx;font-weight: bold;">{{newsitem.checkQty}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">已入库数量:</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: red;">{{newsitem.instoreQty}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">质检人:</text>
+								<text style="align-self: center;font-size: 30rpx;">{{newsitem.inspectedBy}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">质检时间:</text>
+								<text style="align-self: center;font-size: 30rpx;">{{newsitem.inspectTime}}</text>
+							</view>
+						</view>
+						<view v-if="newsitem.instoreQty < newsitem.checkQty" style="border-radius: 35px;width: 35px; background-color: lime;height: 35px;align-self: center;margin-right: 5px;"></view>
+						<view v-else style="border-radius: 35px;width: 35px; background-color: lightgray;height: 35px;align-self: center;margin-right: 5px;"></view>
+					</view>
+				</view>
+			</view>
+		</uni-section>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				deliverNo: '',
+				foucusIndex: 0,
+				materialSpecCode: '',
+				isShowTips: true,
+				inspectRecordList:[],
+			}
+		},
+        onLoad(option) {
+			this.deliverNo = option.deliverNo;
+			uni.$on('addInstoreData', this.addInstoreData)
+        },
+		onUnload() {
+			uni.$off('addInstoreData', this.addInstoreData)
+		},
+		methods: {
+			async queryFun() {
+				if(this.isEmptyStr(this.materialSpecCode)) {
+					uni.showToast({
+						title: '物料信息 不能为空!',
+						icon: 'none',
+						duration: 1500,
+						mask:true,
+					})
+					this.foucusIndex = 1
+					setTimeout(() => {
+						this.foucusIndex = 0;
+					}, 100)
+					return
+				}
+				
+				uni.showLoading({
+					title: "正在查询...",
+					mask: true,
+				})
+				this.inspectRecordList = []
+				let parm = {
+					url : '/business/QaInspectRecord/QueryInspectRecordData?deliverNo=' + this.deliverNo + '&materialSpecCode=' + this.materialSpecCode,
+					data: {
+					},
+					method: 'POST',
+					isHaveToken : true
+				}
+				let retData = await getApp().RequestData(parm)
+				// console.log(retData)
+				if(retData.isSuccess) {
+					if(retData.data.code == 200) {
+						let len = retData.data.data.length
+						this.inspectRecordList = retData.data.data
+						if(len > 0) {
+							this.isShowTips = false
+						}
+						else {
+							this.isShowTips = true
+							this.resetCondition()
+						}
+					}
+					else {
+						this.isShowTips = true
+						this.resetCondition()
+					}
+				}
+				else {
+					this.isShowTips = true
+					this.resetCondition()
+				}
+				uni.hideLoading()
+			},
+			resetCondition() {
+				this.materialSpecCode = ''
+				this.inspectRecordList = []
+				this.isShowTips = true
+				this.foucusIndex = 1
+				setTimeout(() => {
+					this.foucusIndex = 0;
+				}, 100)
+			},
+			isEmptyStr(s) {
+				if (s == undefined || s === '') {
+					return true
+				}
+				return false
+			},
+			myDeliverDetailClick(model) {
+				model.deliverNo = this.deliverNo;
+				if(model.instoreQty >= model.checkQty) {
+					uni.showToast({
+						title: '已全部入库',
+						icon: 'error',
+						mask: true,
+						duration: 1500
+					})
+				} else {
+					uni.navigateTo({
+						url: '/pages/Instore/instoreOperate',
+						success() {
+							uni.$emit('sendCheckedDeliverDtlData',model)
+							// console.log(model)
+						}
+					});
+				}
+			},
+			addInstoreData(data) {
+				this.inspectRecordList.forEach((item) => {
+					if(item.inspectId === data.inspectId) {
+						item.instoreQty += Number(data.instoreQty);
+					}
+				})
+				let isFinish = this.inspectRecordList.some(x => x.instoreQty < x.checkQty)
+				if(!isFinish) {
+					this.resetCondition()
+				}
+				else {
+					this.queryFun()
+				}
+			},
+			confirmFun() {
+				this.queryFun()
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.my-tips-view {
+		/* margin-top: 50px; */
+		text-align: center;
+		color: #999999;
+		font-size: 20px;
+		font-weight: normal;
+	}
+	.myDeliverDetail {
+		border: 1px solid #cccccc;
+		border-radius: 5px;
+		margin-top: 1px;
+	}
+	.myDeliverDetail:active {
+		background-color: aliceblue;
+	}
+	.line-h {
+	    height: 1rpx;
+	    background-color: #cccccc;
+	}
+	.keyFlagRed {
+		color: red;
+	}
+	.keyFlagGray {
+		color: lightgray;
+	}
+</style>

+ 4 - 0
TFT-PDA/pages/Instore/instoreOperate.vue

@@ -63,6 +63,7 @@
 					uni.showToast({
 						title: '未输入本次入库数量!',
 						icon: 'none',
+						mask: true,
 						duration: 1000
 					})
 					return;
@@ -71,6 +72,7 @@
 					uni.showToast({
 						title: '本次入库数量录入错误,数量不能大于未入库数量!',
 						icon: 'none',
+						mask: true,
 						duration: 1000
 					})
 					return;
@@ -97,6 +99,7 @@
 						uni.showToast({
 							title: '提交数据失败!' + retData.data.msg,
 							icon: 'none',
+							mask: true,
 							duration: 1000
 						})
 					}
@@ -105,6 +108,7 @@
 					uni.showToast({
 						title: '接口异常!' + retData.retMsg,
 						icon: 'none',
+						mask: true,
 						duration: 1000
 					})
 				}

+ 1 - 1
TFT-PDA/pages/Instore/instroe01.vue

@@ -113,7 +113,7 @@
 				this.foucusIndex = 0
 			},
 			goDetailPage(item) {
-				let urlStr = '/pages/Instore/instoreDtl?deliverNo=' + item.deliverNo;
+				let urlStr = '/pages/Instore/instoreDtlNew?deliverNo=' + item.deliverNo;
 				uni.navigateTo({
 					url: urlStr
 				});

+ 1 - 1
TFT-PDA/pages/Outstore/outassemble01.vue

@@ -58,7 +58,7 @@
 				let retData = await getApp().RequestData(parm)
 				if(retData.isSuccess) {
 					if(retData.data.code == 200) {
-						console.log(retData)
+						// console.log(retData)
 						let len = retData.data.data.length
 						for (let i = 0; i < len;  i++) {
 							this.bomList.push({

+ 2 - 2
TFT-PDA/pages/Outstore/outassembleDtl.nvue

@@ -154,7 +154,7 @@
 				if(retData.isSuccess) {
 					if(retData.data.code == 200) {
 						activeTab.data = retData.data.data;
-						console.log(retData.data.data)
+						// console.log(retData.data.data)
 					}
 					else {
 						
@@ -265,7 +265,7 @@
 				let tabMd = this.newsList[1];
 				tabMd.data1.push(data);
 				this.updateSapBomListDtl(data);
-				console.log(data)
+				// console.log(data)
 			},
 			updateSapBomListDtl(data) {
 				let tabMd0 = this.newsList[0];

+ 2 - 2
TFT-PDA/pages/Outstore/outassembleOperate.vue

@@ -137,7 +137,7 @@
 				let tmpMd = this.sapBomDtlMd;
 				tmpMd.assembleNum = this.assembleNum;
 				tmpMd.BnSnCode = this.scanBnSnCode;
-				console.log(tmpMd)
+				// console.log(tmpMd)
 				let userMsg = uni.getStorageSync('userInfo')
 				uni.uploadFile({
 					url: getApp().globalData.baseUrl + '/business/OutAssembleRecord/AddOutAssembleRecordForFile',
@@ -397,7 +397,7 @@
 						// console.log(` 22【${this.imageSrc}】`)
 					},
 					fail: (err) => {
-						console.log('chooseImage fail', err)
+						// console.log('chooseImage fail', err)
 					}
 				})
 			},

+ 1 - 1
TFT-PDA/pages/Outstore/outstore01.vue

@@ -95,7 +95,7 @@
 				this.foucusIndex = 0
 			},
 			goDetailPage(item) {
-				let urlStr = '/pages/Outstore/outstoreDtl?outTaskNo=' + item.outTaskNo;
+				let urlStr = '/pages/Outstore/outstoreDtlNew?outTaskNo=' + item.outTaskNo;
 				uni.navigateTo({
 					url: urlStr
 				});

+ 223 - 0
TFT-PDA/pages/Outstore/outstoreDtlNew.vue

@@ -0,0 +1,223 @@
+<template>
+	<view>
+		<view class="uni-form-item uni-column">
+			<view class="uni-flex uni-row">
+				<view class="title" style="width: 180rpx;">出库任务单号:</view>
+				<input class="uni-input" style="font-size: 40rpx;font-weight: bold;color: black;" disabled="true" v-model="outTaskNo"/>
+			</view>
+			<view class="uni-flex uni-row" style="margin-top: 3px;margin-bottom: 3px;">
+				<view class="title" style="width: 180rpx;">物料号:</view>
+				<input class="uni-input" style="margin-right: 5px;" :focus="foucusIndex === 0" v-model="materialSpecCode" placeholder="请输入物料信息" @confirm="confirmFun"/>
+			</view>
+			<view class="uni-flex uni-row">
+				<button type="primary" style="-webkit-flex: 1;flex: 1;margin-left: 5px;" @click="queryFun">查    询</button>
+				<button type="primary" style="-webkit-flex: 1;flex: 1;margin-left: 5px;margin-right: 5px;" @click="resetCondition">重    置</button>
+			</view>
+		</view>
+		<uni-section title="SAP出库任务单数据:" type="line" style="margin-bottom: 3px;padding: 3px;">
+			<view class="my-tips-view" v-if="isShowTips">没有查询到SAP出库任务单数据......</view>
+			<view v-for="(newsitem,key) in sapOutTaskList" :key="key">
+				<view class="myDeliverDetail" @click="myDeliverDetailClick(newsitem)">
+					<view style="flex-direction: row;flex-direction: row;height: 25px;display: flex;padding: 2px;border-radius: 5px 5px;">
+						<text style="align-self: center;">物料编号:</text>
+						<text style="align-self: center;font-size: 30rpx;font-weight: bold;">{{newsitem.materialCode}}</text>
+						<!-- <text :class="newsitem.keyFlag ? 'keyFlagRed' : 'keyFlagGray'" style="align-self: center;margin-left: 20px;">{{newsitem.keyFlag ? '★' : '■'}}</text> -->
+					</view>
+					<view class="line-h"></view>
+					<view style="flex-direction: row;flex-direction: row;display: flex;-webkit-justify-content: space-between;justify-content: space-between;">
+						<view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">物料名称:</text>
+								<text style="align-self: center;font-size: 25rpx;word-wrap: break-word;width: 200px;">{{newsitem.materialName}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">规格型号/图号:</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: blue;word-wrap: break-word;width: 200px;">{{newsitem.materialSpec}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">生产令号:</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: blue;word-wrap: break-word;width: 200px;">{{newsitem.bomNo}}</text>
+							</view>
+							<!-- <view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">BN/SN:</text>
+								<text style="align-self: center;font-size: 30rpx;font-weight: bold;word-wrap: break-word;width: 200px;">{{newsitem.bnSnCode}}</text>
+							</view> -->
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">出库需求数量:</text>
+								<text style="align-self: center;font-size: 30rpx;font-weight: bold;">{{newsitem.qty}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">已出库数量:</text>
+								<text style="align-self: center;font-size: 35rpx;font-weight: bold;color: red;">{{newsitem.outQty}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">创建人:</text>
+								<text style="align-self: center;font-size: 30rpx;">{{newsitem.createBy}}</text>
+							</view>
+							<view style="flex-direction: row;flex-direction: row;display: flex;padding: 2px;">
+								<text style="align-self: center;color: #555;font-size: 25rpx;">创建时间:</text>
+								<text style="align-self: center;font-size: 30rpx;">{{newsitem.createTime}}</text>
+							</view>
+						</view>
+						<view v-if="newsitem.outQty < newsitem.qty" style="border-radius: 35px;width: 35px; background-color: lime;height: 35px;align-self: center;margin-right: 5px;"></view>
+						<view v-else style="border-radius: 35px;width: 35px; background-color: lightgray;height: 35px;align-self: center;margin-right: 5px;"></view>
+					</view>
+				</view>
+			</view>
+		</uni-section>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				outTaskNo: '',
+				foucusIndex: 0,
+				materialSpecCode: '',
+				isShowTips: true,
+				sapOutTaskList:[],
+			}
+		},
+        onLoad(option) {
+			this.outTaskNo = option.outTaskNo;
+			uni.$on('addOutstoreData', this.addOutstoreData)
+        },
+		onUnload() {
+			uni.$off('addOutstoreData', this.addOutstoreData)
+		},
+		methods: {
+			async queryFun() {
+				if(this.isEmptyStr(this.materialSpecCode)) {
+					uni.showToast({
+						title: '物料信息 不能为空!',
+						icon: 'none',
+						duration: 1500,
+						mask:true,
+					})
+					this.foucusIndex = 1
+					setTimeout(() => {
+						this.foucusIndex = 0;
+					}, 100)
+					return
+				}
+				
+				uni.showLoading({
+					title: "正在查询...",
+					mask: true,
+				})
+				this.sapOutTaskList = []
+				let parm = {
+					url : '/SapInterface/QuerySapOutTaskListForMaterialSpec?outTaskNo=' + this.outTaskNo + '&materialSpecCode=' + this.materialSpecCode,
+					data: {
+					},
+					method: 'POST',
+					isHaveToken : true
+				}
+				let retData = await getApp().RequestData(parm)
+				// console.log(retData)
+				if(retData.isSuccess) {
+					if(retData.data.code == 200) {
+						let len = retData.data.data.length
+						this.sapOutTaskList = retData.data.data
+						if(len > 0) {
+							this.isShowTips = false
+						}
+						else {
+							this.isShowTips = true
+							this.resetCondition()
+						}
+					}
+					else {
+						this.isShowTips = true
+						this.resetCondition()
+					}
+				}
+				else {
+					this.isShowTips = true
+					this.resetCondition()
+				}
+				uni.hideLoading()
+			},
+			resetCondition() {
+				this.materialSpecCode = ''
+				this.sapOutTaskList = []
+				this.isShowTips = true
+				this.foucusIndex = 1
+				setTimeout(() => {
+					this.foucusIndex = 0;
+				}, 100)
+			},
+			isEmptyStr(s) {
+				if (s == undefined || s === '') {
+					return true
+				}
+				return false
+			},
+			myDeliverDetailClick(model) {
+				model.outTaskNo = this.outTaskNo;
+				if(model.instoreQty >= model.checkQty) {
+					uni.showToast({
+						title: '已全部出库',
+						icon: 'error',
+						mask: true,
+						duration: 1500
+					})
+				} else {
+					uni.navigateTo({
+						url: '/pages/Outstore/outstoreOperate',
+						success() {
+							uni.$emit('sendCheckedDeliverDtlData',model)
+							console.log(model)
+						}
+					});
+				}
+			},
+			addOutstoreData(data) {
+				this.sapOutTaskList.forEach((item) => {
+					if(item.id === data.id) {
+						item.outQty += Number(data.OutNum);
+					}
+				})
+				let isFinish = this.sapOutTaskList.some(x => x.outQty < x.qty)
+				if(!isFinish) {
+					this.resetCondition()
+				}
+				else {
+					this.queryFun()
+				}
+			},
+			confirmFun() {
+				this.queryFun()
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.my-tips-view {
+		/* margin-top: 50px; */
+		text-align: center;
+		color: #999999;
+		font-size: 20px;
+		font-weight: normal;
+	}
+	.myDeliverDetail {
+		border: 1px solid #cccccc;
+		border-radius: 5px;
+		margin-top: 1px;
+	}
+	.myDeliverDetail:active {
+		background-color: aliceblue;
+	}
+	.line-h {
+	    height: 1rpx;
+	    background-color: #cccccc;
+	}
+	.keyFlagRed {
+		color: red;
+	}
+	.keyFlagGray {
+		color: lightgray;
+	}
+</style>

+ 17 - 11
TFT-PDA/pages/Outstore/outstoreOperate.vue

@@ -166,20 +166,26 @@
 								uni.$emit('addOutstoreData',tmpMd);
 							}
 						});
-						//console.log(retData.data)
+						console.log(retData.data)
 					}
 					else {
-						// uni.showToast({
-						// 	title: '提交数据失败!' + retData.data.msg,
-						// 	icon: 'none',
-						// 	duration: 1000
-						// })
-						
-						console.log(retData.data)
+						// console.log(retData.data)
+						uni.showToast({
+							title: '接口错误!' + retData.data.msg,
+							icon: 'none',
+							duration: 1500,
+							mask:true,
+						})
 					}
 				}
 				else {
-					console.log(retData)
+					// console.log(retData)
+					uni.showToast({
+						title: '接口异常!' + retData.retMsg,
+						icon: 'none',
+						duration: 1500,
+						mask:true,
+					})
 				}
 			},
 			isEmptyStr(s) {
@@ -195,7 +201,7 @@
 					this.$refs.popup.open('center')
 					return;
 				}
-				if(this.scanMaterialCode !== this.outTaskDtlMd.materialCode) {
+				if(this.scanMaterialCode !== this.outTaskDtlMd.materialSpec) {
 					this.popTitleMsg = '请重新扫码!!'
 					this.popMsg = '物料号扫码确认错误'
 					this.$refs.popup.open('center')
@@ -226,7 +232,7 @@
 					//this.resetFoucus(1)
 					return
 				}
-				if(this.scanMaterialCode !== this.outTaskDtlMd.materialCode) {
+				if(this.scanMaterialCode !== this.outTaskDtlMd.materialSpec) {
 					this.popTitleMsg = '请重新扫码!!'
 					this.popMsg = '物料号扫码确认错误'
 					this.$refs.popup.open('center')

+ 7 - 7
TFT-PDA/pages/tabBar/inspect/inspect.nvue

@@ -78,8 +78,8 @@
 					sizeType: ['compressed'],
 					sourceType: ['camera'],
 					success: (res) => {
-						console.log(res.tempFilePaths)
-						console.log('chooseImage success, temp path is', res.tempFilePaths[0])
+						// console.log(res.tempFilePaths)
+						// console.log('chooseImage success, temp path is', res.tempFilePaths[0])
 						var imageSrc = res.tempFilePaths[0]
 						this.previewImagePath = res.tempFilePaths
 						this.imageSrc = imageSrc
@@ -98,7 +98,7 @@
 							},
 							name: 'data',
 							success: (res) => {
-								console.log('uploadImage success, res is:', res)
+								// console.log('uploadImage success, res is:', res)
 								uni.showToast({
 									title: '上传成功',
 									icon: 'success',
@@ -106,7 +106,7 @@
 								})
 							},
 							fail: (err) => {
-								console.log('uploadImage fail', err);
+								// console.log('uploadImage fail', err);
 								uni.showModal({
 									content: err.errMsg,
 									showCancel: false
@@ -115,7 +115,7 @@
 						});
 					},
 					fail: (err) => {
-						console.log('chooseImage fail', err)
+						// console.log('chooseImage fail', err)
 						// #ifdef MP
 						uni.getSetting({
 							success: (res) => {
@@ -151,7 +151,7 @@
 						Authorization: 'Bearer ' + userMsg.tokenStr + ''
 					},
 					success: res => {
-						console.log(res)
+						// console.log(res)
 						
 						// const arrayBuffer = new Uint8Array(res.data)
 						// this.imageSrc1 = 'data:image/png;base64,' + uni.arrayBufferToBase64(arrayBuffer);
@@ -167,7 +167,7 @@
 						});
 					},
 					fail: (err) => {
-						console.log(err)
+						// console.log(err)
 					}
 				});
 			},

+ 1 - 1
TFT-PDA/pages/tabBar/other/other.nvue

@@ -95,7 +95,7 @@
 				let type = 'center'
 				this.type = type
 				this.$refs.popup.open(type)
-				console.log(this.popStr)
+				// console.log(this.popStr)
 			}
 		}
 	}