From 9ae2c0863a9e0a7bed5e00faf008160a2791f16a Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 31 十二月 2025 09:40:05 +0800
Subject: [PATCH] Pda盘点报告盘点页面开发,功能逻辑梳理,逻辑编写,接口测试联调,Pda版本号更改

---
 pages/wareHouse/inventory/index.vue | 1097 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 672 insertions(+), 425 deletions(-)

diff --git a/pages/wareHouse/inventory/index.vue b/pages/wareHouse/inventory/index.vue
index 7fea53e..08944a5 100644
--- a/pages/wareHouse/inventory/index.vue
+++ b/pages/wareHouse/inventory/index.vue
@@ -1,471 +1,718 @@
 <template>
-	<view class="page">
-		<view class="packing-registration-bg" />
-		<u-navbar title="鐩樼偣鎶ュ憡鐩樼偣" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
-			back-icon-color="#000" />
-		<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" @click="seachPersonnelNo()">{{ registerInfo.value1 == '' ?
-							"鐐瑰嚮閫夋嫨" : registerInfo.value1}}</text>
-						<u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()"
-							v-show="registerInfo.value1 == ''"></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">{{ registerInfo.value2 }}</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">
-						<view class="item-one item-two" @click="openPN()">
-							<text>{{ registerInfo.value2 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value2 }}</text>
-						</view>
-						<u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value2 == ''"></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" @click="openBatch()">
-						<text class="item-one item-two">{{ registerInfo.value3 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value3 }}</text>
-						<u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value3 == ''"></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" @click="openLocation()">
-						<view class="item-one item-two">
-							<text>{{ registerInfo.value4 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value4 }}</text>
-						</view>
-						<u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value4 == ''"></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" @click="openPhysicalInventory()">
-						<view class="item-one item-two">
-							<text>{{ registerInfo.value5 == '' ? "鐐瑰嚮杈撳叆" : registerInfo.value5 }}</text>
-						</view>
-						<u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value4 == ''"></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>
-			</view>
-		</view>
-		<view class="wrap">
-			<scroll-view class="packing-registration-scroll-list" scroll-y="true">
-				<u-cell-group class="packing-registration-scroll-list-group" :border="false">
-					<!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-璇锋壂鐮�-</div> -->
-					<view class="content" v-for="(x, index) in hasScanSnList" :key="index" :index="index">
-						<view class="row-list">
-							<view class="row-list-left">
-								<view class="num-icon" style="color: #fff;">{{ index + 1 }}</view>
-								<view style="margin-left: 30rpx;">{{ x }}</view>
-							</view>
-						</view>
-					</view>
-				</u-cell-group>
-			</scroll-view>
-			<view class="registration-form-footer">
-				<u-button class="btn" type="primary" @click="goSubmit">鎻愪氦</u-button>
-			</view>
-			<scan></scan>
-			<!-- 闆朵欢鍙� -->
-			<modalBg ref="openPN" :confirm="confirmPN">
-				<u-field v-model="registerInfo.value2" label="闆朵欢鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
-				</u-field>
-			</modalBg>
-			<!-- 鎵规鍙� -->
-			<modalBg ref="openBatch" :confirm="confirmBatch">
-				<u-field v-model="registerInfo.value3" label="鎵规鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
-				</u-field>
-			</modalBg>
-			<!-- 搴撲綅鍙� -->
-			<modalBg ref="openLocation" :confirm="confirmLocation">
-				<u-field v-model="registerInfo.value4" label="搴撲綅鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
-				</u-field>
-			</modalBg>
-			<!-- 鐩樼偣鏁伴噺 -->
-			<modalBg ref="openPhysicalInventory" :confirm="confirmPhysicalInventory">
-				<u-field v-model="registerInfo.value5" label="鐩樼偣鏁伴噺锛�" placeholder="璇疯緭鍏�" :border-bottom="false">
-				</u-field>
-			</modalBg>
-		</view>
-	</view>
+  <view class="page">
+    <view class="packing-registration-bg" />
+    <u-navbar
+      title="搴撳瓨鐩樼偣"
+      :background="background"
+      :border-bottom="false"
+      :title-bold="true"
+      title-color="#000"
+      back-icon-color="#000"
+    >
+      <template #right>
+        <text
+          style="font-size: 14px; margin-right: 14px; font-weight: bold"
+          @click="goSubmit"
+          >鎻愪氦</text
+        >
+      </template>
+    </u-navbar>
+    <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" @click="seaRchPersonnelNo()">{{
+              registerInfo.invListNo == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.invListNo
+            }}</text>
+            <u-icon
+              name="arrow-right"
+              color="#687792"
+              size="28"
+              @click="seaRchPersonnelNo()"
+              v-show="registerInfo.invListNo == ''"
+            ></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">{{
+              registerInfo.warehouseId
+            }}</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">
+            <view class="item-one item-two" @click="openPN()">
+              <text>{{
+                registerInfo.partNo == "" ? "鐐瑰嚮杈撳叆" : registerInfo.partNo
+              }}</text>
+            </view>
+            <u-icon
+              name="arrow-right"
+              color="#687792"
+              size="28"
+              v-show="registerInfo.partNo == ''"
+            ></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"
+            @click="openBatch()"
+          >
+            <text class="item-one item-two">{{
+              registerInfo.ifsBatchNo == ""
+                ? "鐐瑰嚮杈撳叆"
+                : registerInfo.ifsBatchNo
+            }}</text>
+            <u-icon
+              name="arrow-right"
+              color="#687792"
+              size="28"
+              v-show="registerInfo.ifsBatchNo == ''"
+            ></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"
+            @click="openLocation()"
+          >
+            <view class="item-one item-two">
+              <text>{{
+                registerInfo.locationNo == ""
+                  ? "鐐瑰嚮杈撳叆"
+                  : registerInfo.locationNo
+              }}</text>
+            </view>
+            <u-icon
+              name="arrow-right"
+              color="#687792"
+              size="28"
+              v-show="registerInfo.locationNo == ''"
+            ></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"
+            @click="openPhysicalInventory()"
+          >
+            <view class="item-one item-two">
+              <text>{{
+                registerInfo.qtyAvailable == ""
+                  ? "鐐瑰嚮杈撳叆"
+                  : registerInfo.qtyAvailable
+              }}</text>
+            </view>
+            <u-icon
+              name="arrow-right"
+              color="#687792"
+              size="28"
+              v-show="registerInfo.qtyAvailable == ''"
+            ></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>
+      </view>
+    </view>
+    <view class="wrap">
+      <scroll-view class="packing-registration-scroll-list" scroll-y="true">
+        <u-cell-group
+          class="packing-registration-scroll-list-group"
+          :border="false"
+        >
+          <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-璇锋壂鐮�-</div> -->
+          <view
+            class="content"
+            v-for="(item, index) in hasScanSnList"
+            :key="index"
+            :index="index"
+          >
+            <view class="content-header">
+              <view class="content-header-title">{{
+                hasScanSnList.length - index
+              }}</view>
+            </view>
+            <view class="content-body">
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-name">闆朵欢鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.partNo }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-name">鎵规鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.ifsBatchNo }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-name">搴撲綅鍙凤細</view>
+                </view>
+                <view class="_content">
+                  {{ item.locationNo }}
+                </view>
+              </view>
+              <view class="row-list">
+                <view class="_label">
+                  <view class="_label-name">鐩樼偣鏁伴噺锛�</view>
+                </view>
+                <view class="_content">
+                  {{ item.qtyAvailable }}
+                </view>
+              </view>
+            </view>
+          </view>
+        </u-cell-group>
+      </scroll-view>
+      <scan></scan>
+      <!-- 闆朵欢鍙� -->
+      <modalBg ref="openPN" :confirm="confirmPN">
+        <u-field
+          v-model="registerInfo.partNo"
+          label="闆朵欢鍙凤細"
+          placeholder="璇疯緭鍏�"
+          :border-bottom="false"
+        >
+        </u-field>
+      </modalBg>
+      <!-- 鎵规鍙� -->
+      <modalBg ref="openBatch" :confirm="confirmBatch">
+        <u-field
+          v-model="registerInfo.ifsBatchNo"
+          label="鎵规鍙凤細"
+          placeholder="璇疯緭鍏�"
+          :border-bottom="false"
+        >
+        </u-field>
+      </modalBg>
+      <!-- 搴撲綅鍙� -->
+      <modalBg ref="openLocation" :confirm="confirmLocation">
+        <u-field
+          v-model="registerInfo.locationNo"
+          label="搴撲綅鍙凤細"
+          placeholder="璇疯緭鍏�"
+          :border-bottom="false"
+        >
+        </u-field>
+      </modalBg>
+      <!-- 鐩樼偣鏁伴噺 -->
+      <modalBg ref="openPhysicalInventory" :confirm="confirmPhysicalInventory">
+        <u-field
+          v-model="registerInfo.qtyAvailable"
+          label="鐩樼偣鏁伴噺锛�"
+          label-width="140"
+          placeholder="璇疯緭鍏�"
+          :border-bottom="false"
+        >
+        </u-field>
+      </modalBg>
+    </view>
+  </view>
 </template>
 <script>
