ysy 1 год назад
Родитель
Сommit
1daae5a029
1 измененных файлов с 300 добавлено и 3 удалено
  1. 300 3
      pages/pda/feeding/components/deviceBom.vue

+ 300 - 3
pages/pda/feeding/components/deviceBom.vue

@@ -53,11 +53,15 @@
 
 
 
 
 
 
-				<view class="item" >
+				<view class="item">
 					<view class="lable rx-cc">炉次号</view>
 					<view class="lable rx-cc">炉次号</view>
 					<view class="content content_num">
 					<view class="content content_num">
-						<input class="uni-input" v-model="item.extInfo.heatNumber" ></input>
+						<input class="uni-input" v-model="item.extInfo.heatNumber"></input>
 					</view>
 					</view>
+
+					<view v-if="clientEnvironmentId == 2" class="lable rx-cc" style="color: #157A2C"
+						@click="handleStorage(index)">货位</view>
+
 				</view>
 				</view>
 
 
 
 
@@ -65,13 +69,67 @@
 			</view>
 			</view>
 		</view>
 		</view>
 
 
+		<SearchPopup mode="center" v-if='popupShow'>
+			<template v-slot:list>
+				<view class="search_list">
+					<u-form labelPosition="left" :model="formData" labelWidth="90" labelAlign="left" class="baseForm">
+
+						<u-form-item label="层数:" class="required-form" borderBottom prop="levelNum">
+							<u-input v-model="formData.levelNum" placeholder="请输入">
+							</u-input>
+						</u-form-item>
+
+						<u-form-item label="列数:" class="required-form" borderBottom prop="lineNum">
+							<u-input v-model="formData.lineNum" placeholder="请输入">
+							</u-input>
+						</u-form-item>
+
+						<view class="rx-bs" style="margin-top: 6rpx;">
+							<u-button size="small" style="width: 260rpx" type="success" @click="handleHjCode()">
+								自动生成
+							</u-button>
+
+
+							<u-button size="small" style="width: 260rpx" type="success">
+								添加货位
+							</u-button>
+						</view>
+
+					</u-form>
+				</view>
+
+				<view class="content_table2">
+					<view class="head row rx-sc">
+						<view class="item ww70">货位</view>
+						<view class="item ww30">操作</view>
+
+					</view>
+					<view class="table">
+						<u-list @scrolltolower="scrolltolower" class="z_list">
+							<view class="tr row rx-sc" v-for="(it, idx) in list[listIndex].extInfo.positionList" :key='idx'>
+									<view class="item ww70">{{it.code}}</view>
+							</view>
+
+						</u-list>
+
+					</view>
+
+
+				</view>
+
+			</template>
+		</SearchPopup>
+
 
 
 	</view>
 	</view>
 </template>
 </template>
 
 
 <script>
 <script>
