From 9279a9aa47b462510408a0648a6ccb8b79ec5cb6 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 17 三月 2026 15:18:52 +0800
Subject: [PATCH] fix: 仓储物流展示除耗材外的数据,耗材物料展示耗材的数据。两边菜单数据需要区分开来。

---
 src/pages/consumablesLogistics/stockManagement/add.vue      |    4 ++--
 src/pages/inventoryManagement/stockManagement/add.vue       |   12 +++++++++++-
 src/pages/consumablesLogistics/stockManagement/subtract.vue |   12 ++++++++++++
 src/pages/inventoryManagement/stockManagement/subtract.vue  |   13 ++++++++++++-
 4 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/src/pages/consumablesLogistics/stockManagement/add.vue b/src/pages/consumablesLogistics/stockManagement/add.vue
index fb36b60..ed14b7d 100644
--- a/src/pages/consumablesLogistics/stockManagement/add.vue
+++ b/src/pages/consumablesLogistics/stockManagement/add.vue
@@ -74,7 +74,7 @@
           <text class="popup-title">閫夋嫨浜у搧</text>
         </view>
         <view class="popup-search">
-          <up-input v-model="productQuery.productName" placeholder="浜у搧澶х被" clearable />
+          <up-input v-model="productQuery.productName" placeholder="浜у搧澶х被" disabled />
           <up-input v-model="productQuery.model" placeholder="鍨嬪彿鍚嶇О" clearable />
           <view class="popup-search-btn" @click="loadProductList">鎼滅储</view>
         </view>
@@ -138,7 +138,7 @@
 
 const showProductPopup = ref(false);
 const productQuery = reactive({
-  productName: "",
+  productName: "鑰楁潗",
   model: "",
 });
 const productList = ref([]);
diff --git a/src/pages/consumablesLogistics/stockManagement/subtract.vue b/src/pages/consumablesLogistics/stockManagement/subtract.vue
index 5e688bf..81fea14 100644
--- a/src/pages/consumablesLogistics/stockManagement/subtract.vue
+++ b/src/pages/consumablesLogistics/stockManagement/subtract.vue
@@ -164,6 +164,18 @@
     uni.showToast({ title: `璇疯緭鍏� 1~${stockRecord.unLockedQuantity} 涔嬮棿鐨勬暟閲廯, icon: "none" });
     return;
   }
+  const net = Number(form.netWeight);
+  if (!isNaN(net) && net > 0) {
+    const max = Number(stockRecord.unLockedQuantity) || 0;
+    if (max > 0 && net > max) {
+      uni.showToast({ title: `鍑�閲嶄笉鑳藉ぇ浜庡彲鐢ㄥ簱瀛� ${max}`, icon: "none" });
+      return;
+    }
+    if (net > outNum) {
+      uni.showToast({ title: `鍑�閲嶄笉鑳藉ぇ浜庡嚭搴撴暟閲� ${outNum}`, icon: "none" });
+      return;
+    }
+  }
   const api = isQualified.value ? subtractConsumablesIn : subtractConsumablesUnInventory;
   api({
     id: stockRecord.id,
diff --git a/src/pages/inventoryManagement/stockManagement/add.vue b/src/pages/inventoryManagement/stockManagement/add.vue
index 6c69d85..f8c698f 100644
--- a/src/pages/inventoryManagement/stockManagement/add.vue
+++ b/src/pages/inventoryManagement/stockManagement/add.vue
@@ -202,7 +202,12 @@
   })
     .then(res => {
       const data = res?.records || res?.data?.records || []
-      productList.value = Array.isArray(data) ? data : []
+      const list = Array.isArray(data) ? data : []
+      // 杩囨护鑰楁潗锛氳�楁潗涓嶅厑璁稿湪鈥滀骇鍝佸簱瀛樷�濆叆搴�
+      productList.value = list.filter(item => {
+        const parentName = item?.parentName || item?.parent?.name || ''
+        return parentName !== '鑰楁潗'
+      })
     })
     .finally(() => {
       productLoading.value = false
@@ -210,6 +215,11 @@
 }
 
 const selectProduct = (item) => {
+  const parentName = item?.parentName || item?.parent?.name || ''
+  if (parentName === '鑰楁潗') {
+    uni.showToast({ title: '鑰楁潗璇峰埌鑰楁潗搴撳瓨鍏ュ簱', icon: 'none' })
+    return
+  }
   form.productId = item.productId || item.id
   form.productModelId = item.id
   form.productName = item.productName
diff --git a/src/pages/inventoryManagement/stockManagement/subtract.vue b/src/pages/inventoryManagement/stockManagement/subtract.vue
index 4970275..1a7ebf7 100644
--- a/src/pages/inventoryManagement/stockManagement/subtract.vue
+++ b/src/pages/inventoryManagement/stockManagement/subtract.vue
@@ -87,7 +87,7 @@
 </template>
 
 <script setup>
-import { ref, reactive, watch } from 'vue'
+import { ref, reactive, watch, computed } from 'vue'
 import { onLoad } from '@dcloudio/uni-app'
 import dayjs from 'dayjs'
 import PageHeader from '@/components/PageHeader.vue'
@@ -127,6 +127,12 @@
 const type = ref('0') // 0 鍚堟牸搴撳瓨锛�1 涓嶅悎鏍煎簱瀛�
 const showWeighingDatePicker = ref(false)
 const weighingDateValue = ref(Date.now())
+
+const maxAllowedNetWeight = computed(() => {
+  const v = form.unLockedQuantity ?? form.qualitity
+  const n = Number(v)
+  return !isNaN(n) ? n : 0
+})
 
 onLoad((options) => {
   if (options && options.type != null) {
@@ -183,6 +189,11 @@
     uni.showToast({ title: '璁板綍淇℃伅缂哄け锛屾棤娉曞嚭搴�', icon: 'none' })
     return
   }
+  const net = Number(form.netWeight)
+  if (!isNaN(net) && net > 0 && maxAllowedNetWeight.value > 0 && net > maxAllowedNetWeight.value) {
+    uni.showToast({ title: `鍑�閲嶄笉鑳藉ぇ浜庡彲鐢ㄥ簱瀛� ${maxAllowedNetWeight.value}`, icon: 'none' })
+    return
+  }
   const payload = { ...form }
   const api = type.value === '0' ? subtractStockInventory : subtractStockUnInventory
   api(payload)

--
Gitblit v1.9.3