ysy 2 年 前
コミット
d933c3af6d

+ 30 - 3
pages/pda/components/bottomOperate.vue

@@ -13,8 +13,13 @@
 				<view class="name">{{item.name}}</view>
 				<image class="arrow_right" src="~@/static/pda/arrow_right.svg"></image>
 			</view>
-
-
+			
+		
+			<view  v-if='btnControlReportMethod == 2' class="list rx-bc">
+				<view class="round">{{btnList[btnState].length + 1}}</view>
+				<view class="name" @click="operate('skip', {})" skip>跳过(不报工)</view>
+				<image class="arrow_right" src="~@/static/pda/arrow_right.svg"></image>
+			</view>
 
 
 		</view>
@@ -103,7 +108,9 @@
 
 		props: {
 			state: String | Number,
-			taskObj: Object
+			taskObj: Object,
+			
+			controlReportMethod: String | Number,
 
 		},
 
@@ -124,6 +131,15 @@
 					this.btnState = newVal
 				}
 			},
+			
+			controlReportMethod: {
+				immediate: true,
+				deep: true,
+				handler(newVal) {
+					console.log(newVal)
+					this.btnControlReportMethod = newVal
+				}
+			},
 
 			taskObj: {
 				immediate: true,
@@ -140,6 +156,7 @@
 
 				btnsList: [],
 				btnState: 1,
+				btnControlReportMethod: null,
 				btnList: {
 					1: [{
 							name: '领料',
@@ -198,6 +215,16 @@
 
 					],
 
+					6: [{
+							name: '报工',
+							type: 'jobBooking'
+						},
+						
+
+
+					],
+
+
 				},
 
 				newTaskObj: {},

+ 6 - 3
pages/pda/feeding/bill/index.vue

@@ -21,14 +21,13 @@
 						<modelBom v-if='it.modelList.length != 0' :list='it.modelList'>
 						</modelBom>
 
-						<instanceBom v-if='it.instanceList.length != 0' :list='it.instanceList'></instanceBom>
+						<instanceBom v-if='it.instanceList.length != 0' :list='it.instanceList' :currentTaskDiagram='currentTaskDiagram' ></instanceBom>
 
-						<packingBom v-if='it.packingList.length != 0' :list='it.packingList'>></packingBom>
+						<packingBom v-if='it.packingList.length != 0' :list='it.packingList'></packingBom>
 						
 						<palletBom v-if="Object.prototype.hasOwnProperty.call(it, 'palletList')" :palletList='it.palletList'></palletBom>
 						
 						<revolvingDiskBom v-if="Object.prototype.hasOwnProperty.call(it, 'revolvingDiskList')"  :revolvingDiskList="it.revolvingDiskList"></revolvingDiskBom>
-						
 
 					</view>
 
@@ -68,6 +67,10 @@
 			return {
 				ids: [],
 				dataList: [],
+				
+				currentTaskDiagram: {
+					isFirstTask: 0
+				}
 			}
 		},
 

+ 1 - 1
pages/pda/jobBooking/components/oneJobBom.vue

@@ -92,7 +92,7 @@
 			<view class="content_table2">
 				<view class="head row rx-sc">
 					<view class="item ww25">{{isFirstTask == 1 ? '物料重量' : '工序重量'}} {{it.extInfo.weightUnit}}</view>
-					<view class="item ww25">报工重量kg</view>
+					<view class="item ww25">报工重量{{it.extInfo.weightUnit}}</view>
 					<view class="item ww25" v-if="isFirstTask == 1">质检结果
 					</view>
 					<view class="item ww25" :class="[  isFirstTask == 1 ? 'ww25' : 'ww50' ]">处置

+ 865 - 0
pages/pda/jobBooking/components/oneJobQualityBom.vue

@@ -0,0 +1,865 @@
+<template>
+	<view>
+		<view class="title_box rx-bc">
+			<view class="name">报工信息: ({{list.length || 0}})个</view>
+		</view>
+
+
+		<view class="material " v-for="(it, idx) in list" :key="idx">
+
+
+			<view class="content_table">
+
+				<view class="item rx-sc">
+					<view class="rx">
+						<view class="lable lable190 rx-cc ">
+
+							<view class="round">{{idx + 1}}</view>物料编码
+						</view>
+						<view class="content rx-sc">
+							<view>{{it.code}}</view>
+						</view>
+					</view>
+				</view>
+
+				<view class="item rx-sc">
+					<view class="rx">
+						<view class="lable lable150 rx-cc ">名称</view>
+						<view class="content rx-sc">
+							<view>{{it.name}}</view>
+						</view>
+					</view>
+				</view>
+
+				<view class="item rx-sc">
+					<view class="rx">
+						<view class="lable lable150 rx-cc ">型号</view>
+						<view class="content rx-sc">
+							<view>{{it.modelType}}</view>
+						</view>
+					</view>
+				</view>
+
+
+
+				<view class="item rx-sc">
+					<view class="rx ww50 ">
+						<view class="lable lable150 rx-cc ">物料代号</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{it.extInfo.materielCode }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.materielCode"></input>
+
+						</view>
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">客户代号</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{it.extInfo.clientCode }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.clientCode"></input>
+						</view>
+					</view>
+
+				</view>
+
+
+				<view class="item rx-sc">
+					<view class="rx ww50 ">
+						<view class="lable lable150 rx-cc ">刻码</view>
+						<view class="content content_num ">
+							<view v-if='isDetails'>{{it.extInfo.engrave }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.engrave"></input>
+
+						</view>
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">位置</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{it.extInfo.position }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.position"></input>
+						</view>
+					</view>
+
+				</view>
+				
+				
+				<view class="item rx-sc">
+					<view class="rx ww50 ">
+						<view class="lable lable150 rx-cc ">外观</view>
+						<view class="content content_num ">
+							<view v-if='isDetails'>{{ it.extInfo.appearance == 1 ? '合格' : it.extInfo.appearance == 2 ?  '不合格' : '' }}</view>
+							<zxz-uni-data-select v-else :localdata="qualityList" v-model="it.extInfo.appearance" dataValue='value'
+								format='{name}' dataKey="value" filterable  
+								:clear='false'></zxz-uni-data-select>
+				
+						</view>
+					</view>
+				
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">尺寸</view>
+						<view class="content content_num">
+							<view v-if='isDetails'>{{ it.extInfo.dimension == 1 ? '合格' : it.extInfo.dimension == 2 ?  '不合格' : '' }}</view>
+							<zxz-uni-data-select v-else :localdata="qualityList" v-model="it.extInfo.dimension" dataValue='value'
+								format='{name}' dataKey="value" filterable  
+								:clear='false'></zxz-uni-data-select>
+						</view>
+					</view>
+				
+				</view>
+				
+
+
+
+			</view>
+
+
+
+			<view class="content_table2">
+				<view class="head row rx-sc">
+					<view class="item ww25">物料重量 {{it.extInfo.weightUnit}}</view>
+					<view class="item ww25">报工重量{{it.extInfo.weightUnit}}</view>
+					<view class="item ww25" v-if="isFirstTask == 1">质检结果
+					</view>
+					<view class="item ww25" :class="[  isFirstTask == 1 ? 'ww25' : 'ww50' ]">处置
+					</view>
+
+				</view>
+
+				<view class="table">
+
+					<view class="tr row rx-sc">
+						<view class="item ww25">{{it.extInfo.weight    }}
+						</view>
+						<view class="item ww25 content_num">
+							<view v-if='isDetails'>{{it.extInfo.newWeight }}</view>
+							<input class="uni-input" v-else v-model="it.extInfo.newWeight"></input>
+						</view>
+						<view class="item ww25" @click="openNumerate(it, idx)" v-if="isFirstTask == 1">
+							<view class="numerate">点击计算</view>
+						</view>
+
+
+
+
+						<view class="item" v-if='isDetails' :class="[ isFirstTask == 1 ? 'ww25' : 'ww50' ]">
+							{{it.extInfo.taskName}}
+						</view>
+
+						<view class="item " v-else :class="[ isFirstTask == 1 ? 'ww25' : 'ww50' ]">
+							<zxz-uni-data-select :localdata="stepsList" v-model="it.extInfo.taskId" dataValue='taskId'
+								format='{taskTypeName}' dataKey="taskId" filterable   @change=" e => it.extInfo.taskName = e.taskTypeName" 
+								:clear='false'></zxz-uni-data-select>
+
+						</view>
+
+
+					</view>
+
+				</view>
+
+			</view>
+
+
+
+		</view>
+
+
+
+		<u-popup :show="show" mode='center' v-if='show' :closeOnClickOverlay='false'>
+			<view class="popup_box">
+
+				<view class="title_box rx-bc">
+					<view class="name">工序计算列表</view>
+					<view class="btn_box rx-ec">
+						<view class="btn" @click="handAddParam">新增</view>
+
+
+					</view>
+
+				</view>
+
+				<view class="content_table2">
+					<view class="head row rx-sc">
+						<view class="item ww30">工序名称</view>
+						<view class="item ww20">坯体密度</view>
+						<view class="item ww20">密度系数</view>
+						<view class="item ww20">重量</view>
+
+
+
+
+						<view class="item ww10">操作</view>
+
+					</view>
+
+					<view class="table">
+
+						<view class="tr row rx-sc" v-for="(it, idx) in paramList" :key='idx'>
+							<view class="item  rx-bc ww30">
+								<zxz-uni-data-select :localdata="stepsList" v-model="it.taskId" dataValue='taskId'
+									format='{taskTypeName}' dataKey="taskId" filterable
+									@change=" e => it.taskName = e.taskTypeName" :clear='false'></zxz-uni-data-select>
+							</view>
+
+
+							<view class="item ww20 content_num">
+								<input class="uni-input" v-model="it.billet" type="digit"
+									@input="changeInp(it, idx)"></input>
+							</view>
+
+
+							<view class="item ww20 content_num">
+								<input class="uni-input" v-model="it.density" type="digit"
+									@input="changeInp(it, idx)"></input>
+							</view>
+
+
+
+							<view class="item ww20" v-if=" (idx == 0 || idx != paramList.length - 1)">
+								< {{it.CVIWeight}} </view>
+
+									<view class="item ww20" v-if=" paramList.length > 1 && idx == paramList.length - 1">
+										≥ {{it.CVIWeight }}
+									</view>
+
+							</view>
+
+
+
+
+
+
+						</view>
+
+						<view class="formula_box">计算公式: 物料重量/坯体密度*密度系数 </view>
+
+
+						<view class="rx-cc">
+							<u-button size="small" class="u-reset-button" style="width: 300rpx;margin: 20rpx;"
+								type="success" @click="paramSave">工序列表保存</u-button>
+						</view>
+
+						<view class="reportWeight rx-sc">
+							物料重量: {{weight}} ;
+							报工重量: {{reportWeight}}
+
+						</view>
+
+
+
+					</view>
+
+
+					<view class="operate_box rx-sc">
+						<u-button size="small" class="u-reset-button" @click="cancel">取消</u-button>
+						<u-button size="small" class="u-reset-button" type="success" @click="save">确定</u-button>
+					</view>
+				</view>
+
+
+		</u-popup>
+
+
+
+	</view>
+</template>
+
+<script>
+	import {
+		getTaskInstanceList
+	} from '@/api/pda/workOrder.js'
+
+	import {
+		saveParam,
+		getComputeParam
+	} from '@/api/pda/tangu.js'
+	export default {
+		props: {
+			item: {
+				type: Object,
+				default: () => {}
+			},
+
+			list: {
+				type: Array,
+				default: () => []
+			},
+
+			isDetails: {
+				type: Boolean,
+				default: false
+
+			}
+
+
+
+
+		},
+
+		watch: {
+
+		},
+
+
+		data() {
+			return {
+				taskTypeName: null,
+				isFirstTask: null,
+
+				stepsList: [],
+
+
+
+				show: false,
+
+
+
+				rowIt: [],
+
+				paramList: [],
+				paramObj: {},
+
+
+				weight: 0,
+				reportWeight: 0,
+
+				resultObj: {},
+				resultIdx: 0,
+				
+				qualityList: [
+					{
+						name: '合格',
+						value: 1
+					},
+					{
+						name: '不合格',
+						value: 2
+					}
+				]
+
+
+
+
+
+			}
+		},
+		created() {
+			this.taskTypeName = this.item.currentTaskDiagram.taskTypeName
+			this.isFirstTask = this.item.currentTaskDiagram.isFirstTask
+			this.getSteps()
+			this.getCompute()
+
+		},
+		methods: {
+
+
+
+
+			getSteps() {
+
+				getTaskInstanceList(this.item.workOrderId).then(res => {
+					this.stepsList = res
+				})
+			},
+
+			getCompute() {
+				getComputeParam(this.item.workOrderId, this.item.currentTaskDiagram.taskId).then(res => {
+					this.paramList = []
+					this.paramList = res.paramList
+					this.paramObj = res
+				})
+			},
+
+
+			handAddParam() {
+				// billet: null,
+				// density: null,
+				// result: null,
+
+				// PIPDensity: null,
+				// volume: null,
+				// coefficient: null
+
+				if (this.isFirstTask == 1) {
+					this.paramList.push({
+						taskId: null,
+						taskName: null,
+
+					})
+				}
+
+
+			},
+
+			getDelete(idx) {
+				this.paramList.splice(idx, 1)
+			},
+
+			changeInp(item, index) {
+				if (Number(item.billet) && Number(item.density)) {
+					this.paramList[index].CVIWeight = (Number(this.weight) / item.billet * item.density).toFixed(2)
+
+				}
+
+			},
+
+
+			paramSave() {
+
+
+				if (this.isFirstTask == 1 && this.paramList.length > 0) {
+					let bol
+					let _i
+					bol = this.paramList.every((e, i) => {
+						_i = i + 1
+						return e.taskId && e.billet && e.density
+					})
+
+					if (!bol) {
+						uni.showToast({
+							title: `请完善第${_i}计算数据`,
+							icon: 'none'
+						})
+						return false
+					}
+
+					if (this.paramList.length < 1) {
+						uni.showToast({
+							title: `请输入二个以上计算数据`,
+							icon: 'none'
+						})
+
+						return false
+					}
+
+
+				}
+				let param = {}
+
+				if (!this.paramObj.hasOwnProperty('id')) {
+
+					param = {
+						paramList: this.paramList,
+						workOrderId: this.item.workOrderId,
+						taskId: this.item.currentTaskDiagram.taskId
+					}
+
+				} else {
+
+					this.paramObj.paramList = this.paramList
+					param = this.paramObj
+				}
+
+
+
+
+				saveParam(param).then(res => {
+					uni.showToast({
+						icon: 'none',
+						title: '操作成功'
+					})
+					this.getCompute()
+
+
+
+				})
+
+			},
+
+			openNumerate(row, idx) {
+				if (!row.extInfo.reportWeight) {
+					uni.showToast({
+						icon: 'none',
+						title: '请先输入报工重量'
+					})
+					return false
+				}
+				this.weight = row.extInfo.weight
+				this.reportWeight = row.extInfo.reportWeight
+				this.resultIdx = idx
+
+
+
+				this.show = true
+			},
+
+
+
+			cancel() {
+				this.show = false
+				this.reportWeight = 0
+				this.weight = 0
+			},
+
+			taskChange(e) {
+				console.log(e)
+			},
+
+			save() {
+
+
+				if (this.isFirstTask == 1) {
+
+					this.resultObj = {}
+
+
+					if (Number(this.reportWeight) < this.paramList[0].CVIWeight) {
+						this.resultObj = this.paramList[0]
+						this.setDataSave()
+						return false
+					}
+
+
+					if (Number(this.reportWeight) >= this.paramList[this.paramList.length - 1].CVIWeight) {
+						this.resultObj = this.paramList[this.paramList.length - 1]
+						this.setDataSave()
+						return false
+					}
+
+					for (let i = 1; i < this.paramList.length; i++) {
+						if (Number(this.paramList[i - 1].CVIWeight) < Number(this.reportWeight) <= Number(this.paramList[i]
+								.CVIWeight)) {
+							this.resultObj = this.paramList[i]
+							break;
+						}
+					}
+
+					this.setDataSave()
+
+
+
+
+				}
+
+			},
+
+			setDataSave() {
+
+				this.$set(this.list[this.resultIdx].extInfo, 'taskId', this.resultObj.taskId)
+				this.$set(this.list[this.resultIdx].extInfo, 'density', this.resultObj.density)
+				this.$set(this.list[this.resultIdx].extInfo, 'billet', this.resultObj.billet)
+				this.$set(this.list[this.resultIdx].extInfo, 'taskName', this.resultObj.taskName)
+
+
+				this.cancel()
+			},
+
+
+
+		}
+	}
+</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;
+			}
+
+
+		}
+
+		.btn_box {
+
+			.btn {
+				padding: 0 18rpx;
+				height: 50rpx;
+				line-height: 50rpx;
+				background: $theme-color;
+				font-size: 26rpx;
+				font-style: normal;
+				font-weight: 400;
+				font-size: 24rpx;
+				color: #fff;
+				border-radius: 4rpx;
+				margin-left: 24rpx;
+			}
+		}
+
+
+
+	}
+
+
+	.material {
+		margin-top: 10rpx;
+
+
+
+		.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;
+				}
+
+				.lable150 {
+					width: 156rpx !important;
+					font-size: 24rpx;
+				}
+
+				.lable190 {
+					width: 190rpx !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;
+
+
+					.unit {
+						padding: 0 4rpx;
+						font-size: 24rpx;
+						color: #404446;
+					}
+
+					.penalize {
+						width: 160rpx;
+						line-height: 60rpx;
+						background: $theme-color;
+						font-size: 24rpx;
+						text-align: center;
+						color: #fff;
+					}
+
+				}
+
+
+
+				.content_H {
+					min-height: 92rpx;
+				}
+
+				.pd4 {
+					padding: 4rpx 8rpx;
+				}
+
+
+
+				&:last-child {
+					border-bottom: none;
+				}
+			}
+
+			.ww55 {
+				width: 55%;
+			}
+
+			.ww50 {
+				width: 50%;
+			}
+
+			.ww45 {
+				width: 45%;
+			}
+		}
+	}
+
+
+
+
+	.content_table2 {
+		width: 100%;
+		margin-top: 16rpx;
+
+
+		.row {
+			width: 100%;
+
+
+			.item {
+
+				color: #404446;
+				font-size: 28rpx;
+				padding-left: 12rpx;
+
+			}
+
+			.color157 {
+				color: $theme-color;
+			}
+
+
+			.ww30 {
+				width: 30%;
+			}
+
+			.ww20 {
+				width: 20%;
+			}
+
+			.ww15 {
+				width: 15%;
+			}
+
+			.ww25 {
+				width: 25%;
+			}
+
+			.ww50 {
+				width: 50%;
+			}
+
+			.ww10 {
+				width: 10%;
+			}
+
+		}
+
+		.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;
+				font-size: 22rpx;
+			}
+		}
+
+
+
+		.tr {
+			border-top: 2rpx solid #E3E5E5;
+			border-left: 2rpx solid #E3E5E5;
+
+
+			.item {
+				font-size: 24rpx;
+				min-height: 74rpx;
+				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;
+
+			}
+
+			.numerate {
+				font-size: 22rpx;
+				color: $theme-color;
+			}
+		}
+	}
+
+	.content_num {
+		display: flex;
+		align-items: center;
+		padding: 0 4rpx;
+
+		/deep/ .uni-input-input {
+			border: 2rpx solid #F0F8F2;
+			background: #F0F8F2;
+			color: $theme-color;
+		}
+
+
+	}
+
+	.round {
+		width: 32rpx;
+		height: 32rpx;
+		line-height: 32rpx;
+		text-align: center;
+		border-radius: 50%;
+		background: $theme-color;
+		font-size: 24rpx;
+		font-style: normal;
+		font-weight: 400;
+		color: #fff;
+		margin-right: 18rpx;
+	}
+
+
+	.popup_box {
+		width: 94vw;
+		padding: 16rpx 12rpx;
+		box-sizing: border-box;
+
+	}
+
+
+
+	.operate_box {
+		margin-top: 32rpx;
+		padding: 10rpx 100rpx;
+
+		/deep/ .u-button {
+			width: 160rpx;
+		}
+	}
+
+
+	.formula_box {
+		font-size: 24rpx;
+		font-style: normal;
+		font-weight: 400;
+		margin-top: 12rpx;
+	}
+
+	.reportWeight {
+		font-size: 24rpx;
+		font-style: normal;
+		font-weight: 400;
+		margin-top: 30rpx;
+
+		text {
+			color: $theme-color;
+		}
+	}
+</style>

