From eb61b0a4640f75f3f395d40d252aedc05cbc8828 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 07 七月 2025 14:16:41 +0800
Subject: [PATCH] 车间订单下发

---
 pages/product/WorkshopOrderIssued/index.vue |  314 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 247 insertions(+), 67 deletions(-)

diff --git a/pages/product/WorkshopOrderIssued/index.vue b/pages/product/WorkshopOrderIssued/index.vue
index 583912a..ef9e2e2 100644
--- a/pages/product/WorkshopOrderIssued/index.vue
+++ b/pages/product/WorkshopOrderIssued/index.vue
@@ -20,14 +20,45 @@
 				</view>
 				<view class="packing-registration-param-item param-extra">
 					<view class="packing-registration-param-item-left">
+						<text class="item-one">宸ュ崟</text>
+					</view>
+					<view class="packing-registration-param-item-right">
+						<text class="item-one item-two" @click="seachWork()">{{
+              registerInfo.optaskNo == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.optaskNo
+            }}</text>
+						<u-icon name="arrow-right" color="#687792" size="28" @click="seachWork()"
+							v-show="registerInfo.optaskNo == ''"></u-icon>
+					</view>
+				</view>
+				<view class="packing-registration-param-item param-extra">
+					<view class="packing-registration-param-item-left">
+						<text class="item-one">鏈哄彴</text>
+					</view>
+					<view class="packing-registration-param-item-right">
+						<picker class="item-one item-two" style="width: 100%; text-align: right"
+							@change="machineChange($event, machineList)" :value="machineIndex" :range="machineList"
+							range-key="label">
+							<view>
+								<text :style="{ color: machineIndex == null ? '#a5abb4' : '#a5abb4' }">{{
+                machineIndex == null
+                  ? "鐐瑰嚮閫夋嫨"
+                  : machineList[machineIndex].label
+              }}</text>
+							</view>
+						</picker>
+						<u-icon v-if="machineIndex == null" name="arrow-right" color="#687792" size="28"></u-icon>
+					</view>
+				</view>
+				<view class="packing-registration-param-item param-extra">
+					<view class="packing-registration-param-item-left">
 						<text class="item-one">瀛愪欢</text>
 					</view>
 					<view class="packing-registration-param-item-right">
 						<text class="item-one item-two" @click="seachComp()">{{
-              registerInfo.value2 == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.value2
+              registerInfo.partNo == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.partNo
             }}</text>
 						<u-icon name="arrow-right" color="#687792" size="28" @click="seachComp()"
-							v-show="registerInfo.value2 == ''"></u-icon>
+							v-show="registerInfo.partNo == ''"></u-icon>
 					</view>
 				</view>
 				<view class="packing-registration-param-item param-extra">
@@ -35,7 +66,7 @@
 						<text class="item-one">闆朵欢鎻忚堪</text>
 					</view>
 					<view class="packing-registration-param-item-right">
-						<text class="item-one item-two">{{ registerInfo.value3 }}</text>
+						<text class="item-one item-two">{{ registerInfo.partName }}</text>
 					</view>
 				</view>
 				<view class="packing-registration-param-item param-extra">
@@ -59,7 +90,7 @@
 									<view class="_label-name">鎵瑰彿锛�</view>
 								</view>
 								<view class="_content">
-									{{ item.value0 }}
+									{{ item.outBatchNo }}
 								</view>
 							</view>
 							<view class="row-list">
@@ -67,7 +98,7 @@
 									<view class="_label-name">涓嬪彂鏁伴噺锛�</view>
 								</view>
 								<view class="_content">
-									{{ item.value1 }}
+									{{ item.suppliedQuantity }}
 								</view>
 							</view>
 						</view>
@@ -86,7 +117,19 @@
 								<text class="item-one">鎵瑰彿</text>
 							</view>
 							<view class="packing-registration-param-item-right">