+	import SearchPopup from '../../components/searchPopup.vue'
 	export default {
 	export default {
-
+		components: {
+			SearchPopup
+		},
 		props: {
 		props: {
 			workOrderId: {
 			workOrderId: {
 				type: String,
 				type: String,
@@ -86,6 +144,14 @@
 		},
 		},
 		data() {
 		data() {
 			return {
 			return {
+				popupShow: false,
+				formData: {
+					levelNum: null,
+					lineNum: null,
+					type: 3,
+					code: 'A'
+				},
+				listIndex: null,
 				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo").clientEnvironmentId
 				clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo").clientEnvironmentId
 			}
 			}
 		},
 		},
@@ -97,6 +163,140 @@
 			getDelete(idx) {
 			getDelete(idx) {
 				this.list.splice(idx, 1)
 				this.list.splice(idx, 1)
 			},
 			},
+
+			handleStorage(idx) {
+				this.listIndex = idx || 0
+				this.popupShow = true
+
+			},
+
+			handleHjCode() {
+				if (!this.formData.levelNum) {
+
+					uni.showToast({
+						title: `请输入层数`,
+						icon: 'none'
+					})
+					return false
+				}
+
+				if (!this.formData.lineNum) {
+					uni.showToast({
+						title: `请输入列数`,
+						icon: 'none'
+					})
+					return false
+				}
+				this.handleMine()
+			},
+
+
+			handleMine() {
+
+				const ruleName = this.formData.code;
+				let preCode = 0;
+				let codeEng = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+				let currentLetterIndex = 0;
+				let positionList = []
+
+				if (ruleName.length > 0) {
+					// 计算初始索引
+					let multiplier = Math.pow(codeEng.length, ruleName.length - 1);
+					for (let i = 0; i < ruleName.length; i++) {
+						currentLetterIndex +=
+							(codeEng.indexOf(ruleName[i]) + 1) * multiplier;
+						multiplier /= codeEng.length;
+					}
+				}
+
+
+				if (this.formData.type == 3) {
+					for (let i = 0; i < this.formData.lineNum; i++) {
+						// 获取当前字母
+						let index = currentLetterIndex;
+						let dividend = codeEng.length;
+						let remainder;
+						let quotient;
+						let code = '';
+
+
+						while (index > 0) {
+							remainder = index % dividend;
+							quotient = Math.floor(index / dividend);
+
+							if (remainder === 0) {
+								remainder = codeEng.length;
+								quotient--;
+							}
+							code = codeEng[remainder - 1] + code;
+							index = quotient;
+						}
+
+						for (let j = 0; j < this.formData.levelNum; j++) {
+							let obj1111 = {
+								code: code + (j + 1),
+
+							};
+
+							positionList.push(obj1111)
+
+
+
+						}
+						console.log(positionList)
+						this.$set(this.list[this.listIndex].extInfo, 'positionList', positionList)
+
+
+						currentLetterIndex++; // 自增索引
+
+					}
+
+				} else {
+					let num = Number(this.form.levelNum) * Number(this.form.lineNum)
+
+
+					for (let i = 0; i < num; i++) {
+						// 获取当前字母
+						let index = currentLetterIndex;
+						let dividend = codeEng.length;
+						let remainder;
+						let quotient;
+						let code = '';
+
+
+						while (index > 0) {
+							remainder = index % dividend;
+							quotient = Math.floor(index / dividend);
+
+							if (remainder === 0) {
+								remainder = codeEng.length;
+								quotient--;
+							}
+							code = codeEng[remainder - 1] + code;
+							index = quotient;
+						}
+
+
+
+
+						let obj1111 = {
+							code: this.formData.type === 1 ? code : ruleName + (i + 1),
+
+						};
+						positionList.push(obj1111)
+
+
+
+						currentLetterIndex++; // 自增索引
+
+					}
+				}
+
+
+
+			},
+			
+			scrolltolower() {},
 		}
 		}
 	}
 	}
 </script>
 </script>
@@ -245,4 +445,101 @@
 			}
 			}
 		}
 		}
 	}
 	}
+
+
+
+	.search_list {
+		min-height: 100rpx;
+		width: 96vw;
+		padding: 0 8rpx;
+
+		/deep/ .u-form-item__body {
+			padding: 6rpx 0rpx !important;
+		}
+
+	}
+
+
+
+
+	.content_table2 {
+		width: 100%;
+		margin-top: 6rpx;
+
+		.row {
+			width: 100%;
+
+
+			.item {
+
+				color: #404446;
+				font-size: 28rpx;
+				padding-left: 12rpx;
+				padding-right: 6rpx;
+
+			}
+
+			.color157 {
+				color: $theme-color;
+			}
+
+			.ww70 {
+				width: 70%;
+			}
+
+			.ww30 {
+				width: 30%;
+			}
+
+
+
+
+		}
+
+		.head {
+			height: 64rpx;
+			background: #F7F9FA;
+			border-top: 2rpx solid #E3E5E5;
+			border-left: 2rpx solid #E3E5E5;
+			box-sizing: border-box;
+
+			.item {
+				height: 64rpx;
+				line-height: 64rpx;
+				border-right: 2rpx solid #E3E5E5;
+				box-sizing: border-box;
+				font-size: 24rpx;
+			}
+		}
+
+
+
+		.tr {
+			border-top: 2rpx solid #E3E5E5;
+			border-left: 2rpx solid #E3E5E5;
+			box-sizing: border-box;
+
+			.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;
+
+			}
+		}
+	}
+
+
+	.z_list {
+		max-height: 500rpx;
+	}
 </style>
 </style>