From 1f017a1ebe252ef945e42dc868ac8c24e2b6d534 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 21 八月 2025 17:35:49 +0800
Subject: [PATCH] pda报工选择投料接口变更

---
 pages/product/report/components/saveForm.vue |  628 +++++++++++++++++++++++++++++++++------------------------
 1 files changed, 363 insertions(+), 265 deletions(-)

diff --git a/pages/product/report/components/saveForm.vue b/pages/product/report/components/saveForm.vue
index b7176f8..e611d2e 100644
--- a/pages/product/report/components/saveForm.vue
+++ b/pages/product/report/components/saveForm.vue
@@ -1,275 +1,373 @@
 <template>
-  <u-modal
-    v-model="show"
-    ref="uModal"
-    title=""
-    :show-cancel-button="true"
-    @confirm="confirm"
-    @cancel="cancel"
-    :async-close="true"
-    :loading="loading"
-  >
-    <view class="packing-registration-param">
-      <scroll-view scroll-y="true" style="height: 100%">
-        <view class="packing-registration-param-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">
-              <u-input class="item-one item-two" v-model="form.overallLength" />
-            </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">
-              <u-input
-                class="item-one item-two"
-                v-model="form.proposedLocation"
-                disabled
-              />
-            </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">
-              <u-input class="item-one item-two" v-model="form.reelNumber" />
-            </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">
-		      <u-input class="item-one item-two" v-model="form.reelWeight" />
-		    </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">
-              <u-input class="item-one item-two" v-model="form.grossWeight" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.netWeight" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.name" disabled />
-            </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">
-              <u-input class="item-one item-two" v-model="form.outerDiameter" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.voltage" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.speed" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.pressure" />
-            </view>
-          </view>
-          <view class="packing-registration-param-item param-extra">
-            <view class="packing-registration-param-item-left">
-              <text class="item-one item-two">鐢熶骇閫熷害</text>
-            </view>
-            <view class="packing-registration-param-item-right">
-              <u-input
-                class="item-one item-two"
-                v-model="form.productionSpeed"
-              />
-            </view>
-          </view>
-        </view>
-      </scroll-view>
-    </view>
-  </u-modal>
+	<view>
+		<u-modal v-model="show" ref="uModal" title="" :show-cancel-button="true" @confirm="confirm" @cancel="cancel"
+			:async-close="true">
+			<view class="packing-registration-param">
+				<scroll-view scroll-y="true" style="
+            height: 100%;
+            transform: translateZ(0);
+            -webkit-font-smoothing: antialiased;
+          ">
+					<view class="packing-registration-param-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">
+								<u-input class="item-one item-two" v-model="form.outBatchNo" />
+							</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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.ifsBatchNoArr"
+                  disabled
+                />
+              </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">
+								<u-input class="item-one item-two" v-model="form.overallLength" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.proposedLocation" disabled />
+							</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">
+								<u-input class="item-one item-two" v-model="form.reelNumber" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.reelWeight" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.grossWeight" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.netWeight" disabled />
+							</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">
+                <u-input class="item-one item-two" v-model="form.waste" />
+              </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">
+								<u-input class="item-one item-two" v-model="form.name" disabled />
+							</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">
+								<u-input class="item-one item-two" v-model="form.outerDiameter" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.voltage" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.speed" />
+							</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">
+								<u-input class="item-one item-two" v-model="form.pressure" />
+							</view>
+						</view>
+						<view class="packing-registration-param-item param-extra">
+							<view class="packing-registration-param-item-left">
+								<text class="item-one item-two">鐢熶骇閫熷害</text>
+							</view>
+							<view class="packing-registration-param-item-right">
+								<u-input class="item-one item-two" v-model="form.productionSpeed" />
+							</view>
+						</view>
+					</view>
+				</scroll-view>
+			</view>
+		</u-modal>
+		<u-modal v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true"
+			@confirm="confirmTl" @cancel="cancelTl">
+			<view class="packing-registration-param">
+				<view class="packing-registration-param-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">{{
+                detailedList.ifsBatchNo
+              }}</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">{{ detailedList.partName }}</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">
+							<u-input class="item-one item-two" v-model="detailedList.suppliedQuantity" />
+						</view>
+					</view>
+				</view>
+			</view>
+		</u-modal>
+	</view>
 </template>
 
 <script>