-								<text class="item-one item-two">{{ modalList.value }}</text>
+								<text class="item-one item-two">{{
+                  modalList.outBatchNo
+                }}</text>
+							</view>
+						</view>
+						<view class="packing-registration-param-item param-extra">
+							<view class="packing-registration-param-item-left">
+								<text class="item-one">搴撲綅</text>
+							</view>
+							<view class="packing-registration-param-item-right">
+								<text class="item-one item-two">{{
+                  modalList.locationNo
+                }}</text>
 							</view>
 						</view>
 						<view class="packing-registration-param-item param-extra">
@@ -94,7 +137,7 @@
 								<text class="item-one">涓嬪彂鏁伴噺</text>
 							</view>
 							<view class="packing-registration-param-item-right">
-								<u-input class="item-one item-two" v-model="modalList.value1" />
+								<u-input class="item-one item-two" v-model="modalList.suppliedQuantity" />
 							</view>
 						</view>
 					</view>
@@ -124,64 +167,160 @@
 					whiteSpace: "nowrap",
 				},
 				// 寮圭獥鍒楄〃
-				modalList: {
-					value: "",
-					value1: "",
-				},
+				modalList: {},
 				//   涓婚〉闈㈠垪琛�
 				registerInfo: {
+					operationTaskId: '',
+					id: "",
 					moNo: "",
-					value2: "",
-					value3: "",
+					partNo: "",
+					partName: "",
+					optaskNo: "",
+					workstationId: ''
 				},
 				//   涓嬪彂璁板綍鍒楄〃
 				hasScanSnList: [],
