From 0a3ebcfddbb20e880c3e1d7c8879e9eaf0d56c70 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 13 一月 2026 14:12:17 +0800
Subject: [PATCH] 核磅录入导体提交,计算磅差,输入格式报错修复

---
 pages/wareHouse/nuclearScale/index.vue |  306 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 226 insertions(+), 80 deletions(-)

diff --git a/pages/wareHouse/nuclearScale/index.vue b/pages/wareHouse/nuclearScale/index.vue
index 95d8801..c737de5 100644
--- a/pages/wareHouse/nuclearScale/index.vue
+++ b/pages/wareHouse/nuclearScale/index.vue
@@ -5,38 +5,38 @@
 		<u-navbar title="鏍哥褰曞叆" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
 			back-icon-color="#000" />
 		<u-form :model="form" ref="uForm" :label-width="200" :rules="rules" :error-type="['toast']" class="uForm">
-			<u-form-item label="鏍哥鍗曞彿" :border-bottom="false" prop="verificationNo">
+			<u-form-item label="鏍哥鍗曞彿" :border-bottom="false" prop="verificationNo" style="font-size: small">
 				<u-input v-model="form.verificationNo" type="select" placeholder="璇烽�夋嫨鏍哥鍗曞彿" @click="openList" />
 			</u-form-item>
-			<u-form-item label="浜у搧绫诲瀷" :border-bottom="false" prop="productType">
+			<u-form-item label="浜у搧绫诲瀷" :border-bottom="false" prop="productType" style="font-size: small">
 				<u-input v-model="productTypeMap[form.productType] || form.productType" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="杞︾墝鍙�" :border-bottom="false" prop="licensePlate">
+			<u-form-item label="杞︾墝鍙�" :border-bottom="false" prop="licensePlate" style="font-size: small">
 				<u-input v-model="form.licensePlate" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="鍙戣揣閫氱煡鍗�1" :border-bottom="false" prop="shippingNoticeNo1">
+			<u-form-item label="鍙戣揣閫氱煡鍗�1" :border-bottom="false" prop="shippingNoticeNo1" style="font-size: small">
 				<u-input v-model="form.shippingNoticeNo1" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="瀹㈡埛鍚嶇О1" :border-bottom="false" prop="customerName1">
+			<u-form-item label="瀹㈡埛鍚嶇О1" :border-bottom="false" prop="customerName1" style="font-size: small">
 				<u-input v-model="form.customerName1" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="鍙戣揣閫氱煡鍗�2" :border-bottom="false" prop="shippingNoticeNo2">
+			<u-form-item label="鍙戣揣閫氱煡鍗�2" :border-bottom="false" prop="shippingNoticeNo2" style="font-size: small">
 				<u-input v-model="form.shippingNoticeNo2" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="瀹㈡埛鍚嶇О2" :border-bottom="false" prop="customerName2">
+			<u-form-item label="瀹㈡埛鍚嶇О2" :border-bottom="false" prop="customerName2" style="font-size: small">
 				<u-input v-model="form.customerName2" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="鍙哥鍛�" :border-bottom="false" prop="weighingOperator">
+			<u-form-item label="鍙哥鍛�" :border-bottom="false" prop="weighingOperator" style="font-size: small">
 				<u-input v-model="form.weighingOperator" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="鍙夎溅鍙告満" :border-bottom="false" prop="forkliftOperator">
+			<u-form-item label="鍙夎溅鍙告満" :border-bottom="false" prop="forkliftOperator" style="font-size: small">
 				<u-input v-model="form.forkliftOperator" placeholder="" disabled />
 			</u-form-item>
-			<u-form-item label="鏍哥璁板綍" :border-bottom="false" prop="value8">
+			<u-form-item label="鏍哥璁板綍" :border-bottom="false" prop="value8" style="font-size: small">
 				<u-input type="select" placeholder="" @click="openNuclearScaleRecord" />
 			</u-form-item>
 			<u-form-item :label="`鎵爜璁板綍(${ScanCodeRecord.length}鏉�)锛歚" :border-bottom="false" prop="shippingNoticeNo1"