-import modalBg from '@/components/modal/modal-bg.vue'
+import modalBg from "@/components/modal/modal-bg.vue";
 import scan from "@/components/scan/scan.vue";
-import content_bg from '@/static/custom/packing/backBg.png'
+import content_bg from "@/static/custom/packing/backBg.png";
 export default {
-	components: {
-		scan,
-		modalBg
-	},
-	data() {
-		return {
-			background: {
-				backgroundImage: `url(${content_bg})`,
-				backgroundAttachment: 'fixed',
-				backgroundSize: '100% auto',
-				backgroundRepeat: 'no-repeat',
-			},
-			labelStyle: {
-				fontSize: '32rpx',
-				whiteSpace: 'nowrap'
-			},
-			registerInfo: {
-				value1: '',
-				value2: '',
-				value3: '',
-				value4: '',
-				value5: ''
-			},
-			hasScanSnList: [],
-			delContent: null,
-			staffList: [],
-		};
-	},
-	onLoad(option) { },
-	onShow() {
+  components: {
+    scan,
+    modalBg,
+  },
+  data() {
+    return {
+      background: {
+        backgroundImage: `url(${content_bg})`,
+        backgroundAttachment: "fixed",
+        backgroundSize: "100% auto",
+        backgroundRepeat: "no-repeat",
+      },
+      labelStyle: {
+        fontSize: "32rpx",
+        whiteSpace: "nowrap",
+      },
+      registerInfo: {
+        invListNo: "",
+        warehouseId: "",
+        partNo: "",
+        ifsBatchNo: "",
+        locationNo: "",
+        qtyAvailable: "",
+      },
+      hasScanSnList: [],
+      delContent: null,
+      staffList: [],
+      submitList: {},
+      scanHandleList: {},
+    };
+  },
+  onLoad(option) {},
+  onShow() {
+    let that = this;
 
-		let that = this
+    uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
 
-		uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
-		uni.$on('scan', function (data) {
-			console.log('onscan');
-			//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-			console.log('鎵爜缁撴灉锛�', data.code);
-			that.scanHandle(data.code)
-			that.$forceUpdate();
+    uni.$on("scan", function (data) {
+      if (that.registerInfo.invListNo == "") {
+        uni.showToast({
+          title: "璇峰厛閫夋嫨鐩樼偣鎶ュ憡鍙�",
+          icon: "none",
+        });
+        return;
+      }
+      console.log("onscan");
+      //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+      console.log("鎵爜缁撴灉锛�", data.code);
+      if (data.code) {
+        let codeInfo = JSON.parse(data.code);
+        // if (codeInfo.BN) {
+        // 鎵弿鎶ュ伐鍗曚簩缁寸爜
+        that.scanHandleList = codeInfo;
+        that.scanHandle(codeInfo);
+        // that.$forceUpdate();
+        // }
+      }
+    });
+  },
+  //   onNavigationBarButtonTap() {
+  //     this.goScan();
+  //   },
+  onReady() {},
+  methods: {
+    //闆朵欢鍙�
+    openPN() {
+      this.$refs.openPN.open();
+    },
+    // 寮规淇濆瓨
+    confirmPN() {
+      console.log("淇濆瓨", this.registerInfo.partNo);
+      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+    },
+    //鎵规鍙�
+    openBatch() {
+      this.$refs.openBatch.open();
+    },
+    // 寮规淇濆瓨
+    confirmBatch() {
+      console.log("淇濆瓨", this.registerInfo.ifsBatchNo);
+      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+    },
+    //搴撲綅鍙�
+    openLocation() {
+      this.$refs.openLocation.open();
+    },
+    // 寮规淇濆瓨
+    confirmLocation() {
+      console.log("淇濆瓨", this.registerInfo.locationNo);
+      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+    },
+    //鐩樼偣鏁伴噺
+    openPhysicalInventory() {
+      this.$refs.openPhysicalInventory.open();
+    },
+    // 寮规淇濆瓨
+    confirmPhysicalInventory() {
+      console.log("淇濆瓨", this.registerInfo.qtyAvailable);
+      // this.registerInfo.qtyAvailable = Number(this.registerInfo.qtyAvailable);
+      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
+    },
 
-		})
-	},
-	onNavigationBarButtonTap() {
-		this.goScan()
-	},
-	onReady() { },
-	methods: {
-		//闆朵欢鍙�
-		openPN() {
-			this.$refs.openPN.open();
-		},
-		// 寮规淇濆瓨
-		confirmPN() {
-			console.log('淇濆瓨', this.registerInfo.value2);
-			// 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-		},
-		//鎵规鍙�
-		openBatch() {
-			this.$refs.openBatch.openBatch();
-		},
-		// 寮规淇濆瓨
-		confirmBatch() {
-			console.log('淇濆瓨', this.registerInfo.value3);
-			// 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-		},
-		//搴撲綅鍙�
-		openLocation() {
-			this.$refs.openLocation.open();
-		},
-		// 寮规淇濆瓨
-		confirmLocation() {
-			console.log('淇濆瓨', this.registerInfo.value4);
-			// 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-		},
-		//鐩樼偣鏁伴噺
-		openPhysicalInventory() {
-			this.$refs.openPhysicalInventory.open();
-		},
-		// 寮规淇濆瓨
-		confirmPhysicalInventory() {
-			console.log('淇濆瓨', this.registerInfo.value5);
-			// 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-		},
+    setNo(val) {
+      console.log("val", val);
+      this.registerInfo.invListNo = val.INV_LIST_NO;
+      this.registerInfo.warehouseId = val.WAREHOUSE_ID;
+    },
+    //鐩樼偣鎶ュ憡鍙�
+    seaRchPersonnelNo() {
+      uni.navigateTo({
+        url: "/pages/wareHouse/inventory/orderList",
+      });
+    },
+    scanHandle(val) {
+      this.submitList = {};
+      const { PN, BN, NW } = val;
+      this.$u.api.shiftingParking
+        .selPartInfoPDA({ outBatchNo: BN })
+        .then((res) => {
+          console.log("res", res);
+          this.submitList = res.data;
+          // 妫�鏌ユ槸鍚﹀凡鐩樼偣
+          if (this.hasScanSnList && this.hasScanSnList.length > 0) {
+            // 鏌ユ壘鏄惁宸插瓨鍦ㄧ浉鍚岀殑 ifsBatchNo
+            const isAlreadyScanned = this.hasScanSnList.some(
+              (item) => item.ifsBatchNo === this.submitList.ifsBatchNo
+            );
 
-		setNo(val) {
-			console.log('11111', val)
-			this.registerInfo = val
-		},
-		//鐩樼偣鎶ュ憡鍙�
-		seachPersonnelNo() {
-			console.log('11111')
-			uni.navigateTo({
-				url: '/pages/wareHouse/inventory/orderList'
-			})
-		},
-		goScan() {
-			uni.scanCode({
-				scanType: ['qrCode'],
-				success: res => {
-					try {
-						console.log('鎵爜缁撴灉锛�', res);
-						this.scanHandle(res.result)
-					} catch (e) { }
-				}
-			});
-		},
-		scanHandle(scanresult) {
-			scanresult = scanresult.replace(/[\r\n]/g, "")
-			if (scanresult.indexOf('{') > -1) {
-				//浜岀淮鐮�
-				const result = JSON.parse(scanresult)
-				//澧炲姞SN鏍¢獙
-				if (result.sn_no && result.sn_no != null && result.sn_no != '') {
-					if (this.hasScanSnList.length > 0) {
-						let hasScanSnIndex = this.hasScanSnList.indexOf(result.sn_no)
-						if (hasScanSnIndex < 0) {
-							this.hasScanSnList.push(result.sn_no)
-						} else {
-							this.$u.toast('璇峰嬁閲嶅鎵弿')
-						}
-					} else {
-						this.hasScanSnList.push(result.sn_no)
-					}
-				}
+            if (isAlreadyScanned) {
+              uni.showModal({
+                title: "鎻愮ず",
+                content: "褰撳墠搴撳瓨宸茬洏鐐癸紝璇峰嬁閲嶅鐩樼偣",
+                showCancel: false,
+                confirmText: "纭畾",
+              });
+              return;
+            }
+          }
+          this.registerInfo = {
+            ...this.registerInfo,
+            partNo: this.submitList.partNo,
+            ifsBatchNo: this.submitList.ifsBatchNo,
+            // locationNo: this.registerInfo.locationNo,
+            qtyAvailable: this.submitList.qtyAvailable,
+          };
 
-			} else {
-				//澧炲姞SN鏍¢獙
-				if (this.hasScanSnList.length > 0) {
-					let hasScanSnIndex = this.hasScanSnList.indexOf(scanresult)
-					if (hasScanSnIndex < 0) {
-						this.hasScanSnList.push(scanresult)
-					} else {
-						this.$u.toast('璇峰嬁閲嶅鎵弿')
-					}
-				} else {
-					this.hasScanSnList.push(scanresult)
-				}
-			}
-		},
-		goSubmit() {
-			// if (this.registerInfo.shiftId == null || this.registerInfo.shiftId == '') {
-			// 	this.$u.toast('璇烽�夋嫨鐝')
-			// 	return
-			// }
-			// if (this.registerInfo.value3 == null || this.registerInfo.value3 == '') {
-			// 	this.$u.toast('璇烽�夋嫨鏃ユ湡')
-			// 	return
-			// }
-			// if (this.registerInfo.locNo == null || this.registerInfo.locNo == '') {
-			// 	this.$u.toast('璇烽�夋嫨鍖呰搴撲綅')
-			// 	return
-			// }
-			// if (this.hasScanSnList.length == 0) {
-			// 	this.$u.toast('鏃犲緟鎻愪氦鐨凷N鍙锋槑缁�')
-			// 	return
-			// }
-			// let registrList = []
-			// this.staffList = []
-			// this.staffNameList.forEach((item) => {
-			// 	this.staffList.push({
-			// 		staffId: item.id
-			// 	})
-			// })
-			// this.hasScanSnList.forEach((item) => {
-			// 	registrList.push({
-			// 		shiftId: this.registerInfo.shiftId,
-			// 		value3: this.registerInfo.value3,
-			// 		locNo: this.registerInfo.locNo,
-			// 		partBatchNo: item,
-			// 		staffList: this.staffList
-			// 	})
-			// })
-			// this.$u.api.pigxPacking.addPackageRegister(registrList).then(res => {
-			// 	let resData = res.data
-			// 	this.hasScanSnList = []
-			// 	this.$u.toast('鎻愪氦鎴愬姛')
-			// }).catch((e) => {
-			// })
+          this.goSubmit();
+        })
+        .catch((err) => {
+          console.log("err", err);
+          uni.showModal({
+            title: "鎻愮ず",
+            content: err.message || "缃戠粶寮傚父锛岃閲嶈瘯",
+            showCancel: true,
+            success: function (res) {},
+          });
+          return;
+        });
+    },
+    getDifferentFields(obj1, obj2, mapping) {
+      const differences = {};
 
-		},
-	}
+      for (const [key1, mapRule] of Object.entries(mapping)) {
+        let value2;
+
+        if (typeof mapRule === "string") {
+          value2 = obj2[mapRule];
+        } else if (
+          mapRule &&
+          typeof mapRule === "object" &&
+          "fixed" in mapRule
+        ) {
+          value2 = mapRule.fixed;
+        } else {
+          continue;
+        }
+
+        if (obj1[key1] !== value2) {
+          differences[key1] = {
+            value1: obj1[key1],
+            value2,
+          };
+        }
+      }
+
+      return differences;
+    },
+    // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
+    goSubmit() {
+      if (!this.registerInfo.invListNo) {
+        this.$u.toast("璇烽�夋嫨鐩樼偣鎶ュ憡鍙�");
+        return;
+      }
+      const diff = this.getDifferentFields(
+        this.registerInfo,
+        this.scanHandleList,
+        {
+          partNo: { fixed: this.scanHandleList.PN },
+          // qtyAvailable: { fixed: Number(this.scanHandleList.NW) },
+          ifsBatchNo: { fixed: this.scanHandleList.BN },
+        }
+      );
+      console.log("宸紓瀛楁:", diff);
+      console.log("鏄惁鏈夊樊寮�:", Object.keys(diff).length > 0);
+      if (this.registerInfo.locationNo !== this.submitList.locationNo) {
+        uni.showModal({
+          title: "鎻愮ず",
+          content: "鎵弿搴撲綅鍙蜂笌绯荤粺鏁版嵁涓嶄竴鑷�",
+          showCancel: true,
+          success: function (res) {},
+        });
+        return;
+      }
+      if (Object.keys(diff).length > 0) {
+        if (diff.partNo) {
+          uni.showModal({
+            title: "鎻愮ず",
+            content: "鎵弿闆朵欢鍙蜂笌绯荤粺鏁版嵁涓嶄竴鑷�",
+            showCancel: true,
+            success: function (res) {},
+          });
+          return;
+        }
+        if (diff.ifsBatchNo) {
+          uni.showModal({
+            title: "鎻愮ず",
+            content: "鎵弿鎵规鍙蜂笌绯荤粺鏁版嵁涓嶄竴鑷�",
+            showCancel: true,
+            success: function (res) {},
+          });
+          return;
+        }
+        if (diff.qtyAvailable) {
+          uni.showModal({
+            title: "鎻愮ず",
+            content: "鎵弿鐩樼偣鏁伴噺涓庣郴缁熸暟鎹笉涓�鑷�",
+            showCancel: true,
+            success: function (res) {},
+          });
+          return;
+        }
+      }
+      uni.showLoading({
+        mask: true,
+        title: "鎻愪氦涓�...",
+      });
+      console.log("鎻愪氦鐨勬暟鎹�", this.submitList);
+      // 澶勭悊鎻愪氦閫昏緫
+      this.$u.api.inventoryVerification
+        .erpInventorySubmit({
+          ...this.submitList,
+          invListNo: this.registerInfo.invListNo,
+        })
+        .then((res) => {
+          // uni.hideLoading();
+          this.$u.toast("鎻愪氦鎴愬姛");
+          !this.hasScanSnList.some(
+            (item) => item.ifsBatchNo === this.registerInfo.ifsBatchNo
+          ) && this.hasScanSnList.unshift(this.registerInfo);
+          // this.registerInfo = {};
+        })
+        .catch((err) => {
+          console.log("err", err);
+          // uni.hideLoading();
+          uni.showModal({
+            title: "鎻愮ず",
+            content: err.message || "缃戠粶寮傚父锛岃閲嶈瘯",
+            showCancel: true,
+            success: function (res) {},
+          });
+        });
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>
+.transparent-border {
+  border: none;
+}
 .packing-registration-bg {
-	background-color: #F6F9FF;
-	background-image: url('~@/static/custom/packing/backBg.png');
-	padding: 0 20rpx;
-	background-attachment: fixed;
-	background-size: 100% auto;
-	background-repeat: no-repeat;
-	position: fixed;
-	top: 0;
-	bottom: 0;
-	width: 100%;
-	z-index: -1;
+  background-color: #f6f9ff;
+  background-image: url("~@/static/custom/packing/backBg.png");
+  padding: 0 20rpx;
+  background-attachment: fixed;
+  background-size: 100% auto;
+  background-repeat: no-repeat;
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  width: 100%;
+  z-index: -1;
 }
 
 .packing-registration-param {
-	padding: 40rpx 30rpx 10rpx 30rpx;
+  padding: 40rpx 30rpx 10rpx 30rpx;
 
-	.packing-registration-param-title {
-		display: flex;
-		flex-direction: row;
-		align-items: center;
-		margin-bottom: 30rpx;
+  .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;
-		}
-	}
+    .title-label {
+      margin-left: 14rpx;
+      font-size: 34rpx;
+      font-weight: bold;
+      color: #283e65;
+    }
+  }
 
-	.packing-registration-param-view {
-		height: 615rpx;
-		background-color: #fff;
-		border-radius: 10rpx;
-		padding: 0rpx 23rpx;
-		margin-bottom: 30rpx;
+  .packing-registration-param-view {
+    height: 615rpx;
+    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 {
+      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-left {
+        .item-one {
+          font-size: 30rpx;
+          color: #666666;
+        }
+      }
 
-			.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: #333333;
+          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;
-		}
-	}
+    .param-extra {
+      border-bottom: 1px solid #ededed;
+    }
+  }
 }
 
 .wrap .packing-registration-scroll-list {
-	height: calc(100vh - var(--window-top) - var(--window-bottom) - 930rpx);
-	width: 100%;
+  height: calc(100vh - var(--window-top) - var(--window-bottom) - 930rpx);
+  width: 100%;
 }
 
 .packing-registration-scroll-list-group {
-	::v-deep .u-cell-item-box {
-		background-color: rgba(250, 252, 255, 0.36) !important;
-		padding: 0rpx 30rpx;
-	}
+  ::v-deep .u-cell-item-box {
+    background-color: rgba(250, 252, 255, 0.36) !important;
+    padding: 0rpx 30rpx;
+  }
 
-	.content {
-		background-image: url('~@/static/custom/packing/row_bg.png');
-		background-size: 100% auto;
-		background-repeat: no-repeat;
-		height: 89rpx;
-		width: 691rpx;
-		font-size: 12px;
-		background-color: #FFFFFF;
-		box-sizing: border-box;
-		border-radius: 10rpx;
-		margin: 0rpx 0rpx 20rpx;
-		padding: 0rpx 50rpx 0rpx 32rpx;
-		box-shadow: none;
+  .content {
+    font-size: 12px;
+    background-color: #ffffff;
+    box-sizing: border-box;
+    border-radius: 10rpx;
+    margin: 0rpx 0rpx 16rpx;
+    padding: 20rpx 8rpx;
+    box-shadow: none;
+    display: flex;
+    align-items: center;
 
-		.row-list {
-			height: 100%;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding-top: 0rpx !important;
+    .content-header {
+      height: 90rpx;
+      display: flex;
+      align-items: center;
+      max-width: 300rpx;
 
-			.row-list-left {
-				display: flex;
-				color: #333333;
+      .content-header-icon {
+        background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
+        background-size: 100% auto;
+        background-repeat: no-repeat;
+        height: 28rpx;
+        width: 28rpx;
+        flex-shrink: 0;
+      }
 
-				.num-icon {
-					background-image: url('~@/static/custom/packing/num-bg.png');
-					background-size: 100% auto;
-					background-repeat: no-repeat;
-					height: 38rpx;
-					width: 38rpx;
-					text-align: center;
-					line-height: 38rpx;
-				}
-			}
+      .content-header-title {
+        flex: 1; 
+        min-width: 0;
+        white-space: pre-wrap;
+        margin-left: 11rpx;
+        font-size: 20rpx;
+        font-weight: bold;
+        color: #626369;
+        word-wrap: break-word;
+        overflow-wrap: break-word;
+      }
+    }
 
-			.row-list-right {
-				display: flex;
-				color: #428BF7;
+    .content-body {
+      flex: 1;
+      background-color: #ffffff;
+      border-radius: 10rpx;
+      padding: 0rpx 23rpx;
 
-				.del-icon {
-					background-image: url('~@/static/custom/packing/icon_dele.png');
-					background-size: 100% auto;
-					background-repeat: no-repeat;
-					height: 30rpx;
-					width: 28rpx;
-				}
-			}
-		}
-	}
+      .row-list {
+        height: 60rpx;
+        display: flex;
+        flex-direction: row;
+        padding: 0px;
+        align-items: center;
+      }
+
+      .row-list ._label {
+        display: flex;
+        flex: 0.8;
+        color: #909399;
+        align-items: center;
+
+        ._label-name {
+          margin-left: 11rpx;
+          font-size: 26rpx;
+          font-weight: 500;
+          color: #666666;
+        }
+      }
+
+      .row-list ._content {
+        flex: 1.5;
+        text-align: right;
+        color: #909399;
+        font-size: 24rpx;
+      }
+
+      .row-list .s1 {
+        color: #d35651;
+      }
+    }
+  }
 }
 
 .registration-form-footer {
-	display: flex;
-	margin-top: 10rpx;
-	margin-bottom: 10rpx;
-	margin-left: 20rpx;
-	margin-right: 20rpx;
-	padding-bottom: 14rpx;
+  display: flex;
+  margin-top: 10rpx;
+  margin-bottom: 10rpx;
+  margin-left: 20rpx;
+  margin-right: 20rpx;
+  padding-bottom: 14rpx;
 
-	.btn {
-		flex: 1;
-		margin: 10rpx;
-		background: #214DED;
-		box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
-		font-weight: bold;
-		color: #FEFEFE;
-		font-family: PingFang SC;
-	}
+  .btn {
+    flex: 1;
+    margin: 10rpx;
+    background: #214ded;
+    box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3);
+    font-weight: bold;
+    color: #fefefe;
+    font-family: PingFang SC;
+  }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3