ysy 2 tahun lalu
induk
melakukan
5a26d0df31

+ 15 - 0
api/pda/workOrder.js

@@ -309,6 +309,21 @@ export async function listWorkReport(params) {
 }
 
 
+// pda根据工单id和工序id查询报工详情  (入库)
+export async function listApplystorage(params) {
+	const data = await get(
+		Vue.prototype.apiUrl + `/mes/applystorage/list`, params, true,
+	);
+
+	if (data.code == 0) {
+		return data.data;
+	}
+	return Promise.reject(data.message);
+}
+
+
+
+
 // pda 内包装
 
 export async function packingReport(params) {

+ 263 - 0
pages/pda/warehousing/components/detailsBom.vue

@@ -0,0 +1,263 @@
+<template>
+
+
+
+
+	<view class="material ">
+
+		<view class="title_box rx-bc">
+			<view class="name">内包装</view>
+		</view>
+
+
+		<view class="content_table2" v-if='detailList.length'>
+			<view class="head row rx-sc">
+				<view class="item ww10">序号</view>
+				<view class="item ww30">数量</view>
+				<view class="item ww20">重量</view>
+				<view class="item ww40">发货条码</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 detailList" :key='idx'>
+						<view class="item ww10 rx-cc ">{{ idx + 1 }}</view>
+						<view class="item ww30 content_num rx-sc">
+							<view>{{ it.quantity }} {{it.measuringUnit}}/ {{it.packingCount}} {{it.packingUnit}}</view>
+						</view>
+						
+						<view class="item ww20">
+						 {{it.packingWeight}} {{it.weightUnit}}
+						</view>
+						
+						<view class="item ww40">
+							{{ it.sendCode }}
+						</view>
+					
+
+					</view>
+
+				</u-list>
+			</view>
+		</view>
+
+
+
+	</view>
+
+
+
+
+
+
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			detailList: {
+				type: Array,
+				default: () => []
+			},
+
+		},
+		data() {
+			return {
+
+			}
+		},
+
+		created() {
+
+
+		},
+
+		methods: {
+
+
+
+
+
+
+			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;
+			}
+		}
+	}
+
+
+	.material {
+		margin-top: 10rpx;
+
+
+	}
+
+
+
+
+	.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%;
+			}
+
+			.ww50 {
+				width: 50%;
+
+			}
+			
+			.ww40 {
+				width: 40%;
+			
+			}
+
+			.ww90 {
+				width: 90%;
+			}
+
+			.ww20 {
+				width: 20%;
+			}
+
+			.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;
+			}
+		}
+
+
+
+		.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;
+
+			}
+
+			&:last-child {
+				border-bottom: 2rpx solid #E3E5E5;
+
+			}
+		}
+	}
+
+
+
+
+	.content_num {
+		display: flex;
+		align-items: center;
+		padding: 0 4rpx;
+
+		/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;
+	}
+
+	.check {
+		width: 30rpx;
+		height: 30rpx;
+	}
+
+	.z_list {
+		max-height: 300rpx;
+	}
+</style>

+ 231 - 0
pages/pda/warehousing/components/workOrderBom.vue

@@ -0,0 +1,231 @@
+<template>
+	<view>
+		<view class="title_box rx-bc">
+			<view class="name">工单信息</view>
+
+			<view class="btn_box rx-bc" @click="handleScan(item.workOrderId)" v-if='!isDetails'>
+				<image class="scan" src="@/static/pda/ScanIt.svg"></image>
+				更换工单
+			</view>
+		</view>
+
+
+		<view class="material ">
+
+			<view class="content_table">
+				<view class="item">
+					<view class="lable rx-cc">工单编号</view>
+					<view class="content">
+						{{item.code}}
+					</view>
+				</view>
+
+				<view class="item">
+					<view class="lable rx-cc">产品编码</view>
+					<view class="content">{{ item.categoryName }}</view>
+				</view>
+
+				<view class="item">
+					<view class="lable rx-cc">产品名称</view>
+					<view class="content">{{ item.categoryCode }}</view>
+				</view>
+
+
+				<view class="item rx-sc">
+					
+					
+					<view class="rx ww45">
+						<view class="lable rx-cc ww80">牌号</view>
+						<view class="content content_num">
+							<view>{{item.brandNum}}</view>
+					
+						</view>
+					</view>
+					
+					<view class="rx ww55 ">
+						<view class="lable  rx-cc">型号</view>
+						<view class="content rx-sc">
+							<view>{{item.modelType}}</view>
+						
+						</view>
+					</view>
+
+
+				</view>
+
+
+
+
+
+
+			</view>
+		</view>
+
+
+	</view>
+</template>
+
+<script>
+	export default {
+		props: {
+			item: {
+				type: Object,
+				default: () => {}
+			},
+			isDetails: {
+				type: Boolean,
+				default: false
+			}
+
+		},
+		data() {
+			return {
+
+			}
+		},
+		methods: {
+			handleScan(id) {
+				this.$emit('handleScan', id, 'wordOrder')
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.title_box {
+		margin-top: 18rpx;
+
+		.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 {
+			padding: 0 18rpx;
+			height: 60rpx;
+			background: $theme-color;
+			font-size: 26rpx;
+			font-style: normal;
+			font-weight: 400;
+			font-size: 24rpx;
+			color: #fff;
+			border-radius: 4rpx;
+
+			.scan {
+				width: 34rpx;
+				height: 34rpx;
+				margin-right: 12rpx;
+
+			}
+
+		}
+
+	}
+
+
+	.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;
+				}
+
+				.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;
+					}
+
+				}
+
+				.content_num {
+					display: flex;
+					align-items: center;
+					padding: 0 4rpx;
+
+					/deep/ .uni-input-input {
+						border: 2rpx solid #F0F8F2;
+						background: #F0F8F2;
+						color: $theme-color;
+					}
+
+
+				}
+
+				.pd4 {
+					padding: 4rpx 8rpx;
+				}
+
+
+
+				&:last-child {
+					border-bottom: none;
+				}
+			}
+
+			.ww55 {
+				width: 55%;
+			}
+
+			.ww45 {
+				width: 45%;
+			}
+		}
+	}
+</style>