+ 30 - 15
pages/pda/jobBooking/index/index.vue

@@ -23,14 +23,22 @@
 					<jobBom v-if='isLoad' :item='objData' :notFormed='objData.notFormedList' @penalize='penalize'
 						@modeNum='modeNum'></jobBom>
 
-					<palletBom   v-if="objData.palletList.length != 0"  :palletList='objData.palletList'></palletBom>
-					
-					<revolvingDiskBom v-if="isLoad && objData.revolvingDiskList.length > 0" :revolvingDiskList="objData.revolvingDiskList" ></revolvingDiskBom>
+					<palletBom v-if="objData.palletList.length != 0" :palletList='objData.palletList'></palletBom>
 
-					<oneJobBom v-if='objData.instanceList &&  objData.instanceList.length != 0 && taskType != 4'
+					<revolvingDiskBom v-if="isLoad && objData.revolvingDiskList.length > 0"
+						:revolvingDiskList="objData.revolvingDiskList"></revolvingDiskBom>
+
+					<oneJobBom
+						v-if='objData.instanceList &&  objData.instanceList.length != 0 && taskType != 4 && taskType != 6'
 						:item='objData' :list='objData.instanceList'>
 					</oneJobBom>
 
+
+
+					<oneJobQualityBom
+						v-if='objData.instanceList &&  objData.instanceList.length != 0 && taskType ==6 && clientEnvironmentId == 3'
+						:item='objData' :list='objData.pickOutInList'></oneJobQualityBom>
+
 					<byProductBom v-if='objData.productRecycleList.length != 0 ' :list='objData.productRecycleList'
 						@penalize='penalize'>
 					</byProductBom>
