ysy vor 1 Jahr
Ursprung
Commit
3a7b1a2b06

+ 4 - 2
pages/login/login.vue

@@ -3,7 +3,7 @@
 		<uni-icons class="setting" type="gear" @click="handleServerSettings" size="50" color="#fff"></uni-icons>
 		<view class="login_logo">
 			<!-- <image :src="logo || 'https://img.picgo.net/2024/04/18/login_logo45cb6a5eb95c8c1c.png'"></image> -->
-			<view class="logo_bj">嘉实</view>
+			<view class="logo_bj">{{ logoName || '中赢' }}</view>
 		</view>
 		<view class="login-title">
 			<label>工业互联网平台</label>
@@ -61,7 +61,8 @@
 				loginDisabled: false,
 
 				companyName: null,
-				logo: null
+				logo: null,
+				logoName: ''
 			}
 		},
 		onLoad() {
@@ -87,6 +88,7 @@
 				usName().then(res => {
 					this.companyName = res.companyName
 					this.logo = res.logo
+					this.logoName = res.logoName
 				})
 			},
 			setServerStatus(val) {

+ 8 - 0
pages/pda/components/workCard.vue

@@ -47,6 +47,14 @@
 				<view>状态:</view>
 				<view>{{statusList[item.status]}}</view>
 			</view>
+			
+			
+				<view class="item_one perce50 rx-sc">
+					<view>报工类型:</view>
+					<view class="gylx">{{item.singleReport == 1 ? '单个报工' : '批量报工'}}</view>
+				</view>
+			
+			
 		</view>
 
 		<view class="item_box rx-sc">

+ 583 - 0
pages/pda/jobBooking/components/oneJobQualityBomPL.vue

@@ -0,0 +1,583 @@
+<template>
+	<view>
+		<view class="title_box rx-bc">
+			<view class="name">报工信息2: ({{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 ">
+							<view>{{it.deviceName || it.extInfo.deviceName}}</view>
+						</view>
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150  rx-cc ">炉次号</view>
+						<view class="content ">
+							<view>{{it.extInfo.heatNumber }}</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 style="color:#157A2C;">{{it.feedQuantity }}</view>
+						</view>
+
+					</view>
+
+					<view class="rx ww50">
+						<view class="lable lable150 rx-cc ">投料类型</view>
+						<view class="content rx-sc" style="color:#157A2C;">
+							<view>批量投料</view>
+						</view>
+					</view>
+
+				</view>
+
+
+
+
+			</view>
+
+
+			<view class="content_table2">
+				<view class="head row rx-sc">
+					<view class="item ww25" style="font-size: 20rpx;">
+						合格品数量
+					</view>
+					<view class="item ww25">报工总重量/{{it.extInfo.weightUnit}} </view>
+
+					<view class="item ww30 rx-bc">
+						<text>处置</text>
+
+					</view>
+					<view class="item ww20 ">
+						取样 </view>
+				</view>
+
+
+				<view class="table">
+					<view class="tr row rx-sc" v-for="(yy, yyIdx) in it.extInfo.batchReportInfo">
+						<view class="item ww25 content_num">
+							<view >{{yy.allFeedQuantity }}</view>
+						</view>
+						<view class="item ww25 content_num">
+							<view v-if='isDetails'>{{yy.allReportWeight }}</view>
+							<input class="uni-input" v-else v-model="yy.allReportWeight" type='digit'></input>
+						</view>
+
+
+
+						<view class="item ww30" v-if='isDetails'>
+							{{it.extInfo.taskName}}
+						</view>
+
+						<view class="item ww30" v-else>
+							<zxz-uni-data-select :localdata="stepsList" v-model="yy.taskId" dataValue='taskId'
+								format='{taskTypeName}' dataKey="taskId" filterable
+								@change=" e => yy.taskName = e.taskTypeName" :clear='false'></zxz-uni-data-select>
+						</view>
+
+						<view class="item ww20">
+
+						</view>
+
+
+					</view>
+
+				</view>
+
+			</view>
+
+
+		</view>
+
+
+
+
+
+
+	</view>
+</template>
+
+<script>
+	import {
+		getTaskInstanceList
+	} from '@/api/pda/workOrder.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: [],
+
+
+
+
+
+
+
+
+
+
+			}
+		},
+		created() {
+			this.taskTypeName = this.item.currentTaskDiagram.taskTypeName
+			this.isFirstTask = this.item.currentTaskDiagram.isFirstTask
+			this.getSteps()
+
+
+		},
+		methods: {
+
+
+
+
+			getSteps() {
+
+				getTaskInstanceList(this.item.workOrderId).then(res => {
+					this.stepsList = res
+				})
+			},
+
+
+
+
+
+
+		}
+	}
+</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: 16rpx;
+
+
+
+		.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: 500rpx;
+					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%;
+			}
+
+
+			.ww40 {
+				width: 40%;
+			}
+		}
+
+		.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>