+ 1 - 1
pages/pda/warehousing/index.vue

@@ -77,7 +77,7 @@
 				tgList: [],
 
 
-				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
+				clientEnvironmentId:  uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
 					.clientEnvironmentId, // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
 			}
 		},

+ 51 - 14
pages/pda/workOrder/index/details.vue

@@ -5,7 +5,7 @@
 		</uni-nav-bar>
 
 		<view class="list_box">
-			<u-list @scrolltolower="scrolltolower">
+			<u-list @scrolltolower="scrolltolower" v-if='taskType != 5'>
 				<view class="card_box" v-for="(objData,index) in list" :key='index'>
 
 					<view class="rx-bc title_card">
@@ -55,22 +55,46 @@
 
 					<packingTgBom
 						v-if='objData.packInfo && objData.packInfo.pickOutInList &&   objData.packInfo.pickOutInList != 0 && taskType == 4 && clientEnvironmentId == 3 '
-						:list='objData.packInfo.pickOutInList'   :isWarehousing='true' :isDetails="true"></packingTgBom>
-						
-						<packingBom v-if="objData.packInfo && clientEnvironmentId == 2" :packInfo="objData.packInfo"  > </packingBom>
+						:list='objData.packInfo.pickOutInList' :isWarehousing='true' :isDetails="true"></packingTgBom>
+
+					<packingBom v-if="objData.packInfo && clientEnvironmentId == 2" :packInfo="objData.packInfo">
+					</packingBom>
 
 
 
 
 				</view>
 
-				<view v-if='list.length == 0'>
-					<view style='margin-top: 20vh;'>
-						<u-empty iconSize='150' textSize='32' text='暂无报工详情'>
-						</u-empty>
+
+			</u-list>
+
+
+			<u-list @scrolltolower="scrolltolower" v-if='taskType == 5'>
+				<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>
+					
+					
+					<workOrderBom2 :item='objData' v-if='objData' :isDetails='true'></workOrderBom2>
+					
+					<detailsBom v-if='objData.detailList.length != 0' :detailList='objData.detailList'  ></detailsBom>
+					
+				
 				</view>
 			</u-list>
+
+
+			<view v-if='list.length == 0'>
+				<view style='margin-top: 20vh;'>
+					<u-empty iconSize='150' textSize='32' text='暂无报工详情'>
+					</u-empty>
+				</view>
+			</view>
+
+
 		</view>
 	</view>
 </template>
@@ -78,6 +102,7 @@
 <script>
 	import {
 		listWorkReport,
+		listApplystorage,
 	} from '@/api/pda/workOrder.js'
 	import workOrderBom from '../../feeding/components/workOrderBom.vue'
 	import deviceBom from '../../feeding/components/deviceBom.vue'
@@ -95,6 +120,13 @@
 	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: {
@@ -113,7 +145,11 @@
 			palletBom,
 			revolvingDiskBom,
 			packingTgBom,
-			packingBom
+			packingBom,
+			
+			
+			detailsBom,
+			workOrderBom2
 		},
 		data() {
 			return {
@@ -121,8 +157,8 @@
 				taskId: null,
 				list: [],
 				taskType: 1,
-				
-				clientEnvironmentId:  uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
+
+				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo")
 					.clientEnvironmentId, // *1 主环境-601环境   2 soll-索尔环境    3 tg-碳谷环境
 			}
 		},
@@ -140,10 +176,11 @@
 					workOrderId: this.workOrderId,
 					taskId: this.taskId
 				}
-				listWorkReport(param).then(res => {
+				let URL = this.taskType == 5 ? listApplystorage : listWorkReport
+				URL(param).then(res => {
 					this.list = res
-					console.log(11,res)
-					
+					console.log(11, res)
+
 				})
 			},