chencc 1 vuosi sitten
vanhempi
commit
791ad90eff

+ 6 - 2
pages/pda/feeding/components/deviceBom.vue

@@ -708,8 +708,12 @@ export default {
 			width: 10%;
 		}
 
-
-
+		.ww30{
+			width: 30%;
+		}
+		.ww40{
+			width: 40%;
+		}
 	}
 
 	.head {

+ 1 - 4
pages/pda/feeding/components/turnoverBom.vue

@@ -124,10 +124,7 @@
 				type: Object,
 				default: () => {}
 			},
-			productsObjClone:{
-				type: Number,
-				default: 0
-			}
+
 
 		},
 		mounted() {

+ 2 - 2
pages/pda/feeding/components/workOrderBom.vue

@@ -65,11 +65,11 @@
 
 
 
-		<view class="title_box mt20 rx-bc" v-if="clientEnvironmentId == 3 && taskType == 1 && (pType == 'feed' || pType == 'job')">
+		<view class="title_box mt20 rx-bc" v-if="(clientEnvironmentId == 3||clientEnvironmentId == 5) && taskType == 1 && (pType == 'feed' || pType == 'job')">
 			<view class="name">{{ pType == 'feed' ? '实际投料时间' : '实际报工时间'}} </view>
 		</view>
 
-		<view class="material " v-if="clientEnvironmentId == 3 && taskType == 1  && (pType == 'feed' || pType == 'job')">
+		<view class="material " v-if="(clientEnvironmentId == 3||clientEnvironmentId == 5) && taskType == 1  && (pType == 'feed' || pType == 'job')">
 
 			<view class="content_table">
 				<view class="item">

+ 18 - 24
pages/pda/feeding/details.vue

@@ -43,8 +43,7 @@
 
 					<!-- 11					周转车 -->
 					<turnoverBom v-if='item.turnover.length != 0' :list='item.turnover' :wordItem='item' pattern='feed'
-						@handleScan='handleScan' @handleDel='handleDel' :productsObj="item.product"
-						:productsObjClone="cloneListNum"></turnoverBom>
+						@handleScan='handleScan' @handleDel='handleDel' :productsObj="item.product"></turnoverBom>
 
 					<aridRegion v-if='item.aridRegionList.length != 0' :list='item.aridRegionList'
 						@handleScan='handleScan'></aridRegion>
@@ -179,21 +178,26 @@ export default {
 
 		uni.$on("setSelectList", (selectList, id) => {
 
-			console.log(this.List, selectList, '444444444444465555555555555');
-
-
 			this.List.forEach(m => {
-				let num=0;
-				selectList.map(v => {
-					v.extInfo.positionList.map(d => {
-						if (m.code == d.workOrderCode) {
-							console.log(d);
-							num+=d.quantity;
+
+				if (selectList.length) {
+					let num = 0;
+					selectList.map(v => {
+						if (v.extInfo.positionList && v.extInfo.positionList.length) {
+							v.extInfo.positionList.map(d => {
+								if (m.code == d.workOrderCode) {
+									console.log(d);
+									num += d.quantity;
+								}
+							})
 						}
 					})
-				})
-				this.cloneListNum = num;
-				m.product.feedQuantity = num;
+					if (m.product && num != 0) {
+						this.cloneListNum = num;
+						m.product.feedQuantity = num;
+					}
+				}
+
 
 				if (m.workOrderId == id) {
 					let modelList = [] // 模具
@@ -208,11 +212,7 @@ export default {
 
 					selectList.forEach(f => {
 						if (f.rootCategoryLevelId == 4) {
-
-
 							equipmentList = equipmentList.concat(f)
-
-
 							equipmentList.map(d => {
 
 								if (d.equipmentLabelJson.length) {
@@ -224,8 +224,6 @@ export default {
 								}
 							})
 
-							console.log(equipmentList, '----------');
-
 						}
 						if (f.rootCategoryLevelId == 5) {
 							modelList = modelList.concat(f)
@@ -245,12 +243,8 @@ export default {
 							semiProductList = semiProductList.concat(f)
 						}
 
-
-
-
 					})
 
-
 					this.$set(m, 'modelList', modelList)
 					this.$set(m, 'instanceList', instanceList)
 					this.$set(m, 'aridRegionList', aridRegionList)

+ 136 - 72
pages/pda/jobBooking/components/packingBom.vue

@@ -14,9 +14,9 @@
 				<!-- 最小包装单元 -->
 				<view class="name">{{ item.titel }}</view>
 
-				<view class="btn_box rx-bc" @click="handCancelPacking">
+				<!-- <view class="btn_box rx-bc" @click="handCancelPacking">
 					重置打包
-				</view>
+				</view> -->
 			</view>
 
 			<view class="material ">
@@ -25,9 +25,8 @@
 					<view class="item">
 						<view class="lable rx-cc">包装总数 </view>
 						<view class="content content_num">
-							<input class="uni-input" v-model="item.formedNumLast" type="number"  :disabled="i != 0"
+							<input class="uni-input" v-model="item.formedNumLast" type="number" :disabled="i != 0"
 								@input="changeinput"></input>
-
 							<view class="unit">{{ item.packageUnit }}</view>
 
 						</view>
@@ -59,14 +58,12 @@
 
 				</view>
 
-
-
-
 				<view class="content_table2" v-if='item.splitList.length'>
 					<view class="head row rx-sc">
 						<view class="item ww10">序号</view>
 						<view class="item ww30">数量</view>
-						<view class="item ww50">条码</view>
+						<view class="item ww20">计量数</view>
+						<view class="item ww40">条码</view>
 						<!-- <view class="item ww10 jsColor" @click="calculation()" v-if="clientEnvironmentId != 3">计算</view>
 						<view class="item ww10" v-if="clientEnvironmentId == 3"></view> -->
 					</view>
@@ -76,11 +73,12 @@
 								<view class="item ww10 rx-cc ">{{ it.computeSize }}</view>
 								<view class="item ww30 content_num rx-sc">
 									<input class="uni-input" v-model="it.quantity" type="digit"></input>
-									<view style="width: 260rpx; font-size: 22rpx;"> {{ it.unit }}/{{
+									<view style="width: 260rpx; font-size: 22rpx;"> {{ it.packageUnit }}/{{
 										item.conversionUnit }}
 									</view>
 								</view>
-								<view class="item ww50">
+								<view class="item ww20 rx-cc ">{{ it.totalQuantity }}</view>
+								<view class="item ww40">
 									{{ it.code }}
 								</view>
 							</view>
@@ -178,17 +176,28 @@ export default {
 			unit: '',
 			Usertype: "",// 规格
 			unitList: [],
-
+			resObj: {},
 			splitList: [],
 			localdataList: [],
-
-
+			newDispositionList: [],
+			withinQuantity: '',//内包装数量
+			withinUnit: '',//内包装单位
+			outsideQuantity: '',//外包装数量
+			outsideUnit: '',//外包装单位
+			timeout: null,
 			packUnit: null,
 			temporaryNum: 0,
 			temporaryCount: 0,
 			temporaryList: [],
 			packTwoList: [],
 			DispositionList: [],
+			selectList: [],
+			text : '',
+			value : '',
+			minimumPackage: [],// 最小包装
+			withinPackage: [],// 内包装
+
+			outsidePackage: [], //外包装
 			newCategoryId: '',
 
 			show: false,
@@ -210,15 +219,18 @@ export default {
 		},
 		objData: {
 			handler(newVal) {
-				this.formedNumLast = newVal.formedNumLast;
-				console.log(this.formedNumLast );
+				console.log(newVal, 'newVal');
+				if (newVal.product && newVal.product.length) {
+					this.formedNumLast = newVal.product[0].feedQuantity;
+				}
+				// 
 			},
 			deep: true,
 			immediate: true
 		}
 	},
 	created() {
-		// this.formedNumLast = this.objData.formedNumLast;
+		// this.formedNumLast = this.objData.product[0].feedQuantity;
 
 		this.byCode();
 
@@ -229,14 +241,22 @@ export default {
 
 	methods: {
 		// 输入数量变化
-		changeinput(e){
-			console.log(e);
+		changeinput(e) {
+			clearTimeout(this.timeout)
+			// 设置新的定时器
+			this.timeout = setTimeout(() => {
+				this.formedNumLast = e.detail.value;
+				this.initFn(this.selectList);
+			}, 500) // 500毫秒后触发
 
 		},
 
 		changeUserType(e) {
-
-			this.listFn(e.arr);
+			console.log(e);
+			this.text = e.text;
+			this.value = e.value;
+			this.selectList = e.arr;
+			this.initFn(e.arr);
 		},
 		groupBy(arr, key) {
 			return arr.reduce((acc, obj) => {
@@ -253,7 +273,7 @@ export default {
 		async packageDispositionFn() {
 			let that = this;
 			const res = await packageDisposition(this.newCategoryId);
-			
+
 			if (res.length) {
 				res.shift();
 				let data = JSON.parse(JSON.stringify(res));
@@ -268,46 +288,58 @@ export default {
 				});
 
 				this.Usertype = this.localdataList[0].value;
-				this.listFn(this.localdataList[0].arr);
+				this.text = this.localdataList[0].text;
+				this.value =this.localdataList[0].value;
+				res.map(v => {
+					v.splitList = [];
+				})
+				this.newDispositionList = res;
+				this.selectList = res;
+
+
+
+
+				this.initFn(this.localdataList[0].arr);
+				// this.listFn(this.localdataList[0].arr);
 
 			}
 
 		},
 
+		initFn(v) {
 
-		listFn(arr) {
-			let obj = {
-				withinQuantity: "",
-				withinUnit: '',
-				outsideQuantity: '',
-				outsideUnit: ''
-			}
+			if (v.length) {
+				this.withinQuantity = v[1].packageCell;//内包装数量
+				this.withinUnit = v[1].packageUnit;//内包装单位
+				this.outsideQuantity = v[2].packageCell;//外包装数量
+				this.outsideUnit = v[2].packageUnit;//外包装单位
+			};
+			console.log('几次');
+			this.handleSplit(v[0]);
+		},
+
+		async listFn(res) {
+
+			let { minimumPackage, withinQuantity, outsidePackage, outsideQuantity, withinPackage } = res;
 			let textList = ['最小包装', '内包装', '外包装'];
-			arr.map(async (v, i) => {
-				v.splitList = [];
+			let arr = [{ list: minimumPackage }, { list: withinPackage, num: withinQuantity }, { list: outsidePackage, num: outsideQuantity }];
+
+			this.minimumPackage= minimumPackage;// 最小包装
+			this.withinPackage= withinPackage;// 内包装
+			this.outsidePackage= outsidePackage; //外包装
+
+			this.newDispositionList.map((v, i) => {
+				v.splitList = arr[i].list;
 				v.titel = textList[i];
-				if (i === 0) {
+				if (i == 0) {
 					v.formedNumLast = this.formedNumLast;
-					v.splitList = await this.handleSplit(v)||[];
-					// this.$nextTick(c () => {
-						
-					// })
-				}
-
-				if (i === 1) {
-					obj.withinQuantity = v.packageCell;
-					obj.withinUnit = v.conversionUnit
-				}
-				if (i === 2) {
-					obj.outsideQuantity = v.packageCell;
-					obj.outsideUnit = v.conversionUnit;
+				} else {
+					v.formedNumLast = arr[i].num;
 				}
-
-
-				
 			})
-		
-			this.$set(this,'DispositionList',arr)
+			this.$nextTick(() => {
+				this.$set(this, 'DispositionList', this.newDispositionList);
+			})
 		},
 
 
@@ -393,6 +425,7 @@ export default {
 
 		// 第一次调用
 		handleSplit(v) {
+
 			if (this.splitList.length) {
 				uni.showToast({
 					title: '产品已分包',
@@ -401,7 +434,7 @@ export default {
 				return false
 			}
 
-			if (!v.formedNumLast) {
+			if (!this.formedNumLast) {
 				uni.showToast({
 					title: '包装总数数量不能为空',
 					icon: 'none'
@@ -426,31 +459,31 @@ export default {
 			}
 
 			let param = {
-				totalQuantity: v.formedNumLast,
-				quantity: v.packageCell,
-				unit: v.packageUnit,
-				packageUnit: v.conversionUnit,
-				workOrderId: this.workOrderId,
+				workOrderId: this.workOrderId,//工单id
 				taskId: this.taskId,
-				tier: 1
+				tier: 1,
+				totalQuantity: this.formedNumLast,//总数量
+				quantity: v.packageCell,//数量
+				unit: v.packageUnit,//单位
+
+				withinQuantity: this.withinQuantity,//内包装数量
+				withinUnit: this.withinUnit,//内包装单位
+				outsideQuantity: this.outsideQuantity,//外包装数量
+				outsideUnit: this.outsideUnit,//外包装单位
+
+				packageUnit: v.conversionUnit,
+
 			}
 
-			return new Promise((resolve, reject) => {
-				packingReport(param).then(res => {
-					this.splitList = res.map(m => {
+			packingReport(param).then(res => {
+
+				this.listFn(res);
 
-						return {
-							check: false,
-							...m
-						}
-					})
-					resolve(this.splitList)
-					// this.getPackingDetails()
-				})
 			})
 
 
 
+
 		},
 
 		handleCheck(idx, it) {
@@ -560,11 +593,30 @@ export default {
 			_packingReportMarginList = this.splitList.filter(e => {
 				return !e.parentId
 			})
-
 			let packInfo = {
-				packingReportList: this.packTwoList,
-				packingReportMarginList: _packingReportMarginList,
-				formedNumLast: this.formedNumLast
+				// this.DispositionList[0]
+				specText : this.text,
+				specValue : this.value,
+				minimumPackage:  this.minimumPackage,// 最小包装
+				minimumPackageCell: this.DispositionList[0].packageCell,// 最小包装
+				minimumPackageUnit: this.DispositionList[0].packageUnit,// 最小包装单位
+				minimumConversionUnit: this.DispositionList[0].conversionUnit,// 最小包装单位
+				minimumFormedNumLast : this.DispositionList[0].formedNumLast,// 总包装数量
+
+
+				withinPackage: this.withinPackage,// 内包装
+
+				withinPackageCell: this.DispositionList[1].packageCell,// 最小包装名称
+				withinPackageUnit: this.DispositionList[1].packageUnit,// 最小包装单位
+				withinConversionUnit: this.DispositionList[1].conversionUnit,// 最小包装单位
+				withinFormedNumLast : this.DispositionList[1].formedNumLast,// 总包装数量
+				// packingReportList: this.packTwoList,
+				// packingReportMarginList: _packingReportMarginList,
+				outsidePackage: this.outsidePackage, //外包装
+				outsidePackageCell: this.DispositionList[2].packageCell,// 最小包装名称
+				outsidePackageUnit: this.DispositionList[2].packageUnit,// 最小包装单位
+				outsideConversionUnit: this.DispositionList[2].conversionUnit,// 最小包装单位
+				outsideFormedNumLast : this.DispositionList[2].formedNumLast,// 总包装数量
 			}
 			return packInfo
 		},
@@ -623,6 +675,10 @@ export default {
 .title_box {
 	margin-top: 20rpx;
 
+	.ww20 {
+		width: 20%;
+	}
+
 	.name {
 		font-size: 28rpx;
 		font-style: normal;
@@ -781,6 +837,14 @@ export default {
 			width: 30%;
 		}
 
+		.ww20 {
+			width: 20%;
+		}
+
+		.ww40 {
+			width: 40%;
+		}
+
 		.jsColor {
 			color: $theme-color;
 			font-size: 20rpx;

+ 292 - 191
pages/pda/jobBooking/components/packingBomDetails.vue

@@ -1,91 +1,143 @@
 <template>
-
 	<view>
-		<view class="title_box rx-bc">
-			<view class="name">内包装
-			
-			
-			
-			
-			</view>
+		<view class="col userInp " style="display: flex; align-items: center;border: 1px solid #E3E5E5;border-top: 0;">
+			<text class="label lable150 rx-cc" style="border-right: 1px solid #E3E5E5;">规格名称:</text>
+			<!-- multiple -->
+			<view style="padding-left: 5rpx;">{{ specText }}</view>
 		</view>
+		<view v-for="(item, i) in list" :key="i">
+			<view class="title_box rx-bc">
+				<view class="name">{{ item.title }}
 
-		<view class="material">
-
-			<view class="content_table2" v-if='packInfo.packingReportMarginList.length > 0'>
-				<view class="head row rx-sc">
-					<view class="item ww10">序号1</view>
-					<view class="item ww30">数量</view>
-					<view class="item ww50">条码</view>
-					<view class="item ww10"></view>
 				</view>
+			</view>
 
-				<view class="table">
-					<u-list @scrolltolower="scrolltolower" class="z_list" style="height: 100% !important;">
-						<view class="tr row rx-sc" v-for="(it, idx) in packInfo.packingReportMarginList" :key='idx'>
-							<view class="item ww10 rx-cc ">{{ it.computeSize }}</view>
-							<view class="item ww30 content_num rx-sc">
-								{{it.quantity }}/ {{it.unit}}
+			<view class="material">
+				<view class="content_table">
+					<view class="item">
+						<view class="lable rx-cc">包装总数 </view>
+						<view class="content content_num">
+							<input class="uni-input" v-model="item.formedNumLast" type="number" disabled></input>
+							<view class="unit">{{ item.packageUnit }}</view>
 
-							</view>
-							<view class="item ww50">
-								{{ it.code }}
-							</view>
-							<view class="item ww10 rx-cc" v-if="!it.parentId" @click="handleCheck( idx, it)">
+						</view>
+					</view>
 
+					<view class="item rx-sc">
+						<view class="rx ww55 ">
+							<view class="lable lable150 rx-cc ">{{ item.title }}单元</view>
+							<view class="content content_num">
+								<input class="uni-input" v-model="item.packageCell" disabled></input>
+								<view style="max-width: 100rpx; font-size: 24rpx;">{{ item.packageUnit }}</view>
 							</view>
-
 						</view>
 
-					</u-list>
-				</view>
-			</view>
-
-
+						<view class="rx ww45">
+							<view class="rx-cc ww80">
+								/<view style="max-width: 100rpx; font-size: 24rpx;">{{ item.conversionUnit }}</view>
+							</view>
+							<view class="content rx-sc">
 
-		</view>
+							</view>
+						</view>
 
+					</view>
 
-		<view class="material ">
+				</view>
 
-			<view class="title_box rx-bc">
-				<view class="name">外包装</view>
-			</view>
 
 
+				<view class="content_table2" v-if='item.splitList.length > 0'>
+					<view class="head row rx-sc">
+						<view class="item ww10">序号</view>
+						<view class="item ww30">数量</view>
+						<view class="item ww50">条码</view>
+						<view class="item ww10"></view>
+					</view>
 
+					<view class="table">
+						<u-list @scrolltolower="scrolltolower" class="z_list" style="height: 100% !important;">
+							<view class="tr row rx-sc" v-for="(it, idx) in item.splitList" :key='idx'>
+								<view class="item ww10 rx-cc ">{{ it.computeSize }}</view>
+								<view class="item ww30 content_num rx-sc">
+									{{ it.quantity }}/ {{ it.unit }}
 
+								</view>
+								<view class="item ww50">
+									{{ it.code }}
+								</view>
+								<view class="item ww10 rx-cc" v-if="!it.parentId" @click="handleCheck(idx, it)">
 
+								</view>
 
-			<!-- 外包装  列表-->
-			<view class="content_table2" v-if='packInfo.packingReportList.length > 0'>
-				<view class="head row rx-sc">
-					<view class="item ww10">序号</view>
-					<view class="item ww30">数量</view>
+							</view>
 
-					<view class="item ww50">条码</view>
-					<view class="item ww10"></view>
+						</u-list>
+					</view>
 				</view>
+			</view>
 
-				<view class="table">
-					<view class="tr row rx-sc " v-for="(it, idx) in packInfo.packingReportList" :key='idx'>
-						<view class="item ww10 rx-cc ">{{ idx + 1 }}</view>
-						<view class="item ww30 content_num rx-sc">
-							{{ it.quantity}} / {{ it.childList[0].unit}} / {{it.unit}}
-						</view>
 
-						<view class="item ww50">
-							{{ it.code }}
-						</view>
-						<view class="item ww10 rx-cc">
-						</view>
 
-					</view>
+		</view>
+	</view>
+</template>
 
+<script>
+export default {
+	props: {
+		packInfo: {
+			type: Object,
+			default: () => { }
+		},
 
-				</view>
+	},
+	watch: {
+		packInfo: {
+			handler(val) {
+				this.specText = val.specText||'';
+
+
+
+				let minimumObj = {
+					title: '最小包装',
+					splitList: val.minimumPackage,
+					packageCell: val.minimumPackageCell,
+					packageUnit: val.minimumPackageUnit,
+					conversionUnit: val.minimumConversionUnit,
+					formedNumLast: val.minimumFormedNumLast
+				}
+				let withinObj = {
+					title: '内包装',
+					splitList: val.withinPackage,
+					packageCell: val.withinPackageCell,
+					packageUnit: val.withinPackageUnit,
+					conversionUnit: val.withinConversionUnit,
+					formedNumLast: val.withinFormedNumLast
+				}
+				let outsideObj = {
+					title: '外包装',
+					splitList: val.outsidePackage,
+					packageCell: val.outsidePackageCell,
+					packageUnit: val.outsidePackageUnit,
+					conversionUnit: val.outsideConversionUnit,
+					formedNumLast: val.outsideFormedNumLast
+				}
+				let arr = [minimumObj, withinObj, outsideObj];
+
+				this.list = arr;
+
+				console.log(this.list);
+			},
+			deep: true,
+			immediate: true,
+		},
+	},
+	data() {
+		return {
+			specText:'',
+			list: [],
 
-			</view>
 
 
 
@@ -94,217 +146,266 @@
 
 
 
+		}
+	},
 
-		</view>
+	created() {
 
 
 
+	},
 
+	methods: {
 
-	</view>
-</template>
 
-<script>
-	export default {
-		props: {
-			packInfo: {
-				type: Object,
-				default: () => {}
-			},
 
-		},
-		data() {
-			return {
 
 
+		scrolltolower() {
 
+		},
 
+	},
+}
+</script>
 
+<style lang="scss" scoped>
+.title_box {
+	margin-top: 20rpx;
+
+	.name {
+		font-size: 28rpx;
+		font-style: normal;
+		font-weight: 400;
+		color: $theme-color;
+		padding-left: 20rpx;
+
+		position: relative;
+
+		&:before {
+			position: absolute;
+			content: '';
+			left: 0rpx;
+			top: 0rpx;
+			bottom: 0rpx;
+			width: 4rpx;
+			height: 28rpx;
+			background: $theme-color;
+			margin: auto;
+		}
+	}
+}
 
+.content_table {
+		width: 100%;
+		border: 2rpx solid $border-color;
 
+		.item {
+			display: flex;
+			border-bottom: 2rpx solid $border-color;
 
 
+			.lable {
+				width: 132rpx;
+				text-align: center;
+				background-color: #F7F9FA;
+				font-size: 26rpx;
+				border-right: 2rpx solid $border-color;
+				flex-shrink: 0;
+			}
 
+			.lable220 {
+				width: 220rpx !important;
+				font-size: 24rpx;
+			}
 
+			.lable150 {
+				width: 156rpx !important;
+				font-size: 24rpx;
 			}
-		},
 
-		created() {
+			.ww80 {
+				width: 80rpx;
+			}
 
+			.content {
+				width: 518rpx;
+				min-height: 64rpx;
+				font-size: 28rpx;
+				line-height: 28rpx;
+				font-style: normal;
+				font-weight: 400;
+				// padding: 18rpx 8rpx;
+				box-sizing: border-box;
+				word-wrap: break-word;
+				flex-grow: 1 !important;
 
 
-		},
+				.unit {
+					padding: 0 4rpx;
+					font-size: 24rpx;
+					color: #404446;
+				}
 
-		methods: {
 
 
+			}
 
 
 
-			scrolltolower() {
+			&:last-child {
+				border-bottom: none;
+			}
+		}
 
-			},
 
-		},
-	}
-</script>
 
-<style lang="scss" scoped>
-	.title_box {
-		margin-top: 20rpx;
+		.ww55 {
+			width: 55%;
+		}
 
-		.name {
-			font-size: 28rpx;
-			font-style: normal;
-			font-weight: 400;
-			color: $theme-color;
-			padding-left: 20rpx;
-
-			position: relative;
-
-			&:before {
-				position: absolute;
-				content: '';
-				left: 0rpx;
-				top: 0rpx;
-				bottom: 0rpx;
-				width: 4rpx;
-				height: 28rpx;
-				background: $theme-color;
-				margin: auto;
-			}
+		.ww45 {
+			width: 45%;
 		}
-	}
 
 
-	.material {
-		margin-top: 10rpx;
+	}
+.material {
+	margin-top: 10rpx;
 
 
-	}
+}
 
+.label {
+	display: flex;
+	height: 70rpx;
+	width: 86px !important;
+	font-size: 13px;
+	align-items: center;
+	justify-content: center;
+	background-color: #F7F9FA;
+}
 
 
+.content_table2 {
+	width: 100%;
+	margin-top: 16rpx;
 
-	.content_table2 {
+	.row {
 		width: 100%;
-		margin-top: 16rpx;
 
-		.row {
-			width: 100%;
 
+		.item {
 
-			.item {
+			color: #404446;
+			font-size: 28rpx;
+			padding-left: 12rpx;
 
-				color: #404446;
-				font-size: 28rpx;
-				padding-left: 12rpx;
+		}
 
-			}
+		.color157 {
+			color: $theme-color;
+		}
 
-			.color157 {
-				color: $theme-color;
-			}
+		.ww30 {
+			width: 30%;
+		}
 
-			.ww30 {
-				width: 30%;
-			}
+		.ww50 {
+			width: 50%;
 
-			.ww50 {
-				width: 50%;
+		}
 
-			}
+		.ww90 {
+			width: 90%;
+		}
 
-			.ww90 {
-				width: 90%;
-			}
+		.ww15 {
+			width: 15%;
+		}
 
-			.ww15 {
-				width: 15%;
-			}
+		.ww10 {
+			width: 10%;
+		}
 
-			.ww10 {
-				width: 10%;
-			}
+		.ww30 {
+			width: 30%;
+		}
 
-			.ww30 {
-				width: 30%;
-			}
+	}
 
-		}
+	.head {
+		height: 64rpx;
+		background: #F7F9FA;
+		border-top: 2rpx solid #E3E5E5;
+		border-left: 2rpx solid #E3E5E5;
 
-		.head {
+		.item {
 			height: 64rpx;
-			background: #F7F9FA;
-			border-top: 2rpx solid #E3E5E5;
-			border-left: 2rpx solid #E3E5E5;
-
-			.item {
-				height: 64rpx;
-				line-height: 64rpx;
-				border-right: 2rpx solid #E3E5E5;
-				box-sizing: border-box;
-			}
+			line-height: 64rpx;
+			border-right: 2rpx solid #E3E5E5;
+			box-sizing: border-box;
 		}
+	}
 
 
 
-		.tr {
-			border-top: 2rpx solid #E3E5E5;
-			border-left: 2rpx solid #E3E5E5;
+	.tr {
+		border-top: 2rpx solid #E3E5E5;
+		border-left: 2rpx solid #E3E5E5;
 
 
-			.item {
-				font-size: 24rpx;
-				min-height: 64rpx;
-				display: flex;
-				align-items: center;
-				border-right: 2rpx solid #E3E5E5;
-				box-sizing: border-box;
-				white-space: normal;
-				word-break: break-all;
+		.item {
+			font-size: 24rpx;
+			min-height: 64rpx;
+			display: flex;
+			align-items: center;
+			border-right: 2rpx solid #E3E5E5;
+			box-sizing: border-box;
+			white-space: normal;
+			word-break: break-all;
 
-			}
+		}
 
-			&:last-child {
-				border-bottom: 2rpx solid #E3E5E5;
+		&:last-child {
+			border-bottom: 2rpx solid #E3E5E5;
 
-			}
 		}
 	}
+}
 
 
 
 
-	.content_num {
-		display: flex;
-		align-items: center;
-		padding: 0 4rpx;
+.content_num {
+	display: flex;
+	align-items: center;
+	padding: 0 4rpx;
 
-		/deep/ .uni-input-input {
-			border: 2rpx solid #F0F8F2;
-			background: #F0F8F2;
-			color: $theme-color;
-		}
+	/deep/ .uni-input-input {
+		border: 2rpx solid #F0F8F2;
+		background: #F0F8F2;
+		color: $theme-color;
+	}
 
 
-	}
+}
 
-	.penalize {
-		width: 86rpx;
-		line-height: 60rpx;
-		background: $theme-color;
-		font-size: 24rpx;
-		text-align: center;
-		color: #fff;
-	}
+.penalize {
+	width: 86rpx;
+	line-height: 60rpx;
+	background: $theme-color;
+	font-size: 24rpx;
+	text-align: center;
+	color: #fff;
+}
 
-	.check {
-		width: 30rpx;
-		height: 30rpx;
-	}
+.check {
+	width: 30rpx;
+	height: 30rpx;
+}
 
-	.z_list {
-		max-height: 500rpx;
-	}
+.z_list {
+	max-height: 500rpx;
+}
 </style>

+ 2 - 3
pages/pda/jobBooking/index/index.vue

@@ -9,6 +9,7 @@
 			<u-list @scrolltolower="scrolltolower">
 				<view class="card_box">
 					<!-- 工单信息 objData 报告信息-->
+					
 					<workOrderBom :item='objData' pType="job" v-if='objData' :taskType="taskType"
 						@handleScan='handleScan'></workOrderBom>
 					<paramBom v-if='paramDetailList.length != 0' :list='paramDetailList'></paramBom>
@@ -72,10 +73,8 @@
 
 					<!-- //包装扫码 -->
 					<view v-if="clientEnvironmentId != 2">
-
 						<packingBom :taskId='taskId' :workOrderId='id' :objData='objData' ref="packRef"
 							v-if='taskType == 4 && clientEnvironmentId != 3 && objData' :categoryId="categoryId"></packingBom>
-
 					</view>
 					
 
@@ -812,7 +811,7 @@ export default {
 				}
 			}
 
-
+	
 
 			jobSave(this.objData).then(res => {
 

+ 1 - 0
pages/pda/warehousing/components/jobBom.vue

@@ -357,6 +357,7 @@ export default {
 		},
 
 		changeNum(value) {
+	
 			// 不合格数量
 			let val = value.notFormedNum;
 			//匹配非数字

+ 337 - 238
pages/pda/warehousing/components/packingBom.vue

@@ -1,355 +1,454 @@
 <template>
 
 	<view>
-
-
-		<view class="material ">
+		<view class="col userInp " style="display: flex; align-items: center;border: 1px solid #E3E5E5">
+			<text class="label lable150 rx-cc" style="border-right: 1px solid #E3E5E5;">规格名称:</text>
+			<!-- multiple -->
+			<view style="padding-left: 5rpx;">{{ specText }}</view>
+		</view>
+		<view v-for="(item, i) in list" :key="i">
 			<view class="title_box rx-bc">
-				<view class="name">外包装</view>
-			</view>
-
+				<view class="name">{{ item.title }}
 
-			<!-- 外包装  列表-->
-			<view class="content_table2" v-if="objData.packingReportList.length> 0">
-				<view class="head row rx-sc">
-					<view class="item ww10">序号</view>
-					<view class="item ww30">数量</view>
-					<view class="item ww50">发货条码</view>
-					<view class="item ww10 selectAll" @click="handOneCheck">{{ oneCheck ?   '取消' : '全选'}}</view>
 				</view>
+			</view>
+
+			<view class="material">
+				<view class="content_table">
+					<view class="item">
+						<view class="lable rx-cc">包装总数 </view>
+						<view class="content content_num">
+							<input class="uni-input" v-model="item.formedNumLast" type="number" disabled></input>
+							<view class="unit">{{ item.packageUnit }}</view>
 
-				<view class="table">
-					<view class="tr row rx-sc " v-for="(it, idx) in objData.packingReportList" :key='idx'
-						@click="handleCheck(idx, it)">
-						<view class="item ww10 rx-cc ">{{ idx + 1 }}</view>
-						<view class="item ww30 content_num rx-sc">
-							{{it.packingNum}} {{ it.childList[0].unit }} / {{ it.unit }},{{it.quantity}} {{ measuringUnit}}
 						</view>
+					</view>
 
-						<view class="item ww50">
-							{{ it.code }}
+					<view class="item rx-sc">
+						<view class="rx ww55 ">
+							<view class="lable lable150 rx-cc ">{{ item.title }}单元</view>
+							<view class="content content_num">
+								<input class="uni-input" v-model="item.packageCell" disabled></input>
+								<view style="max-width: 100rpx; font-size: 24rpx;">{{ item.packageUnit }}</view>
+							</view>
 						</view>
-						<view class="item ww10 rx-cc">
-							<image class="check" v-if='it.isChecked' src='@/static/check.png'>
-							</image>
-							<image class="check" v-if=' !it.isChecked' src='@/static/check_no.png'>
-							</image>
+
+						<view class="rx ww45">
+							<view class="rx-cc ww80">
+								/<view style="max-width: 100rpx; font-size: 24rpx;">{{ item.conversionUnit }}</view>
+							</view>
+							<view class="content rx-sc">
+
+							</view>
 						</view>
 
 					</view>
 
-
 				</view>
 
-			</view>
 
 
+				<view class="content_table2" v-if='item.splitList.length > 0'>
+					<view class="head row rx-sc">
+						<view class="item ww10">序号</view>
+						<view class="item ww30">数量</view>
+						<view class="item ww50">条码</view>
+						<view class="item ww10"></view>
+					</view>
 
-		</view>
+					<view class="table">
+						<u-list @scrolltolower="scrolltolower" class="z_list" style="height: 100% !important;">
+							<view class="tr row rx-sc" v-for="(it, idx) in item.splitList" :key='idx'>
+								<view class="item ww10 rx-cc ">{{ it.computeSize }}</view>
+								<view class="item ww30 content_num rx-sc">
+									{{ it.quantity }}/ {{ it.unit }}
 
+								</view>
+								<view class="item ww50">
+									{{ it.code }}
+								</view>
+								<view class="item ww10 rx-cc" v-if="!it.parentId" @click="handleCheck(idx, it)">
 
+								</view>
 
-		<view class="material ">
+							</view>
 
-			<view class="title_box rx-bc">
-				<view class="name">内包装</view>
+						</u-list>
+					</view>
+				</view>
 			</view>
 
 
-			<view class="content_table2" v-if='objData.packingReportMarginList.length'>
-				<view class="head row rx-sc">
-					<view class="item ww10">序号</view>
-					<view class="item ww30">数量</view>
-					<view class="item ww50">发货条码</view>
-					<view class="item ww10 selectAll" @click="handTwoCheck">{{ twoCheck ?   '取消' : '全选'}}</view>
-				</view>
 
-				<view class="table">
-					<u-list @scrolltolower="scrolltolower" class="z_list">
-						<view class="tr row rx-sc" v-for="(it, idx) in objData.packingReportMarginList" :key='idx'
-							@click="handleCheckTwo(idx, it)">
-							<view class="item ww10 rx-cc ">{{ it.computeSize }}</view>
-							<view class="item ww30 content_num rx-sc">
-								<view>{{ it.quantity }} / {{it.unit}} </view>
-							</view>
-							<view class="item ww50">
-								{{ it.code }}
-							</view>
-							<view class="item ww10 rx-cc">
-								<image class="check" v-if='it.isChecked' src='@/static/check.png'>
-								</image>
-								<image class="check" v-if=' !it.isChecked' src='@/static/check_no.png'>
-								</image>
-							</view>
+		</view>
+	</view>
+</template>
 
-						</view>
+<script>
+export default {
+	props: {
+		objData: {
+			type: Object,
+			default: () => { }
+		},
 
-					</u-list>
-				</view>
-			</view>
+		measuringUnit: {
+			type: String,
+			default: ''
+		}
 
+	},
+	watch: {
+		objData: {
+			handler(val) {
+				console.log(val, '5555555555555');
+
+				this.specText = val.specText || '';
+
+				let minimumObj = {
+					title: '最小包装',
+					splitList: val.minimumPackage,
+					packageCell: val.minimumPackageCell,
+					packageUnit: val.minimumPackageUnit,
+					conversionUnit: val.minimumConversionUnit,
+					formedNumLast: val.minimumFormedNumLast
+				}
+				let withinObj = {
+					title: '内包装',
+					splitList: val.withinPackage,
+					packageCell: val.withinPackageCell,
+					packageUnit: val.withinPackageUnit,
+					conversionUnit: val.withinConversionUnit,
+					formedNumLast: val.withinFormedNumLast
+				}
+				let outsideObj = {
+					title: '外包装',
+					splitList: val.outsidePackage,
+					packageCell: val.outsidePackageCell,
+					packageUnit: val.outsidePackageUnit,
+					conversionUnit: val.outsideConversionUnit,
+					formedNumLast: val.outsideFormedNumLast
+				}
+				let arr = [minimumObj, withinObj, outsideObj];
 
+				this.list = arr;
 
-		</view>
+				console.log(this.list);
+			},
+			deep: true,
+			immediate: true,
+		},
+	},
+	data() {
+		return {
+			oneCheck: false,
+			twoCheck: false,
+			list: [],
+			clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo").clientEnvironmentId,  // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
 
 
+		}
+	},
 
+	created() {
 
 
+	},
 
+	methods: {
 
 
-	</view>
-</template>
+		handOneCheck() {
 
-<script>
-	export default {
-		props: {
-			objData: {
-				type: Object,
-				default: () => {}
-			},
-			
-			measuringUnit: {
-				type: String,
-				default: ''
+			if (this.oneCheck) {
+				this.oneCheck = false
+				this.objData.packingReportList.forEach(e => {
+					e.isChecked = false
+				})
+			} else {
+				this.oneCheck = true
+				this.objData.packingReportList.forEach(e => {
+					e.isChecked = true
+				})
 			}
+			this.$forceUpdate()
+		},
 
+		handleCheck(idx, it) {
+			this.$set(this.objData.packingReportList[idx], 'isChecked', !it.isChecked)
+			this.$forceUpdate()
 		},
-		data() {
-			return {
-				oneCheck: false,
-				twoCheck: false,
-
-				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo").clientEnvironmentId,  // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
-				
-				
+
+
+		handTwoCheck() {
+			if (this.twoCheck) {
+				this.twoCheck = false
+				this.objData.packingReportMarginList.forEach(e => {
+					e.isChecked = false
+				})
+			} else {
+				this.twoCheck = true
+				this.objData.packingReportMarginList.forEach(e => {
+					e.isChecked = true
+				})
 			}
+			this.$forceUpdate()
 		},
+		handleCheckTwo(idx, it) {
+			this.$set(this.objData.packingReportMarginList[idx], 'isChecked', !it.isChecked)
+			this.$forceUpdate()
+		},
+
 
-		created() {
 
 
+
+		scrolltolower() {
+
 		},
 
-		methods: {
 
+	},
+}
+</script>
 
-			handOneCheck() {
+<style lang="scss" scoped>
+.title_box {
+	margin-top: 20rpx;
+
+	.name {
+		font-size: 28rpx;
+		font-style: normal;
+		font-weight: 400;
+		color: $theme-color;
+		padding-left: 20rpx;
+
+		position: relative;
+
+		&:before {
+			position: absolute;
+			content: '';
+			left: 0rpx;
+			top: 0rpx;
+			bottom: 0rpx;
+			width: 4rpx;
+			height: 28rpx;
+			background: $theme-color;
+			margin: auto;
+		}
+	}
+}
 
-				if (this.oneCheck) {
-					this.oneCheck = false
-					this.objData.packingReportList.forEach(e => {
-						e.isChecked = false
-					})
-				} else {
-					this.oneCheck = true
-					this.objData.packingReportList.forEach(e => {
-						e.isChecked = true
-					})
-				}
-				this.$forceUpdate()
-			},
+.content_table {
+		width: 100%;
+		border: 2rpx solid $border-color;
 
-			handleCheck(idx, it) {
-				this.$set(this.objData.packingReportList[idx], 'isChecked', !it.isChecked)
-				this.$forceUpdate()
-			},
+		.item {
+			display: flex;
+			border-bottom: 2rpx solid $border-color;
 
 
-			handTwoCheck() {
-				if (this.twoCheck) {
-					this.twoCheck = false
-					this.objData.packingReportMarginList.forEach(e => {
-						e.isChecked = false
-					})
-				} else {
-					this.twoCheck = true
-					this.objData.packingReportMarginList.forEach(e => {
-						e.isChecked = true
-					})
-				}
-				this.$forceUpdate()
-			},
-			handleCheckTwo(idx, it) {
-				this.$set(this.objData.packingReportMarginList[idx], 'isChecked', !it.isChecked)
-				this.$forceUpdate()
-			},
+			.lable {
+				width: 132rpx;
+				text-align: center;
+				background-color: #F7F9FA;
+				font-size: 26rpx;
+				border-right: 2rpx solid $border-color;
+				flex-shrink: 0;
+			}
+
+			.lable220 {
+				width: 220rpx !important;
+				font-size: 24rpx;
+			}
 
+			.lable150 {
+				width: 156rpx !important;
+				font-size: 24rpx;
+			}
 
+			.ww80 {
+				width: 80rpx;
+			}
 
+			.content {
+				width: 518rpx;
+				min-height: 64rpx;
+				font-size: 28rpx;
+				line-height: 28rpx;
+				font-style: normal;
+				font-weight: 400;
+				// padding: 18rpx 8rpx;
+				box-sizing: border-box;
+				word-wrap: break-word;
+				flex-grow: 1 !important;
 
 
-			scrolltolower() {
+				.unit {
+					padding: 0 4rpx;
+					font-size: 24rpx;
+					color: #404446;
+				}
 
-			},
 
 
-		},
-	}
-</script>
+			}
 
-<style lang="scss" scoped>
-	.title_box {
-		margin-top: 20rpx;
 
-		.name {
-			font-size: 28rpx;
-			font-style: normal;
-			font-weight: 400;
-			color: $theme-color;
-			padding-left: 20rpx;
-
-			position: relative;
-
-			&:before {
-				position: absolute;
-				content: '';
-				left: 0rpx;
-				top: 0rpx;
-				bottom: 0rpx;
-				width: 4rpx;
-				height: 28rpx;
-				background: $theme-color;
-				margin: auto;
+
+			&:last-child {
+				border-bottom: none;
 			}
 		}
-	}
 
 
-	.material {
-		margin-top: 10rpx;
+
+		.ww55 {
+			width: 55%;
+		}
+
+		.ww45 {
+			width: 45%;
+		}
 
 
 	}
+.material {
+	margin-top: 10rpx;
 
 
+}
 
+.label {
+	display: flex;
+	height: 70rpx;
+	width: 86px !important;
+	font-size: 13px;
+	align-items: center;
+	justify-content: center;
+	background-color: #F7F9FA;
+}
 
-	.content_table2 {
-		width: 100%;
-		margin-top: 16rpx;
 
-		.row {
-			width: 100%;
+.content_table2 {
+	width: 100%;
+	margin-top: 16rpx;
 
+	.row {
+		width: 100%;
 
-			.item {
 
-				color: #404446;
-				font-size: 28rpx;
-				padding-left: 12rpx;
+		.item {
 
-			}
+			color: #404446;
+			font-size: 28rpx;
+			padding-left: 12rpx;
 
-			.color157 {
-				color: $theme-color;
-			}
+		}
 
-			.ww30 {
-				width: 30%;
-			}
+		.color157 {
+			color: $theme-color;
+		}
 
-			.ww50 {
-				width: 50%;
+		.ww30 {
+			width: 30%;
+		}
 
-			}
+		.ww50 {
+			width: 50%;
 
-			.ww90 {
-				width: 90%;
-			}
+		}
 
-			.ww15 {
-				width: 15%;
-			}
+		.ww90 {
+			width: 90%;
+		}
 
-			.ww10 {
-				width: 10%;
-			}
+		.ww15 {
+			width: 15%;
+		}
 
-			.ww30 {
-				width: 30%;
-			}
+		.ww10 {
+			width: 10%;
+		}
 
+		.ww30 {
+			width: 30%;
 		}
 
-		.head {
-			height: 64rpx;
-			background: #F7F9FA;
-			border-top: 2rpx solid #E3E5E5;
-			border-left: 2rpx solid #E3E5E5;
-
-			.item {
-				height: 64rpx;
-				line-height: 64rpx;
-				border-right: 2rpx solid #E3E5E5;
-				box-sizing: border-box;
-			}
+	}
 
-			.selectAll {
-				color: $theme-color;
-				font-size: 24rpx;
-			}
+	.head {
+		height: 64rpx;
+		background: #F7F9FA;
+		border-top: 2rpx solid #E3E5E5;
+		border-left: 2rpx solid #E3E5E5;
+
+		.item {
+			height: 64rpx;
+			line-height: 64rpx;
+			border-right: 2rpx solid #E3E5E5;
+			box-sizing: border-box;
 		}
+	}
 
 
 
-		.tr {
-			border-top: 2rpx solid #E3E5E5;
-			border-left: 2rpx solid #E3E5E5;
+	.tr {
+		border-top: 2rpx solid #E3E5E5;
+		border-left: 2rpx solid #E3E5E5;
 
 
-			.item {
-				font-size: 24rpx;
-				min-height: 64rpx;
-				display: flex;
-				align-items: center;
-				border-right: 2rpx solid #E3E5E5;
-				box-sizing: border-box;
-				white-space: normal;
-				word-break: break-all;
+		.item {
+			font-size: 24rpx;
+			min-height: 64rpx;
+			display: flex;
+			align-items: center;
+			border-right: 2rpx solid #E3E5E5;
+			box-sizing: border-box;
+			white-space: normal;
+			word-break: break-all;
 
-			}
+		}
 
-			&:last-child {
-				border-bottom: 2rpx solid #E3E5E5;
+		&:last-child {
+			border-bottom: 2rpx solid #E3E5E5;
 
-			}
 		}
 	}
+}
 
 
 
 
-	.content_num {
-		display: flex;
-		align-items: center;
-		padding: 0 4rpx;
+.content_num {
+	display: flex;
+	align-items: center;
+	padding: 0 4rpx;
 
-		/deep/ .uni-input-input {
-			border: 2rpx solid #F0F8F2;
-			background: #F0F8F2;
-			color: $theme-color;
-		}
+	/deep/ .uni-input-input {
+		border: 2rpx solid #F0F8F2;
+		background: #F0F8F2;
+		color: $theme-color;
+	}
 
 
-	}
+}
 
-	.penalize {
-		width: 86rpx;
-		line-height: 60rpx;
-		background: $theme-color;
-		font-size: 24rpx;
-		text-align: center;
-		color: #fff;
-	}
+.penalize {
+	width: 86rpx;
+	line-height: 60rpx;
+	background: $theme-color;
+	font-size: 24rpx;
+	text-align: center;
+	color: #fff;
+}
 
-	.check {
-		width: 30rpx;
-		height: 30rpx;
-	}
+.check {
+	width: 30rpx;
+	height: 30rpx;
+}
 
-	.z_list {
-		max-height: 300rpx;
-	}
+.z_list {
+	max-height: 500rpx;
+}
 </style>

+ 46 - 12
pages/pda/warehousing/index.vue

@@ -18,8 +18,14 @@
 							dataValue='id' dataKey="name" filterable format='{name}'></zxz-uni-data-select>
 					</view>
 
+					<view class="select_box" v-if="clientEnvironmentId !== 3">
+						<zxz-uni-data-select :localdata="WarehouseSpecTypeList" placeholder="请选择入库规格" v-model="inWarehouseSpecType"
+							dataValue='value' dataKey="text" filterable format='{text}' disabled></zxz-uni-data-select>
+					</view>
+
+
 					<view class="list_box" v-for="(item, index) in List" :key="index" v-if="clientEnvironmentId != 3">
-						<view class="time">打包时间: {{ item.createTime }}</view>
+						<view class="time" style="margin-bottom: 10rpx;">打包时间: {{ item.createTime }}</view>
 						<packingBom :objData="item.extInfo" :measuringUnit='item.measuringUnit'></packingBom>
 					</view>
 
@@ -76,7 +82,11 @@ export default {
 			id: null,
 			taskId: null,
 
-			objData: {},
+			objData: {
+				workReportInfo:{
+					formedNum:''
+				}
+			},
 			warehouseList: [],
 			warehouseId: null,
 			delta: -1,
@@ -84,7 +94,25 @@ export default {
 			List: [],
 
 			tgList: [],
-
+			inWarehouseSpecType:'2',
+
+			WarehouseSpecTypeList:[
+				{
+					text:'按计量入库',
+					value:'1'
+				},{
+					text:'最小包装入库',
+					value:'2'
+				},
+				{
+					text:'内包装入库',
+					value:'3'
+				},
+				{
+					text:'外包装入库',
+					value:'4'
+				}
+			],
 
 			clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
 				.clientEnvironmentId, // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
@@ -131,15 +159,17 @@ export default {
 					unit: res.unit,
 					warehouseId: null, // 处置 仓库id
 				}]
+				
+
 				this.objData.workReportInfo = {
 					formingNum: null,
 					formingWeight: null,
-					formedNum: this.objData.product[0] && this.objData.product[0].feedQuantity,
+					formedNum: this.objData.product[0] && this.objData.product[0].feedQuantity||'',
 					formedWeight: null,
 					taskId: this.taskId
 
 				}
-
+				console.log(this.objData.workReportInfo.formedNum );
 			})
 		},
 
@@ -209,34 +239,38 @@ export default {
 			
 
 			let storageInfo = {
+				inWarehouseSpecType: this.clientEnvironmentId == 3||this.clientEnvironmentId == 2 ?Number(this.inWarehouseSpecType):'',
 				warehouseId: this.warehouseId,
 				inWarehouseType: this.inWarehouseType,
-			toWarehouseList: this.clientEnvironmentId == 3 ? this.tgList : this.List,
+			    toWarehouseList: this.clientEnvironmentId == 3 ? this.tgList : this.List,
 			}
+
+
 			if (this.clientEnvironmentId==2) {
+				let num = '';
+				if(this.objData.workReportInfo&&this.objData.workReportInfo?.formedNum){
+					num = this.objData.workReportInfo.formedNum;
+				}
+
 				storageInfo.packingReportList= [{
 					code: this.objData.productCode,
 					categoryId: categoryId,
 					workOrderId: this.objData.workOrderId,
 					rootCategoryLevelId: rootCategoryLevelId,
-					totalQuantity: this.objData.workReportInfo.formedNum,
-					quantity: this.objData.workReportInfo.formedNum,
+					totalQuantity: num,
+					quantity: num,
 					unit: this.objData.unit,
 					packingNum: 1,
 					taskId: -1
 				}]
 			}
 
-
 			this.objData['storageInfo'] = storageInfo
 	
 			jobSave(this.objData).then(res => {
 				uni.navigateBack();
 
 			})
-			// }
-
-
 
 		},
 

+ 0 - 1
pages/pda/workOrder/extrusionMolding/index.vue

@@ -416,7 +416,6 @@
 					// 	})
 					// }
 				
-					
 					url = '/pages/pda/jobBooking/index/index'
 					url += `?id=${this.info.id}&taskId=${taskId }&taskName=${taskName}&taskType=${this.currentType}&isOutsource=${item.isOutsource||0}&categoryId=${this.info.categoryId}`
 					uni.navigateTo({

+ 172 - 163
pages/pda/workOrder/index/details.vue

@@ -6,26 +6,27 @@
 
 		<view class="list_box">
 			<u-list @scrolltolower="scrolltolower" v-if='taskType != 5'>
-				<view class="card_box" v-for="(objData,index) in list" :key='index'>
+				<view class="card_box" v-for="(objData, index) in list" :key='index'>
 
 					<view class="rx-bc title_card">
-						<view>{{index + 1}}</view>
-						<view>报工时间: {{objData.createTime}}</view>
+						<view>{{ index + 1 }}</view>
+						<view>报工时间: {{ objData.createTime }}</view>
 					</view>
 					<workOrderBom :item='objData' v-if='objData' :isDetails='true'></workOrderBom>
-					
+
 					<!-- // 报工信息 -->
 					<jobBom :item='objData' v-if="objData.notFormedList" :palletList='objData.palletList'
 						:notFormed='objData.notFormedList' :isDetails='true'></jobBom>
-						
 
 					<deviceBom v-if='objData.equipmentList.length != 0' :list='objData.equipmentList'></deviceBom>
 
 					<modelBom v-if='objData.modelList.length != 0' :list='objData.modelList'>
 					</modelBom>
 
-				    <inspectionBom :semiProductList='objData.semiProductList'  :isDetails='true' v-if='Object.prototype.hasOwnProperty.call(objData, "semiProductList") && objData.semiProductList.length  && taskType == 3'></inspectionBom> 
-					
+					<inspectionBom :semiProductList='objData.semiProductList' :isDetails='true'
+						v-if='Object.prototype.hasOwnProperty.call(objData, "semiProductList") && objData.semiProductList.length && taskType == 3'>
+					</inspectionBom>
+
 					<sampleBom :item='objData.quality' v-if='objData.quality && taskType == 2'
 						:workReportInfo='objData.workReportInfo' :isDetails='true'></sampleBom>
 
@@ -33,31 +34,32 @@
 					<palletBom v-if="objData.palletList.length != 0" :palletList='objData.palletList' :isDetails='true'>
 					</palletBom>
 
-					<revolvingDiskBom v-if="objData.revolvingDiskList.length > 0"  pattern='job'
+					<revolvingDiskBom v-if="objData.revolvingDiskList.length > 0" pattern='job'
 						:revolvingDiskList="objData.revolvingDiskList"></revolvingDiskBom>
 
-					<oneJobBom v-if='objData.instanceList &&  objData.instanceList.length != 0  &&  taskType != 6'
+					<oneJobBom v-if='objData.instanceList && objData.instanceList.length != 0 && taskType != 6'
 						:list='objData.instanceList' :item='objData' :isDetails='true'> </oneJobBom>
 
 					<semiProductJobBom
-						v-if='objData.semiProductList &&  objData.semiProductList.length != 0  &&  taskType != 6  && objData.singleReport == 1' 
+						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType != 6 && objData.singleReport == 1'
 						:list='objData.semiProductList' :item='objData' :isDetails='true'> </semiProductJobBom>
-						
+
 					<semiProductJobBomPL
-							v-if='objData.semiProductList &&  objData.semiProductList.length != 0  &&  taskType != 6  &&  taskType != 3  && objData.singleReport == 0'
-							:list='objData.semiProductList' :item='objData' :isDetails='true'> </semiProductJobBomPL>
+						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType != 6 && taskType != 3 && objData.singleReport == 0'
+						:list='objData.semiProductList' :item='objData' :isDetails='true'> </semiProductJobBomPL>
 
 
 
-					<oneJobQualityBom v-if='objData.semiProductList &&  objData.semiProductList.length != 0  &&  taskType == 6 && clientEnvironmentId == 3 && objData.singleReport == 1'
+					<oneJobQualityBom
+						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType == 6 && clientEnvironmentId == 3 && objData.singleReport == 1'
 						:list='objData.semiProductList' :item='objData' :isDetails='true'></oneJobQualityBom>
-						
 
-					<oneJobQualityBomPL v-if='taskType == 6  && clientEnvironmentId == 3 && objData.singleReport == 0'
-							:list='objData.semiProductList' :item='objData' :isDetails='true'></oneJobQualityBomPL>
 
+					<oneJobQualityBomPL v-if='taskType == 6 && clientEnvironmentId == 3 && objData.singleReport == 0'
+						:list='objData.semiProductList' :item='objData' :isDetails='true'></oneJobQualityBomPL>
 
-					<byProductBom v-if='objData.productRecycleList.length != 0 ' :list='objData.productRecycleList'
+
+					<byProductBom v-if='objData.productRecycleList.length != 0' :list='objData.productRecycleList'
 						:isDetails='true'>
 					</byProductBom>
 
@@ -65,16 +67,23 @@
 						pattern='job' :isDetails='true'>
 					</turnoverBom>
 
-
 					<aridRegion v-if='objData.aridRegionList.length != 0' :list='objData.aridRegionList'
 						:remainingTime='0' :isType='true'></aridRegion>
 
 					<packingTgBom
-						v-if='objData.packInfo && objData.packInfo.pickOutInList &&   objData.packInfo.pickOutInList != 0 && taskType == 4 && clientEnvironmentId == 3 '
-						:list='objData.packInfo.pickOutInList' :isWarehousing='true' :isDetails="true" :item='objData' ></packingTgBom>
+						v-if='objData.packInfo && objData.packInfo.pickOutInList && objData.packInfo.pickOutInList != 0 && taskType == 4 && clientEnvironmentId == 3'
+						:list='objData.packInfo.pickOutInList' :isWarehousing='true' :isDetails="true" :item='objData'>
+					</packingTgBom>
+
+					<!-- //包装扫码 -->
+					<view v-if="clientEnvironmentId != 2">
+						<!-- <packingBom :taskId='taskId' :workOrderId='id' :objData='objData' ref="packRef"
+							v-if='taskType == 4 && clientEnvironmentId != 3 && objData' :categoryId="categoryId">
+						</packingBom> -->
+						<packingBom v-if='taskType == 4 && clientEnvironmentId != 3 && objData' :packInfo="objData.packInfo">
+						</packingBom>
+					</view>
 
-					<packingBom v-if="objData.packInfo && clientEnvironmentId == 2" :packInfo="objData.packInfo">
-					</packingBom>
 
 
 
@@ -85,11 +94,11 @@
 
 
 			<u-list @scrolltolower="scrolltolower" v-if='taskType == 5'>
-				<view class="card_box" v-for="(objData,index) in list" :key='index'>
+				<view class="card_box" v-for="(objData, index) in list" :key='index'>
 
 					<view class="rx-bc title_card">
-						<view>{{index + 1}}</view>
-						<view>报工时间: {{objData.createTime}}</view>
+						<view>{{ index + 1 }}</view>
+						<view>报工时间: {{ objData.createTime }}</view>
 					</view>
 
 
@@ -115,165 +124,165 @@
 </template>
 
 <script>
-	import {
-		listWorkReport,
-		listApplystorage,
-	} from '@/api/pda/workOrder.js'
-	import workOrderBom from '../../feeding/components/workOrderBom.vue'
-	import deviceBom from '../../feeding/components/deviceBom.vue'
-	import modelBom from '../../feeding/components/modelBom.vue'
-	import jobBom from '../../jobBooking/components/jobBom.vue'
-	import oneJobBom from '../../jobBooking/components/oneJobBom.vue'
-	import semiProductJobBom from '../../jobBooking/components/semiProductJobBom.vue'
-	import semiProductJobBomPL from '../../jobBooking/components/semiProductJobBomPL.vue'
-	import oneJobQualityBom from '../../jobBooking/components/oneJobQualityBom.vue'
-	import oneJobQualityBomPL from '../../jobBooking/components/oneJobQualityBomPL.vue'
-
-	import byProductBom from '../../jobBooking/components/byProductBom'
-	import turnoverBom from '../../jobBooking/components/turnoverBom.vue'
-	import aridRegion from '../../feeding/components/aridRegion.vue'
-	import paramBom from '../../feeding/components/paramBom.vue'
-
-	import inspectionBom from '../../sample/components/inspectionBom.vue'
-	import sampleBom from '../../sample/components/sampleBom.vue'
-	import palletBom from '../../feeding/components/palletBom.vue'
-	
-	import revolvingDiskBom from '../../feeding/components/revolvingDiskBom.vue'
-	import packingTgBom from '../../jobBooking/components/packingTgBom.vue'
-	import packingBom from '../../jobBooking/components/packingBomDetails.vue'
-
-
-
-	// 
-
-	import detailsBom from '../../warehousing/components/detailsBom.vue'
-	import workOrderBom2 from '../../warehousing/components/workOrderBom.vue'
-
-	export default {
-		components: {
-			workOrderBom,
-			deviceBom,
-			modelBom,
-			jobBom,
-			oneJobBom,
-			semiProductJobBom,
-			semiProductJobBomPL,
-			oneJobQualityBom,
-			oneJobQualityBomPL,
-			
-			byProductBom,
-			turnoverBom,
-			aridRegion,
-			paramBom,
-
-			inspectionBom,
-			sampleBom,
-			palletBom,
-			revolvingDiskBom,
-			packingTgBom,
-			packingBom,
-
-
-			detailsBom,
-			workOrderBom2
-		},
-		data() {
-			return {
-				workOrderId: null,
-				taskId: null,
-				list: [],
-				taskType: 1,
-
-				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
-					.clientEnvironmentId, // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
+import {
+	listWorkReport,
+	listApplystorage,
+} from '@/api/pda/workOrder.js'
+import workOrderBom from '../../feeding/components/workOrderBom.vue'
+import deviceBom from '../../feeding/components/deviceBom.vue'
+import modelBom from '../../feeding/components/modelBom.vue'
+import jobBom from '../../jobBooking/components/jobBom.vue'
+import oneJobBom from '../../jobBooking/components/oneJobBom.vue'
+import semiProductJobBom from '../../jobBooking/components/semiProductJobBom.vue'
+import semiProductJobBomPL from '../../jobBooking/components/semiProductJobBomPL.vue'
+import oneJobQualityBom from '../../jobBooking/components/oneJobQualityBom.vue'
+import oneJobQualityBomPL from '../../jobBooking/components/oneJobQualityBomPL.vue'
+
+import byProductBom from '../../jobBooking/components/byProductBom'
+import turnoverBom from '../../jobBooking/components/turnoverBom.vue'
+import aridRegion from '../../feeding/components/aridRegion.vue'
+import paramBom from '../../feeding/components/paramBom.vue'
+
+import inspectionBom from '../../sample/components/inspectionBom.vue'
+import sampleBom from '../../sample/components/sampleBom.vue'
+import palletBom from '../../feeding/components/palletBom.vue'
+
+import revolvingDiskBom from '../../feeding/components/revolvingDiskBom.vue'
+import packingTgBom from '../../jobBooking/components/packingTgBom.vue'
+import packingBom from '../../jobBooking/components/packingBomDetails.vue'
+
+
+
+// 
+
+import detailsBom from '../../warehousing/components/detailsBom.vue'
+import workOrderBom2 from '../../warehousing/components/workOrderBom.vue'
+
+export default {
+	components: {
+		workOrderBom,
+		deviceBom,
+		modelBom,
+		jobBom,
+		oneJobBom,
+		semiProductJobBom,
+		semiProductJobBomPL,
+		oneJobQualityBom,
+		oneJobQualityBomPL,
+
+		byProductBom,
+		turnoverBom,
+		aridRegion,
+		paramBom,
+
+		inspectionBom,
+		sampleBom,
+		palletBom,
+		revolvingDiskBom,
+		packingTgBom,
+		packingBom,
+
+
+		detailsBom,
+		workOrderBom2
+	},
+	data() {
+		return {
+			workOrderId: null,
+			taskId: null,
+			list: [],
+			taskType: 1,
+
+			clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
+				.clientEnvironmentId, // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
+		}
+	},
+	onLoad(options) {
+		this.title = options.taskName ? options.taskName + '-报工详情' : '报工详情'
+		this.workOrderId = options.id
+		this.taskId = options.taskId
+		this.taskType = options.taskType
+		this.getList()
+	},
+
+	methods: {
+		getList() {
+			let param = {
+				workOrderId: this.workOrderId,
+				taskId: this.taskId
 			}
-		},
-		onLoad(options) {
-			this.title = options.taskName ? options.taskName + '-报工详情' : '报工详情'
-			this.workOrderId = options.id
-			this.taskId = options.taskId
-			this.taskType = options.taskType
-			this.getList()
-		},
-
-		methods: {
-			getList() {
-				let param = {
-					workOrderId: this.workOrderId,
-					taskId: this.taskId
-				}
-				let URL = this.taskType == 5 ? listApplystorage : listWorkReport
-				URL(param).then(res => {
-					this.list = res
+			let URL = this.taskType == 5 ? listApplystorage : listWorkReport
+			URL(param).then(res => {
+				this.list = res
 
 
-				})
-			},
+			})
+		},
 
-			scrolltolower() {}
-		}
+		scrolltolower() { }
 	}
+}
 </script>
 
 <style lang="scss" scoped>
-	.content-box {
-		height: 100vh;
-		overflow: hidden;
-		display: flex;
-		flex-direction: column;
+.content-box {
+	height: 100vh;
+	overflow: hidden;
+	display: flex;
+	flex-direction: column;
 
-	}
+}
 
-	.list_box {
-		flex: 1;
-		overflow: hidden;
-		padding: 4rpx 0;
+.list_box {
+	flex: 1;
+	overflow: hidden;
+	padding: 4rpx 0;
 
-		.u-list {
-			height: 100% !important;
-		}
+	.u-list {
+		height: 100% !important;
+	}
 
-		.card_box {
-			padding: 16rpx;
-		}
+	.card_box {
+		padding: 16rpx;
+	}
 
 
 
-	}
+}
 
-	.bottom-wrapper {
-		.btn_box {
-			width: 750rpx;
-			height: 88rpx;
-			line-height: 88rpx;
-			background: $theme-color;
-			text-align: center;
-			font-size: 36rpx;
-			font-style: normal;
-			font-weight: 400;
-			color: #fff;
-		}
+.bottom-wrapper {
+	.btn_box {
+		width: 750rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		background: $theme-color;
+		text-align: center;
+		font-size: 36rpx;
+		font-style: normal;
+		font-weight: 400;
+		color: #fff;
 	}
+}
 
 
-	.operate_box {
-		padding: 10rpx 160rpx;
+.operate_box {
+	padding: 10rpx 160rpx;
 
-		/deep/ .u-button {
-			width: 160rpx;
-		}
+	/deep/ .u-button {
+		width: 160rpx;
 	}
+}
 
 
 
-	.title_card {
-		height: 70rpx;
-		width: 100%;
-		background: #157A2C;
-		font-size: 30rpx;
-		color: #fff;
-		line-height: 70rpx;
-		padding: 0 22rpx;
-		box-sizing: border-box;
-	}
+.title_card {
+	height: 70rpx;
+	width: 100%;
+	background: #157A2C;
+	font-size: 30rpx;
+	color: #fff;
+	line-height: 70rpx;
+	padding: 0 22rpx;
+	box-sizing: border-box;
+}
 </style>