-				:label-width="260">
+				:label-width="260" style="font-size: small">
 			</u-form-item>
 		</u-form>
 		<view class="wrap">
@@ -45,7 +45,9 @@
 					<view class="content" v-for="(item, index) in ScanCodeRecord" :key="index" :index="index"
 						@click="cancelReport(item)">
 						<view class="content-header">
-							<view class="content-header-title">{{ index + 1 }}</view>
+							<view class="content-header-title">{{
+                ScanCodeRecord.length - index
+              }}</view>
 						</view>
 						<view class="content-body">
 							<view class="row-list">
@@ -61,7 +63,7 @@
 									<view class="_label-name">闆朵欢鎻忚堪锛�</view>
 								</view>
 								<view class="_content">
-									{{ item.netWeight }}
+									{{ item.partName }}
 								</view>
 							</view>
 							<view class="row-list">
@@ -85,7 +87,7 @@
 									<view class="_label-name">鐩橀噸锛�</view>
 								</view>
 								<view class="_content">
-									{{ item.trayWeight }}
+									{{ item.tareWeight }}
 								</view>
 							</view>
 							<view class="row-list">
@@ -101,35 +103,52 @@
 				</u-cell-group>
 			</scroll-view>
 		</view>
-		<!-- 瀵间綋 -->
+		<!-- 閾滄潌 -->
 		<u-modal v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true"
 			@confirm="confirmDt" @cancel="cancelDt">
 			<view class="popup-content">
 				<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 style=" min-width: 80px;">
+								<text style="font-size:16px">鏍哥閲嶉噺锛�</text>
 							</view>
 							<view class="packing-registration-param-item-right">
-								<u-input class="item-one item-two" v-model="modalList.suppliedQuantity" />
+								<u-input  v-model="modalList.verificationWeight" :custom-style="{
+                fontSize: '16px',
+                height: '40px',
+                lineHeight: '40px'
+              }" :input-style="{
+                fontSize: '16px',
+                height: '40px',
+                lineHeight: '40px'
+              }" />
 							</view>
 						</view>
 						<view class="packing-registration-param-item param-extra">
-							<view class="packing-registration-param-item-left">
-								<text class="item-one">鍙夎溅鐩橀噸锛�</text>
+							<view style=" min-width: 80px;">
+								<text style="font-size:16px">鍙夎溅鐩橀噸锛�</text>
 							</view>
 							<view class="packing-registration-param-item-right">
-								<u-input class="item-one item-two" v-model="modalList.suppliedQuantity" />
+								<u-input v-model="modalList.forkliftWeight" :custom-style="{
+                fontSize: '16px',
+                height: '40px',
+                lineHeight: '40px'
+              }" :input-style="{
+                fontSize: '16px',
+                height: '40px',
+                lineHeight: '40px'
+              }" />
 							</view>
 						</view>
 					</view>
 				</view>
 			</view>
 		</u-modal>
-		<u-button type="primary" class="bottom-button" @click="submit">鎻愪氦</u-button>
+		<u-button type="primary" class="bottom-button" @click="submit" :disabled="ScanCodeRecord.length == 0"
+			v-show="form.productType != 'TG01'">鎻愪氦</u-button>
 		<u-modal v-model="show" @confirm="confirm" content="鏄惁纭鎻愪氦" show-cancel-button></u-modal>
-		<saveForm ref="saveForm" :operationTaskList="this.form" @update="handleUpdate" />
+		<saveForm ref="saveForm" :operationTaskList="form" @update="handleUpdate" />
 		<scan></scan>
 	</div>
 </template>
