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/Subtract.vue |  187 +++++++++++++++++++++++++++++-----------------
 1 files changed, 118 insertions(+), 69 deletions(-)

diff --git a/src/views/inventoryManagement/stockManagement/Subtract.vue b/src/views/inventoryManagement/stockManagement/Subtract.vue
index f709c2d..6bef2b8 100644
--- a/src/views/inventoryManagement/stockManagement/Subtract.vue
+++ b/src/views/inventoryManagement/stockManagement/Subtract.vue
@@ -30,86 +30,120 @@
           <el-input v-model="formState.model"  disabled />
         </el-form-item>
 
+        <!-- 闈炲師鏉愭枡鏄剧ず鏁伴噺瀛楁 -->
         <el-form-item
-            label="鍗曚綅"
-            prop="unit"
-        >
-          <el-input v-model="formState.unit"  disabled />
-        </el-form-item>
-
-        <el-form-item
-            label="杞︾墝鍙�"
-            prop="licensePlateNo"
-            :rules="[{ required: true, message: '璇疯緭鍏ヨ溅鐗屽彿', trigger: ['blur','change'] }]"
-        >
-          <el-input v-model="formState.licensePlateNo" />
-        </el-form-item>
-
-        <el-form-item
-            label="姣涢噸(鍚�)"
-            prop="grossWeight"
-            :rules="[{ required: true, message: '璇疯緭鍏ユ瘺閲�', trigger: ['blur','change'] }]"
+            v-if="props.record.productType !== 0"
+            label="鏁伴噺"
+            prop="qualitity"
+            :rules="[
+              { required: true, message: '璇疯緭鍏ユ暟閲�', trigger: ['blur', 'change'] }
+            ]"
         >
           <el-input-number
-              v-model="formState.grossWeight"
-              :step="0.01"
+              v-model="formState.qualitity"
               :min="0"
+              :step="1"
+              :precision="0"
               style="width: 100%"
-              @change="computeNetWeight"
+              controls-position="right"
+              placeholder="璇疯緭鍏ユ暟閲�"
           />
         </el-form-item>
 
-        <el-form-item
-            label="鐨噸(鍚�)"
-            prop="tareWeight"
-            :rules="[{ required: true, message: '璇疯緭鍏ョ毊閲�', trigger: ['blur','change'] }]"
-        >
-          <el-input-number
-              v-model="formState.tareWeight"
-              :step="0.01"
-              :min="0"
-              style="width: 100%"
-              @change="computeNetWeight"
-          />
-        </el-form-item>
+        <!-- 鍘熸潗鏂欐樉绀鸿繃纾呯浉鍏冲瓧娈� -->
+        <template v-if="props.record.productType === 0">
+          <el-form-item
+              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
+              label="姣涢噸"
+              prop="grossWeight"
+              :rules="[{ required: true, message: '璇疯緭鍏ユ瘺閲�', trigger: ['blur','change'] }]"
+          >
+            <el-input-number
+                v-model="formState.grossWeight"
+                :step="0.01"
+                :min="0"
+                style="width: 100%"
+                @change="computeNetWeight"
+            />
+          </el-form-item>
 
-        <el-form-item
-            label="鍑�閲�(鍚�)"
-            prop="netWeight"
-            :rules="[{ required: true, message: '鍑�閲嶇敱姣涢噸鍜岀毊閲嶈嚜鍔ㄨ绠�', trigger: ['blur','change'] }]"
-        >
-          <el-input-number
-              v-model="formState.netWeight"
-              :step="0.01"
-              :min="0"
-              style="width: 100%"
-              disabled
-          />
-        </el-form-item>
+          <el-form-item
+              label="鐨噸"
+              prop="tareWeight"
+              :rules="[{ required: true, message: '璇疯緭鍏ョ毊閲�', trigger: ['blur','change'] }]"
+          >
+            <el-input-number
+                v-model="formState.tareWeight"
+                :step="0.01"
+                :min="0"
+                style="width: 100%"
+                @change="computeNetWeight"
+            />
+          </el-form-item>
 
-        <el-form-item
-            label="杩囩鏃ユ湡"
-            prop="weighingDate"
-            :rules="[{ required: true, message: '璇烽�夋嫨杩囩鏃ユ湡', trigger: 'change' }]"
-        >
-          <el-date-picker
-              style="width: 100%"
-              v-model="formState.weighingDate"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              format="YYYY-MM-DD HH:mm:ss"
-              type="datetime"
-              placeholder="璇烽�夋嫨杩囩鏃ユ湡"
-              clearable
-          />
-        </el-form-item>
+          <el-form-item
+              label="鍑�閲�"
+              prop="netWeight"
+              :rules="[{ required: true, message: '鍑�閲嶇敱姣涢噸鍜岀毊閲嶈嚜鍔ㄨ绠�', trigger: ['blur','change'] }]"
+          >
+            <el-input-number
+                v-model="formState.netWeight"
+                :step="0.01"
+                :min="0"
+                style="width: 100%"
+                disabled
+            />
+          </el-form-item>
 
-        <el-form-item
-            label="杩囩鍛�"
-            prop="weighingOperator"
-            :rules="[{ required: true, message: '璇疯緭鍏ヨ繃纾呭憳', trigger: ['blur','change'] }]"
-        >
-          <el-input v-model="formState.weighingOperator" />
-        </el-form-item>
+          <el-form-item
+              label="杩囩鏃ユ湡"
+              prop="weighingDate"
+              :rules="[{ required: true, message: '璇烽�夋嫨杩囩鏃ユ湡', trigger: 'change' }]"
+          >
+            <el-date-picker
+                style="width: 100%"
+                v-model="formState.weighingDate"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                format="YYYY-MM-DD HH:mm:ss"
+                type="datetime"
+                placeholder="璇烽�夋嫨杩囩鏃ユ湡"
+                clearable
+            />
+          </el-form-item>
+
+          <el-form-item
+              label="杩囩鍛�"
+              prop="weighingOperator"
+              :rules="[{ required: true, message: '璇疯緭鍏ヨ繃纾呭憳', trigger: ['blur','change'] }]"
+          >
+            <el-input v-model="formState.weighingOperator" />
+          </el-form-item>
+        </template>
 
         <el-form-item label="澶囨敞" prop="remark">
           <el-input v-model="formState.remark" type="textarea" />
@@ -206,6 +240,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()
 

--
Gitblit v1.9.3