From a1274d448fa9fd59da39d94f5d91e54780fc8de1 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 24 四月 2026 11:01:10 +0800
Subject: [PATCH] fix: 出入库只有吨和公斤才能转换单位,其他单位不用转换。

---
 src/views/inventoryManagement/stockManagement/New.vue |   62 +++++++++++++++++++++++++------
 1 files changed, 50 insertions(+), 12 deletions(-)

diff --git a/src/views/inventoryManagement/stockManagement/New.vue b/src/views/inventoryManagement/stockManagement/New.vue
index 22b8a3e..dd02356 100644
--- a/src/views/inventoryManagement/stockManagement/New.vue
+++ b/src/views/inventoryManagement/stockManagement/New.vue
@@ -30,16 +30,11 @@
           <el-input v-model="formState.productModelName"  disabled />
         </el-form-item>
 
-        <el-form-item
-            label="鍗曚綅"
-            prop="unit"
-        >
-          <el-input v-model="formState.unit"  disabled />
-        </el-form-item>
+        
 
-        <!-- productType === 1锛氬崐鎴愬搧锛堝厑璁告墜鍔ㄥ~鍐欐暟閲忓叆搴擄級 -->
+        <!-- 鍗婃垚鍝侊細鍏佽鎵嬪姩濉啓鏁伴噺鍏ュ簱 -->
         <el-form-item
-            v-if="type === 'qualified' && formState.productType === 1"
+            v-if="type === 'qualified' && (formState.parentName === '鍗婃垚鍝�' || formState.parentName === '鎴愬搧' || formState.productType === 1)"
             label="鏁伴噺"
             prop="qualitity"
             :rules="[
@@ -62,14 +57,34 @@
             v-if="type === 'qualified' && formState.productType === 0"
             label="杞︾墝鍙�"
             prop="licensePlateNo"
+            :rules="[{ required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: ['blur','change'] }]"
         >
           <el-input v-model="formState.licensePlateNo" />
         </el-form-item>
-
+        <el-form-item
+            label="鍗曚綅"
+            prop="unit"
+        >
+          <el-select
+              v-model="formState.unit"
+              placeholder="璇烽�夋嫨鍗曚綅"
+              style="width: 100%"
+              clearable
+              :disabled="!canEditUnit"
+          >
+            <el-option
+                v-for="item in editableUnitOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item
             v-if="type === 'qualified' && formState.productType === 0"
-            label="姣涢噸(鍚�)"
+            label="姣涢噸"
             prop="grossWeight"
+            :rules="[{ required: true, message: '璇疯緭鍏ユ瘺閲�', trigger: ['blur','change'] }]"
         >
           <el-input-number
               v-model="formState.grossWeight"
@@ -82,8 +97,9 @@
 
         <el-form-item
             v-if="type === 'qualified' && formState.productType === 0"
-            label="鐨噸(鍚�)"
+            label="鐨噸"
             prop="tareWeight"
+            :rules="[{ required: true, message: '璇疯緭鍏ョ毊閲�', trigger: ['blur','change'] }]"
         >
           <el-input-number
               v-model="formState.tareWeight"
@@ -96,8 +112,9 @@
 
         <el-form-item
             v-if="type === 'qualified' && formState.productType === 0"
-            label="鍑�閲�(鍚�)"
+            label="鍑�閲�"
             prop="netWeight"
+            :rules="[{ required: true, message: '璇峰厛杈撳叆姣涢噸鍜岀毊閲嶈嚜鍔ㄨ绠楀噣閲�', trigger: ['blur','change'] }]"
         >
           <el-input-number
               v-model="formState.netWeight"
@@ -112,6 +129,7 @@
             v-if="type === 'qualified' && formState.productType === 0"
             label="杩囩鏃ユ湡"
             prop="weighingDate"
+            :rules="[{ required: true, message: '璇烽�夋嫨杩囩鏃ユ湡', trigger: 'change' }]"
         >
           <el-date-picker
               style="width: 100%"
@@ -128,6 +146,7 @@
             v-if="type === 'qualified' && formState.productType === 0"
             label="杩囩鍛�"
             prop="weighingOperator"
+            :rules="[{ required: true, message: '璇疯緭鍏ヨ繃纾呭憳', trigger: ['blur','change'] }]"
         >
           <el-input v-model="formState.weighingOperator" />
         </el-form-item>
@@ -140,6 +159,7 @@
       <!-- 浜у搧閫夋嫨寮圭獥 -->
       <ProductSelectDialog
           v-model="showProductSelectDialog"
+          :excludeParentNames="['鑰楁潗']"
           @confirm="handleProductSelect"
           single
       />
@@ -182,6 +202,7 @@
   productModelName: "",
   unit: "",
   productType: undefined,
+  parentName: "",
   // 搴撳瓨鏁伴噺锛堝崐鎴愬搧鍚堟牸鍏ュ簱鍙墜鍔ㄥ~鍐欙級
   qualitity: undefined,
   // 杩囩鐩稿叧瀛楁锛堜粎鍘熸潗鏂欏悎鏍煎搧浣跨敤锛�
@@ -204,6 +225,21 @@
 });
 
 const showProductSelectDialog = ref(false);
+const unitEditableValues = ['鍚�', '鍏枻'];
+
+const canEditUnit = computed(() => unitEditableValues.includes(formState.value?.unit));
+
+const editableUnitOptions = computed(() => {
+  const options = [
+    {label: '鍚�', value: '鍚�'},
+    {label: '鍏枻', value: '鍏枻'},
+  ];
+  const currentUnit = formState.value?.unit;
+  if (currentUnit && !unitEditableValues.includes(currentUnit)) {
+    return [{label: currentUnit, value: currentUnit}];
+  }
+  return options;
+});
 
 let { proxy } = getCurrentInstance()
 
@@ -216,6 +252,7 @@
     productModelName: "",
     unit: "",
     productType: undefined,
+    parentName: "",
     qualitity: undefined,
     licensePlateNo: "",
     grossWeight: undefined,
@@ -243,6 +280,7 @@
     formState.value.productModelId = product.id;
     formState.value.unit = product.unit;
     formState.value.productType = product.productType;
+    formState.value.parentName = product.parentName || "";
     showProductSelectDialog.value = false;
     // 瑙﹀彂琛ㄥ崟楠岃瘉鏇存柊
     proxy.$refs["formRef"]?.validateField('productModelId');

--
Gitblit v1.9.3