@@ -145,12 +164,13 @@
 		},
 		data() {
 			return {
+				commitList: [],
 				modalList: {},
 				showModal: false,
 				productTypeMap: {
-					1: "瀵间綋",
-					2: "閾滄潌",
-					3: "瀵间綋2.6",
+					DTO1: "瀵间綋",
+					TG01: "閾滄潌",
+					DT02: "瀵间綋2.6",
 				},
 				ScanCodeRecord: [],
 				background: {
@@ -160,19 +180,7 @@
 					backgroundRepeat: "no-repeat",
 				},
 				show: false,
-				form: {
-					value0: "",
-					verificationNo: "",
-					productType: "",
-					licensePlate: "",
-					shippingNoticeNo1: "",
-					customerName1: "",
-					weighingOperator: "",
-					forkliftOperator: "",
-					value8: "",
-					shippingNoticeNo2: "",
-					customerName2: "",
-				},
+				form: {},
 				rules: {
 					verificationNo: [{
 						required: true,
@@ -201,85 +209,221 @@
 				//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
 				console.log("椤甸潰鎵爜缁撴灉锛�", data.code);
 				if (data.code) {
-					try {
-						let codeInfo = JSON.parse(data.code);
-					} catch (e) {
+					let codeInfo = JSON.parse(data.code);
+
+					// 娣诲姞閲嶅鎵爜妫�鏌�
+					const batchNo = codeInfo.BN;
+					const isDuplicate = that.ScanCodeRecord.some(
+						(item) => item.outBatchNo === batchNo
+					);
+
+					if (isDuplicate) {
 						uni.showToast({
 							icon: "none",
-							title: "鎵爜鏁版嵁瑙f瀽澶辫触锛岃閲嶈瘯锛�",
+							title: "璇峰嬁閲嶅鎵爜锛�",
 							duration: 2 * 1000,
 						});
 						return;
 					}
-					if (codeInfo.CN != that.form.customerName1) {
-						// 鎵弿鎶ュ伐鍗曚簩缁寸爜
-						uni.showModal({
-							title: "鎻愮ず",
-							content: "瀹㈡埛涓嶄竴鑷达細" +
-								codeInfo.CN +
-								"||" +
-								that.form.customerName1,
-							showCancel: true,
-							success: function() {
-								if (that.form.productType == "2") {
-									that.$refs.saveForm.open(codeInfo);
-								} else {
-									that.ScanCodeRecord.push(codeInfo);
-								}
-							},
-						});
+
+					let ScanCodeRecordList = {
+						outBatchNo: codeInfo.BN,
+						netWeight: codeInfo.NW,
+						tareWeight: codeInfo.TR, // 鐨噸
+						partNo: codeInfo.PN,
+						grossWeight: codeInfo.TW,
+						partName: codeInfo.ST,
+						originalLength: codeInfo.LN, // 闀垮害
+						palletNo: codeInfo.PNO, // 鐩樺彿
+						waivDevRejNo: codeInfo.WDR ? codeInfo.WDR : "*", // wdr鍙�
+						productType: that.form.productType,
+					};
+					if (that.form.productType == "TG01") {
+						that.$refs.saveForm.open(ScanCodeRecordList);
 					} else {
-						if (that.form.productType == "2") {
-							that.$refs.saveForm.open(codeInfo);
-						} else {
-							that.ScanCodeRecord.push(codeInfo);
+						if (that.form.workshop == "ZF01") {
+							that.$refs.saveForm.open(ScanCodeRecordList);
 						}
+						that.queryCustomName(codeInfo, ScanCodeRecordList);
 					}
 				}
 			});
 		},
 		methods: {
+			queryCustomName(codeInfo, ScanCodeRecordList) {
+				// 鏌ヨ瀹㈡埛鍚嶇О
+				this.$u.api.NuclearScaleEntry.queryCustomName({
+					BN: codeInfo.BN,
+				}).then((res) => {
+					console.log("瀹㈡埛鍚嶇О锛�", res);
+					if (res.data != this.form.customerName1) {
+						let that = this;
+						// 鎵弿鎶ュ伐鍗曚簩缁寸爜
+						uni.showModal({
+							title: "鎻愮ず",
+							content: "瀹㈡埛涓嶄竴鑷达細" + res.data + " || " + that.form.customerName1,
+							showCancel: true,
+							success: function(res) {
+								if (res.confirm) {
+									that.ScanCodeRecord.unshift(ScanCodeRecordList);
+								} else if (res.cancel) {
+									return;
+								}
+							},
+						});
+					} else {
+						this.ScanCodeRecord.unshift(ScanCodeRecordList);
+					}
+				});
+			},
 			// 鍙栨秷鎵爜璁板綍
 			cancelReport(item) {
-				this.ScanCodeRecord = this.ScanCodeRecord.filter(a => a.outBatchNo !== item.outBatchNo);
+				let that = this;
+				uni.showModal({
+					title: "鎻愮ず",
+					content: "鏄惁纭鍙栨秷閫変腑椤�",
+					success: function(res) {
+						if (res.confirm) {
+							that.ScanCodeRecord = that.ScanCodeRecord.filter(
+								(a) => a.outBatchNo !== item.outBatchNo
+							);
+						} else if (res.cancel) {
+							return;
+						}
+					},
+				});
 			},
 			// 瀵间綋鎻愪氦
 			confirmDt() {
-				      const magnetic =
-        Number(this.form.h) - Number(this.form.children) - Number(this.form.m);
-				console.log("淇濆瓨", this.form.verificationNo);
+				// 璁$畻grossWeight鎬诲拰
+				let grossWeightSum = 0;
+				// 纭繚ScanCodeRecord鏄暟缁�
+				if (Array.isArray(this.ScanCodeRecord)) {
+					this.ScanCodeRecord.forEach((item) => {
+						grossWeightSum += Number(item.grossWeight) || 0;
+					});
+				}
+				// 浣跨敤姝g‘鐨勫瓧娈靛悕suppliedQuantity锛岃�屼笉鏄痸oltage
+				const magnetic = (
+					Number(this.modalList.verificationWeight) -
+					Number(this.modalList.forkliftWeight) -
+					grossWeightSum
+				).toFixed(1);
+				this.form.verificationWeight = this.modalList.verificationWeight;
+				this.form.forkliftWeight = this.modalList.forkliftWeight;
 				switch (this.form.productType) {
-					case "瀵间綋":
-						if (magnetic > 0 && magnetic < 3) {
-							this.ScanCodeRecord.push(this.form);
+					case "DT01":
+						if (Number(magnetic) >= -3 && Number(magnetic) <= 3) {
+							let that = this;
+							uni.showModal({
+								title: "鎻愮ず",
+								content: "纾呭樊:" + magnetic + "锛屾槸鍚︾‘璁ゆ彁浜わ紵",
+								success: function(res) {
+									if (res.confirm) {
+										that.allSubmit();
+									} else if (res.cancel) {
+										return;
+									}
+								},
+							});
 						} else {
-							this.$u.toast("鐢熶骇鏍告煡");
+							this.$u.toast("纾呭樊:" + magnetic + "锛岃杞﹂棿鏍告煡");
 						}
 						break;
-					case "瀵间綋2.6":
-						if (magnetic > -0.5 && magnetic < 0.5) {
-							this.ScanCodeRecord.push(this.form);
+					case "DT02":
+						if (Number(magnetic) >= -0.5 && Number(magnetic) <= 0.5) {
+							// this.ScanCodeRecord.push(this.form);
+							this.allSubmit();
 						} else {
-							this.$u.toast("鐢熶骇鏍告煡");
+							this.$u.toast("纾呭樊:" + magnetic + "锛岃杞﹂棿鏍告煡");
 						}
 						break;
 				}
 			},
+			allSubmit() {
+				console.log("杩涙潵浜�", this.ScanCodeRecord);
+				this.ScanCodeRecord.forEach((item) => {
+					item.batchNo = item.outBatchNo;
+				});
+				this.form = {
+					...this.form,
+					weighingVerificationList: this.ScanCodeRecord,
+					verificationWeight: this.modalList.verificationWeight,
+					forkliftWeight: this.modalList.forkliftWeight,
+				};
+				console.log("11111111111", this.form);
+				// 澶勭悊鎻愪氦閫昏緫
+				this.$u.api.NuclearScaleEntry.createDetail(this.form)
+					.then((res) => {
+						this.$u.toast("鎻愪氦鎴愬姛");
+						this.ScanCodeRecord = [];
+						// if (this.form.productTypeMap == "DT01") {
+						this.modalList = {
+							verificationWeight: "",
+							// };
+						};
+					})
+					.catch((err) => {
+						console.log("err", err);
+						// uni.hideLoading();
+						uni.showModal({
+							title: "鎻愮ず",
+							content: err.message || "缃戠粶寮傚父锛岃閲嶈瘯",
+							showCancel: true,
+							success: function(res) {},
+						});
+					});
+			},
+
 			// 鍙栨秷
 			cancelDt() {
 				this.showModal = false;
 			},
 			handleUpdate(Obj) {
-				this.ScanCodeRecord.push(Obj);
+				Obj.batchNo = Obj.outBatchNo;
+				this.form = {
+					...this.form,
+					weighingVerificationList: [Obj],
+					verificationWeight: Obj.verificationWeight,
+					forkliftWeight: Obj.forkliftWeight,
+				};
+				console.log("11111111111", this.form);
+				// 澶勭悊鎻愪氦閫昏緫
+				this.$u.api.NuclearScaleEntry.createDetail(this.form)
+					.then((res) => {
+						this.$u.toast("鎻愪氦鎴愬姛");
+						this.ScanCodeRecord = [];
+						// this.ScanCodeRecord.unshift(Obj);
+						this.$refs.saveForm.cancel();
+					})
+					.catch((err) => {
+						uni.hideLoading();
+						this.$refs.saveForm.cancel();
+						uni.showModal({
+							title: "鎻愮ず",
+							content: err.message || "缃戠粶寮傚父锛岃閲嶈瘯",
+							showCancel: true,
+							success: function(res) {},
+						});
+					});
 			},
 			// 鎻愪氦鎸夐挳
 			submit() {
-				this.showModal = true;
+				if (this.form.productType != "TG01") {
+					this.modalList = {
+						verificationWeight: "",
+						forkliftWeight: this.form.productType == "DT01" ? "" : 0,
+					};
+					this.showModal = true;
+				} else {
+					this.allSubmit();
+				}
 			},
 			// 寮规淇濆瓨
 			confirm() {
 				console.log("淇濆瓨", this.form.verificationNo);
 				// 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+				// this.allSubmit();
 			},
 			// 閫夋嫨璁㈠崟鍙�
 			openList() {
@@ -289,7 +433,7 @@
 			},
 			//鏍哥璁板綍
 			openNuclearScaleRecord() {
-				if (this.form.verificationNo == "") {
+				if (!this.form.verificationNo) {
 					uni.showToast({
 						icon: "none",
 						title: "璇峰厛閫夋嫨鏍哥鍗曞彿锛�",
@@ -298,12 +442,14 @@
 					return;
 				}
 				uni.navigateTo({
-					url: "/pages/wareHouse/nuclearScale/nuclearscalerecord",
+					url: "/pages/wareHouse/nuclearScale/nuclearscalerecord?verificationNo=" +
+						encodeURIComponent(JSON.stringify(this.form.verificationNo)),
 				});
 			},
 			// 瀛樿鍗曞彿
 			setNo(val) {
 				this.form = val;
+				this.ScanCodeRecord = [];
 			},
 			// 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
 			// saveForm(val) {

--
Gitblit v1.9.3