+				codeInfoId: "",
+				showModal: false,
+				machineIndex: null,
+				machineList: [],
+
 			};
 		},
 		onShow() {
 			let that = this;
 			uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
-			if ((registerInfo.moNO = null)) {
-				uni.showToast({
-					icon: "none",
-					title: "璇峰厛閫夋嫨瀛愪欢锛�",
-					duration: 2 * 1000,
-				});
-				return;
-			}
 			uni.$on("scan", function(data) {
 				console.log("onscan");
-				//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-				console.log("鎵爜缁撴灉锛�", data.code);
-				that.scanHandle(data.code);
-				that.$forceUpdate();
+				if (that.registerInfo.partNo == "") {
+					uni.showToast({
+						icon: "none",
+						title: "璇峰厛閫夋嫨瀛愪欢锛�",
+						duration: 2 * 1000,
+					});
+					return;
+				}
+				if (that.registerInfo.workstationId == "") {
+					uni.showToast({
+						icon: "none",
+						title: "璇峰厛閫夋嫨鏈哄彴锛�",
+						duration: 2 * 1000,
+					});
+					return;
+				}
+				if (data.code) {
+					//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+					console.log("鎵爜缁撴灉锛�", data.code);
+					let codeInfo = JSON.parse(data.code);
+					that.codeInfoId = codeInfo.id;
+					if (codeInfo.partNo) {
+						if (that.registerInfo.partNo != codeInfo.partNo) {
+							this.$u.toast("褰撳墠瀛愪欢鍜屾壂鐮佸瓙浠朵笉涓�鑷达紒");
+							return;
+						}
+						// 鎵弿鎶ュ伐鍗曚簩缁寸爜
+						that.scanHandle(codeInfo);
+						that.$forceUpdate();
+						// that.getHandelList();
+					}
+				}
 			});
 		},
 		methods: {
+			//鏈哄彴
+			machineChange(e, storage, code) {
+				this.hasScanSnList = []
+				if (storage.length <= 0) {
+					this.machineIndex = null;
+					return;
+				}
+				this.machineIndex = e.target.value;
+				this.registerInfo.workstationId = storage[this.machineIndex].value;
+			},
+			// getHandelList() {
+			//   this.$u.api.workReporting
+			//     .getProductMainV1({
+			//       current: 1,
+			//       size: -1,
+			//       id: this.codeInfoId,
+			//     })
+			//     .then((res) => {
+			//       this.hasScanSnList = res.data.productOutputList;
+			//     });
+			// },
 			// 鐐瑰嚮纭鍚庤幏鍙栦笅鍙戣褰�
 			confirm() {
 				// 澶勭悊纭閫昏緫
-				this.showModal = false;
-				this.$u.api.workReporting
-				._({}).then((res) => {
-					console.log("res", res);
-					this.hasScanSnList = res.data.records;
-				});
+				this.$u.api.WorkshopOrderIssued.feeding({
+					feedingFrom: "stocker",
+					operationTaskId: this.registerInfo.operationTaskId,
+					feeds: [{
+						...this.modalList
+					}]
+				}).then(
+					(res) => {
+						console.log("res", res);
+						if (res.code === 0) {
+							this.$u.toast("鎻愪氦鎴愬姛");
+							this.showModal = false;
+							const obj = {
+								suppliedQuantity: this.modalList.suppliedQuantity,
+								outBatchNo: this.modalList.outBatchNo,
+							}
+							this.hasScanSnList.push(obj)
+						}
+					}
+				);
 			},
 			// 妯℃�佹鍙栨秷
 			cancel() {
 				this.showModal = false; // 鍏抽棴寮圭獥
 			},
+			// 宸ュ崟鍥炴樉
+			workNo(val) {
+				this.machineList = []
+				this.machineIndex = null
+				this.registerInfo.workstationId = ''
+				this.registerInfo.partName = ''
+				this.registerInfo.partNo = ''
+				this.$u.api.WorkshopOrderIssued
+					.selWorkStation(val)
+					.then((res) => {
+						console.log('111', res)
+						if (res.code === 0 && res.data.length > 0) {
+							res.data.forEach(i => {
+								const obj = Object.assign({
+									label: i.name,
+									value: i.id,
+								})
+								this.machineList.push(obj)
+							})
+						}
+					});
+				this.registerInfo.optaskNo = val.optaskNo;
+				this.registerInfo.operationTaskId = val.id;
+				this.hasScanSnList = []
+			},
 			// 瀛愪欢鍥炴樉
 			compNo(val) {
-				this.registerInfo.value2 = val.value2;
-				this.registerInfo.value3 = val.value2;
+				this.registerInfo.partNo = val.partNo;
+				this.registerInfo.partName = val.partName;
 			},
 			// 璁㈠崟鍙峰洖鏄�
 			setNo(val) {
 				console.log("11111", val);
-				this.registerInfo.moNo = val.moNo;
-				this.registerInfo.value2 = val.value2;
+				this.registerInfo = {
+						operationTaskId: '',
+						id: val.id,
+						moNo: val.moNo,
+						partNo: "",
+						partName: "",
+						optaskNo: "",
+						workstationId: ''
+					},
+					this.machineList = []
+				this.machineIndex = null
+				this.hasScanSnList = []
 			},
 			//璁㈠崟鍙�
 			seachPersonnelNo() {
@@ -192,27 +331,68 @@
 			},
 			//瀛愪欢
 			seachComp() {
-				if (this.registerInfo.value1 == null || this.registerInfo.value1 == "") {
+				if (this.registerInfo.optaskNo == "") {
+					this.$u.toast("璇烽�夋嫨宸ュ崟鍙�");
+					return;
+				}
+				console.log("瀛愪欢");
+				// 浣跨敤uni.navigateTo鏂规硶璺宠浆锛屽苟閫氳繃queryParams浼犻�掑弬鏁�
+				uni.navigateTo({
+					url: "/pages/product/WorkshopOrderIssued/comp?operationTaskId=" +
+						encodeURIComponent(JSON.stringify(this.registerInfo.operationTaskId)),
+				});
+			},
+			//宸ュ崟
+			seachWork() {
+				if (this.registerInfo.moNo == "") {
 					this.$u.toast("璇烽�夋嫨璁㈠崟鍙�");
 					return;
 				}
 				console.log("瀛愪欢");
+				// 浣跨敤uni.navigateTo鏂规硶璺宠浆锛屽苟閫氳繃queryParams浼犻�掑弬鏁�
 				uni.navigateTo({
-					url: "/pages/product/WorkshopOrderIssued/comp",
+					url: "/pages/product/WorkshopOrderIssued/WorkOrderList?id=" +
+						encodeURIComponent(JSON.stringify(this.registerInfo.id)),
 				});
 			},
 			// 鎵爜鍚庢暟鎹洖鏄�
-			scanHandle(scanresult) {
-				this.$u.api.workReporting
-				._({}).then((res) => {
-					this.modalList = res.data.records;
-					this.showModal = true;
-				});
+			scanHandle(val) {
+				const {
+					outBatchNo
+				} = val
+				const {
+					workstationId,
+					operationTaskId
+				} = this.registerInfo
+				const obj = {
+					outBatchNo: outBatchNo,
+					workstationId: workstationId,
+					operationTaskId: operationTaskId,
+				}
+				this.$u.api.WorkshopOrderIssued.checkRawPartPDA(obj).then(
+					(res) => {
+						console.log("res", res);
+						if (res.code === 0) {
+							res.data.workstationId = workstationId,
+								this.modalList = res.data;
+							this.showModal = true;
+						}
+					}
+				);
 			},
 		},
 	};
 </script>
 <style lang="scss" scoped>
+	.popup-content {
+		width: 600rpx;
+		height: 350rpx;
+		background-color: #fff;
+		border-radius: 8px;
+		z-index: 10;
+		/* 纭繚鍐呭鍦ㄨ挋鐗堜箣涓� */
+	}
+
 	.packing-registration-bg {
 		background-color: #f6f9ff;
 		background-image: url("~@/static/custom/packing/backBg.png");
@@ -240,12 +420,12 @@
 				margin-left: 14rpx;
 				font-size: 34rpx;
 				font-weight: bold;
-				color: #283e65;
+				color: #283E65;
 			}
 		}
 
 		.packing-registration-param-view {
-			height: 345rpx;
+			height: 550rpx;
 			background-color: #fff;
 			border-radius: 10rpx;
 			padding: 0rpx 23rpx;
@@ -253,7 +433,7 @@
 
 			.packing-registration-param-item {
 				height: 90rpx;
-				border: 1px solid #adc8e4;
+				border: 1px solid #ADC8E4;
 				line-height: 90rpx;
 				display: flex;
 				justify-content: space-between;
@@ -266,32 +446,32 @@
 					}
 				}
 
-				.packing-registration-param-item-right {
-					display: flex;
-					justify-content: space-between;
+      .packing-registration-param-item-right {
+        display: flex;
+        justify-content: space-between;
 
-					.item-one {
-						font-size: 30rpx;
-						color: #333333;
-						margin-right: 6rpx;
-					}
+        .item-one {
+          font-size: 30rpx;
+          color: #060505;
+          margin-right: 6rpx;
+        }
 
-					.item-two {
-						font-size: 30rpx;
-						color: #a6b4cc;
-						margin-right: 6rpx;
-					}
+        .item-two {
+          font-size: 30rpx;
+          color: #a6b4cc;
+          margin-right: 6rpx;
+        }
 
-					.item-three {
-						font-size: 30rpx;
-						color: #214ded;
-						margin-right: 6rpx;
-					}
-				}
-			}
+        .item-three {
+          font-size: 30rpx;
+          color: #214ded;
+          margin-right: 6rpx;
+        }
+      }
+    }
 
 			.param-extra {
-				border-bottom: 1px solid #ededed;
+				border-bottom: 1px solid #EDEDED;
 			}
 		}
 	}

--
Gitblit v1.9.3