+ 3 - 3
pages/pda/jobBooking/components/semiProductJobBom.vue

@@ -144,9 +144,9 @@
 					<view class="item ww25" v-if="Object.prototype.hasOwnProperty.call(it.extInfo, 'newWeight') &&  it.extInfo.newWeight">
 					       {{ it.extInfo.newWeight }} 
 					</view>
-						
-					<view class="item ww25 content_num" v-if="!Object.prototype.hasOwnProperty.call(it.extInfo, 'newWeight')">
-				        <input class="uni-input " v-model="it.extInfo.weight" type='digit'></input>
+				
+					<view class="item ww25 content_num" v-if="!Object.prototype.hasOwnProperty.call(it.extInfo, 'newWeight') || it.extInfo.newWeight == 0  ">
+				  <input class="uni-input " v-model="it.extInfo.weight" type='digit'></input>
 					</view>
 						
 						

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

@@ -440,7 +440,7 @@
 				}
 
 				.content {
-					width: 518rpx;
+					width: 500rpx;
 					min-height: 64rpx;
 					font-size: 28rpx;
 					line-height: 28rpx;

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

@@ -49,8 +49,13 @@
 
 
 					<oneJobQualityBom
-						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType == 6 && clientEnvironmentId == 3'
+						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType == 6 && clientEnvironmentId == 3 && objData.singleReport == 1'
 						:item='objData' :list='objData.semiProductList'></oneJobQualityBom>
+						
+					<oneJobQualityBomPL
+						v-if='objData.semiProductList && objData.semiProductList.length != 0 && taskType == 6 && clientEnvironmentId == 3 && objData.singleReport == 0'
+						:item='objData' :list='objData.semiProductList'></oneJobQualityBomPL>
+						
 
 					<byProductBom v-if='objData.productRecycleList.length != 0' :list='objData.productRecycleList'
 						@penalize='penalize'>
@@ -210,6 +215,8 @@
 	import SearchPopup from '../../components/searchPopup.vue'
 
 	import oneJobQualityBom from '../components/oneJobQualityBom.vue'
+	import oneJobQualityBomPL from '../components/oneJobQualityBomPL.vue'
+	
 
 
 	export default {
@@ -231,7 +238,8 @@
 			packingTgBom,
 			revolvingDiskBom,
 			SearchPopup,
-			oneJobQualityBom
+			oneJobQualityBom,
+			oneJobQualityBomPL
 		},
 		data() {
 			return {
@@ -514,7 +522,7 @@
 					}
 
 
-					if (this.clientEnvironmentId == 3 && this.objData.singleReport == 0) {
+					if (this.clientEnvironmentId == 3 && this.objData.singleReport == 0 && this.taskType != 6 ) {
 						 this.objData.semiProductList.map(a => {
 							 a.extInfo.batchReportInfo = [ { allFeedQuantity: '', allReportWeight: '', taskId: '', taskName: '' }]
 							 return {

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

@@ -68,6 +68,13 @@
 					<text class="lable">要求生产重量</text>
 					<text>{{ info.formingWeight }} {{info.weightUnit}}</text>
 				</view>
+				
+				<view class="item_list rx-bc">
+					<text class="lable">报工类型</text>
+					<text>{{info.singleReport == 1 ? '单个报工' : '批量报工'}}</text>
+				</view>
+				
+				
 
 				<view class="item_list rx-bc">
 					<text class="lable">已完成生产数量</text>