@@ -47,8 +55,8 @@
 						v-if='taskType == 4 && clientEnvironmentId != 3  && objData'></packingBom>
 
 					<packingTgBom
-						v-if='objData.pickOutInList &&  objData.pickOutInList.length != 0 && taskType == 4 && clientEnvironmentId == 3'
-					 :list='objData.pickOutInList'></packingTgBom>
+						v-if='objData.pickOutInList &&  objData.pickOutInList.length != 0 && taskType == 4  &&  clientEnvironmentId == 3'
+						:list='objData.pickOutInList'></packingTgBom>
 
 
 
@@ -134,6 +142,8 @@
 	import revolvingDiskBom from '../../feeding/components/revolvingDiskBom.vue'
 	import SearchPopup from '../../components/searchPopup.vue'
 
+	import oneJobQualityBom from '../components/oneJobQualityBom.vue'
+
 
 	export default {
 
@@ -151,7 +161,8 @@
 			packingBom,
 			packingTgBom,
 			revolvingDiskBom,
-			SearchPopup
+			SearchPopup,
+			oneJobQualityBom
 		},
 		data() {
 			return {
@@ -192,7 +203,7 @@
 				id: null,
 				taskId: null,
 
-				clientEnvironmentId:   uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
+				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
 					.clientEnvironmentId, // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
 
 			}
@@ -376,18 +387,18 @@
 					if (!this.objData.hasOwnProperty('instanceList')) {
 						this.objData['instanceList'] = []
 					}
-					
-					
+
+
 					if (!this.objData.hasOwnProperty('palletList')) {
 						this.objData['palletList'] = []
 					}
-					
-					
+
+
 					if (!this.objData.hasOwnProperty('revolvingDiskList')) {
 						this.objData['revolvingDiskList'] = []
 					}
-					
-					
+
+
 
 
 					// this.taskType = res.currentTaskDiagram.type
@@ -396,7 +407,7 @@
 					if (this.objData.palletList.length > 0) {
 						this.objData.palletList = this.objData.palletList.map(m => {
 							return {
-							 hideKc: true, // 不显示库存
+								hideKc: true, // 不显示库存
 								quantity: m.feedQuantity,
 								...m
 							}
@@ -419,6 +430,10 @@
 					}
 
 
+					if (this.taskType == 6 && this.clientEnvironmentId == 3) {
+						this.objData.instanceList = this.objData.pickOutInList
+					}
+
 
 
 					this.objData.workReportInfo = {

+ 1 - 1
pages/pda/picking/bill/components/instanceBom.vue

@@ -46,7 +46,7 @@
 				<view class="item">
 					<view class="lable rx-cc">领料仓库</view>
 					<view class="content ">
-						{{ mate.warehouseName }}
+						{{ mate.warehouseName }} (审核人:{{ mate.warehouseLeaderName}})
 					</view>
 				</view>
 

+ 15 - 2
pages/pda/workOrder/extrusionMolding/index.vue

@@ -147,9 +147,10 @@
 		</view>
 
 		<view class="bottom-wrapper">
+
 			<bottomOperate @operate='operate'
 				:taskObj="{'currentTaskName': currentTaskName || info.taskName, 'currentTaskId': currentTaskId || info.taskId, 'workOrderId' : id }"
-				:state='currentType'></bottomOperate>
+				:state='currentType' :controlReportMethod='controlReportMethod'></bottomOperate>
 		</view>
 
 	</view>
@@ -188,6 +189,7 @@
 				currentTaskId: null,
 				currentTaskName: null,
 				currentType: 1,
+				controlReportMethod: null,
 
 			}
 		},
@@ -260,7 +262,8 @@
 				this.stepsList.length && this.stepsList.find(f => {
 					let id = this.currentTaskId || this.taskId
 					if (f.taskId == id) {
-						this.currentType = f.type
+						this.currentType = f.type,
+							this.controlReportMethod = f.controlReportMethod
 					}
 
 				})
@@ -279,6 +282,7 @@
 				this.currentTaskName = item.taskTypeName
 
 				this.currentType = item.type
+				this.controlReportMethod = item.controlReportMethod
 
 
 				this.feedStatus()
@@ -286,6 +290,15 @@
 
 			operate(type, item) {
 
+				if (this.info.outsourceStatus == 2) {
+					uni.showToast({
+						title: "工单在委外中",
+						icon: "none",
+					})
+
+					return false
+				}
+
 
 				let url
 				let taskId = this.currentTaskId || this.taskId