-export default {
-  props: {
-    operationTaskList: {
-      type: Object,
-      required: true,
-      default: () => ({}),
-    },
-  },
-  data() {
-    return {
-      show: false,
-      form: {},
-      loading: false
-    };
-  },
-  methods: {
-    confirm() {
-      if (this.loading) return;
-      if (!this.form.outerDiameter) {
-        this.$u.toast("璇疯緭鍏ユ垚鍝佸寰勬祴閲忓��");
-        this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
-        return;
-      }
-      if (!this.form.voltage) {
-        this.$u.toast("璇疯緭鍏ラ��鐏數鍘�");
-        this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
-        return;
-      }
-      if (!this.form.speed) {
-        this.$u.toast("璇疯緭鍏ヨ浆閫�");
-        this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
-        return;
-      }
-      if (!this.form.pressure) {
-        this.$u.toast("璇疯緭鍏ュ閮ㄦ皵鍘�");
-        this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
-        return;
-      }
-      if (!this.form.productionSpeed) {
-        this.$u.toast("璇疯緭鍏ョ敓浜ч�熷害");
-        this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
-        return;
-      }
-      this.operationTaskList.operationTaskId = this.operationTaskList.id;
-      this.form.operationTaskId = this.operationTaskList.id;
-      this.operationTaskList.productOutputList = []; // 鍒涘缓涓�涓┖鏁扮粍
-      this.operationTaskList.productOutputList.push(this.form); // 鍚戞暟缁勪腑娣诲姞鍏冪礌
-      console.log("this.operationTaskList", this.operationTaskList);
-      this.loading = true;
-      this.$u.api.workReporting
-        .submitPDA(this.operationTaskList)
-        .then((res) => {
-          this.$emit("update");
-          this.$refs.uModal.cancel();
-        })
-        .finally(() => {
-          this.loading = false;
-          this.$refs.uModal.clearLoading();
-        });
-    },
-    cancel() {
-      this.show = false;
-      this.form = {};
-    },
-    open(val) {
-      this.show = true;
-      this.form = val.data;
-    },
-  },
-};
+	export default {
+		props: {
+			operationTaskList: {
+				type: Object,
+				required: true,
+				default: () => ({}),
+			},
+			dutyId: {
+				type: Number,
+				required: true,
+				default: "",
+			},
+		},
+		data() {
+			return {
+				showModal: false,
+				detailedList: {},
+				show: false,
+				form: {},
+				ifsBatchNo: [],
+				productInputList: [],
+				// loading: false,
+			};
+		},
+		watch: {
+			"form.grossWeight"(val) {
+				if (val === "") {
+					this.form.netWeight = "";
+				} else if (this.form.reelWeight) {
+					this.form.netWeight =
+						parseFloat(val) - parseFloat(this.form.reelWeight);
+				}
+			},
+			"form.reelWeight"(val) {
+				if (this.form.grossWeight && val) {
+					this.form.netWeight =
+						parseFloat(this.form.grossWeight) - parseFloat(val);
+				}
+			},
+		},
+		methods: {
+			confirm() {
+				// if (this.loading) return;
+				// if (!this.form.outerDiameter) {
+				//   this.$u.toast("璇疯緭鍏ユ垚鍝佸寰勬祴閲忓��");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				// if (!this.form.voltage) {
+				//   this.$u.toast("璇疯緭鍏ラ��鐏數鍘�");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				// if (!this.form.speed) {
+				//   this.$u.toast("璇疯緭鍏ヨ浆閫�");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				// if (!this.form.pressure) {
+				//   this.$u.toast("璇疯緭鍏ュ閮ㄦ皵鍘�");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				// if (!this.form.productionSpeed) {
+				//   this.$u.toast("璇疯緭鍏ョ敓浜ч�熷害");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				if (!this.form.outBatchNo) {
+					this.$u.toast("璇疯緭鍏ユ壒鍙�");
+					this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+					return;
+				}
+				if (Number(this.form.netWeight) == 0) {
+					this.$u.toast("鍑�閲嶄笉涓�0");
+					this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+					return;
+				}
+				// if (!this.form.waste) {
+				//   this.$u.toast("璇疯緭鍏ュ簾鏂�");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				// if (this.form.productInputList.length == 0) {
+				//   this.$u.toast("鎶曟枡鎵规涓嶈兘涓虹┖锛岃鎵爜鎶曟枡");
+				//   this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+				//   return;
+				// }
+				// this.operationTaskList.operationTaskId = this.operationTaskList.id;
+				// this.form.operationTaskId = this.operationTaskList.id;
+				// this.form.status = this.operationTaskList.status;
+				// this.form.Persons = this.operationTaskList.Persons;
+				// this.form.productStaffIds = this.operationTaskList.productStaffIds;
+				// this.form.productStaffs = this.operationTaskList.productStaffs;
+				// this.form.dutyRecordId = this.dutyId;
+				// this.operationTaskList.productOutputList = []; // 鍒涘缓涓�涓┖鏁扮粍
+				// this.operationTaskList.productOutputList.push(this.form); // 鍚戞暟缁勪腑娣诲姞鍏冪礌
+				// console.log("this.operationTaskList", this.operationTaskList);
+				// this.loading = true;
+				// this.$u.api.workReporting
+				//   .submitPDA(this.operationTaskList)
+				//   .then((res) => {
+				//     this.$emit("update",this.operationTaskList);
+				//     this.$refs.uModal.cancel();
+				//   })
+				//   .finally(() => {
+				//     this.loading = false;
+				//     this.$refs.uModal.clearLoading();
+				//   });
+				this.$emit("update", this.form);
+				this.$refs.uModal.clearLoading();
+				this.$refs.uModal.cancel();
+			},
+			cancel() {
+				this.show = false;
+				this.form = {};
+				this.ifsBatchNo = [];
+				this.productInputList = [];
+			},
+			cancelTl() {
+				this.showModal = false;
+				this.detailedList = {};
+			},
+			updateArray(arr, newObj) {
+				// 鏌ユ壘鏁扮粍涓槸鍚︽湁鐩稿悓鐨� id
+				let index = arr.findIndex(item => item.ifsBatchNo === newObj.ifsBatchNo);
+
+				if (index !== -1) {
+					// 濡傛灉鎵惧埌鐩稿悓 id 鐨勫璞★紝鏇挎崲鍘熸湁瀵硅薄
+					arr[index] = newObj;
+				} else {
+					// 濡傛灉娌℃湁鎵惧埌鐩稿悓 id 鐨勫璞★紝鐩存帴鎺ㄥ叆鏂板璞�
+					arr.push(newObj);
+				}
+				return arr;
+			},
+			confirmTl() {
+				let ifsBatchNoArr = [];
+				let updatedArrayList = this.updateArray(this.productInputList, this.detailedList);
+				console.log("updatedArrayList", updatedArrayList);
+				// this.productInputList.push(updatedArrayList);
+				this.$set(this.form, "productInputList", this.productInputList);
+
+				this.productInputList.forEach((item) => {
+					ifsBatchNoArr.push(item.ifsBatchNo)
+				})
+				console.log("ifsBatchNoArr", ifsBatchNoArr);
+				// this.ifsBatchNo.push(ifsBatchNoArr);
+				this.$set(this.form, "ifsBatchNoArr", ifsBatchNoArr);
+				console.log("this.form", this.form);
+				this.showModal = false;
+				this.detailedList = {};
+			},
+			open(val) {
+				this.show = true;
+				this.form = val.data;
+			},
+			// 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
+			saveForm(val) {
+				this.$u.api.cancelReporting
+					.selInputPartInfoPDA({
+						outBatchNo: val.BN,
+						partNo: val.PN,
+						moOn: this.operationTaskList.moOn,
+					})
+					.then((res) => {
+						const list = {
+							suppliedQuantity: res.data.suppliedQuantity,
+							ifsBatchNo: res.data.ifsBatchNo,
+							partNo: res.data.partNo,
+							partName: res.data.partName,
+							locationNo: res.data.locationNo,
+							ifsLineItemNo: res.data.ifsLineItemNo,
+							serialNo: res.data.serialNo,
+							engChgLevel: res.data.engChgLevel,
+							ifsWdr: res.data.waivDevRejNo,
+							activitySeq: res.data.activitySeq,
+						};
+						this.detailedList = list;
+						this.showModal = true;
+					});
+			},
+		},
+	};
 </script>
 
 <style lang="scss" scoped>
-::v-deep .u-model__title {
-  padding-top: 0 !important;
-}
+	::v-deep .u-model__title {
+		padding-top: 0 !important;
+	}
 
-::v-deep .u-input__input {
-  text-align: right !important;
-}
-.packing-registration-param {
-  padding: 40rpx 30rpx 10rpx 30rpx;
-  height: 350px;
-  overflow: hidden;
+	::v-deep .u-input__input {
+		text-align: right !important;
+	}
 
-  .packing-registration-param-title {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    margin-bottom: 30rpx;
-
-    .title-label {
-      margin-left: 14rpx;
-      font-size: 34rpx;
-      font-weight: bold;
-      color: #283e65;
-    }
-  }
-
-  .packing-registration-param-view {
-    height: 177rpx;
-    background-color: #fff;
-    border-radius: 10rpx;
-    padding: 0rpx 23rpx;
-    margin-bottom: 30rpx;
-
-    .packing-registration-param-item {
-      height: 90rpx;
-      border: 1px solid #adc8e4;
-      line-height: 90rpx;
-      display: flex;
-      justify-content: space-between;
-      border: none;
-
-      .packing-registration-param-item-left {
-        .item-one {
-          font-size: 30rpx;
-          color: #666666;
-        }
-      }
-
-      .packing-registration-param-item-right {
-        display: flex;
-        justify-content: space-between;
-
-        .item-one {
-          font-size: 15rpx;
-          color: #060505;
-          margin-right: 6rpx;
-        }
-
-        .item-two {
-          font-size: 15rpx;
-          color: #a6b4cc;
-          margin-right: 6rpx;
-        }
-
-        .item-three {
-          font-size: 30rpx;
-          color: #214ded;
-          margin-right: 6rpx;
-        }
-      }
-    }
-
-    .param-extra {
-      border-bottom: 1px solid #ededed;
-    }
-  }
-}
+	@import "../index.scss";
 </style>
\ No newline at end of file

--
Gitblit v1.9.3