From 1f7e58b5ec4f633773bbcfe65d1f686f934905d1 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 22 九月 2026 09:13:08 +0800
Subject: [PATCH] 新疆-融邦环保 1.采购申请页面字段修改 2.油品出入库反显逻辑修改

---
 src/views/inventoryManagement/stockManagement/OilStockInDialog.vue |   60 ++++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 40 insertions(+), 20 deletions(-)

diff --git a/src/views/inventoryManagement/stockManagement/OilStockInDialog.vue b/src/views/inventoryManagement/stockManagement/OilStockInDialog.vue
index 36468ce..ab1199c 100644
--- a/src/views/inventoryManagement/stockManagement/OilStockInDialog.vue
+++ b/src/views/inventoryManagement/stockManagement/OilStockInDialog.vue
@@ -10,15 +10,16 @@
                ref="formRef">
         <el-row :gutter="30">
           <el-col :span="12">
-            <el-form-item label="浜у搧澶х被"
+            <el-form-item label="浜у搧"
                           prop="productId"
                           :rules="[
                 {
                 required: true,
-                message: '璇烽�夋嫨浜у搧澶х被',
+                message: '璇烽�夋嫨浜у搧',
                 trigger: 'change',
               }
             ]">
+              <!-- 娌瑰搧鐢便�屼骇鍝� + 瑙勬牸鍨嬪彿銆嶄袱绾ч�夊嚭锛屼笉鍗曠嫭缁存姢 -->
               <el-tree-select v-model="formState.productId"
                               placeholder="璇烽�夋嫨"
                               clearable
@@ -206,10 +207,11 @@
           <el-col :span="12">
             <el-form-item label="娌瑰搧"
                           prop="oilProduct"
-                          :rules="[{ required: true, message: '璇烽�夋嫨娌瑰搧', trigger: 'change' }]">
-              <el-input :model-value="formState.oilProduct"
-                        readonly
-                        placeholder="--" />
+                          :rules="[{ required: true, message: '璇疯緭鍏ユ补鍝�', trigger: 'change' }]">
+              <!-- 閫夊畬銆屼骇鍝� + 瑙勬牸鍨嬪彿銆嶈嚜鍔ㄥ啓鍏ワ紝涔熻兘鑷繁鏀� -->
+              <el-input v-model="formState.oilProduct"
+                        placeholder="閫夊畬浜у搧涓庤鏍煎瀷鍙峰悗鑷姩鐢熸垚"
+                        @input="handleOilProductInput" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -315,7 +317,6 @@
                           prop="trailerPlateNo"
                           :rules="[{ required: true, message: '璇疯緭鍏ヨ溅鎸傜墝鍙�', trigger: 'blur' }]">
               <el-input v-model="formState.trailerPlateNo"
-                        :readonly="!!formState.vehicleId"
                         placeholder="璇疯緭鍏�"
                         clearable />
             </el-form-item>
@@ -679,6 +680,26 @@
   const productOptions = ref([]);
   const modelOptions = ref([]);
 
+  // 娌瑰搧榛樿鐢便�屼骇鍝� + 瑙勬牸鍨嬪彿銆嶄袱绾ф嫾鍑烘潵锛堜袱绾ч兘閫夊畬鎵嶆湁鍊硷級銆�
+  // autoOilProduct 璁颁綇鑷姩鍐欒繘鍘荤殑鍊硷紝鐢ㄦ潵鍒ゆ柇鐢ㄦ埛鏈夋病鏈夋墜鏀硅繃鈥斺�旀墜鏀硅繃灏变笉鍐嶈鐩�
+  const autoOilProduct = ref("");
+
+  const oilProductLabel = (productName, model) =>
+    [productName, model].filter(Boolean).join(" / ");
+
+  const syncOilProduct = next => {
+    const current = formState.value.oilProduct;
+    if (!current || current === autoOilProduct.value) {
+      formState.value.oilProduct = next || undefined;
+    }
+    autoOilProduct.value = next || "";
+  };
+
+  // 鎵嬫敼杩囦箣鍚� autoOilProduct 灏卞涓嶄笂浜嗭紝鍚庨潰鐨勪骇鍝�/瑙勬牸鑱斿姩涓嶅啀瑕嗙洊瀹�
+  const handleOilProductInput = () => {
+    autoOilProduct.value = "";
+  };
+
   let { proxy } = getCurrentInstance();
 
   const closeModal = () => {
@@ -708,19 +729,17 @@
     }
   };
 
-  // 杞﹁締閫夋嫨鏀瑰彉锛氳溅鐗屽彿銆佽溅鎸傜墝鍙蜂笌鍙告満淇℃伅鐢辫溅杈嗕富鏁版嵁甯﹀嚭锛屽徃鏈哄彲鎵嬪姩瑕嗙洊
+  // 杞﹁締閫夋嫨鏀瑰彉锛氳溅鐗屽彿涓庡徃鏈轰俊鎭敱杞﹁締涓绘暟鎹甫鍑猴紝鍙告満鍙墜鍔ㄨ鐩栥��
+  // 杞︽寕鐗屽彿鏄寕杞﹁嚜宸辩殑鐗屻�佷笉鍦ㄨ溅杈嗕富鏁版嵁閲岋紝濮嬬粓鎵嬪~锛屼笉鍙備笌鑱斿姩銆�
   const vehicleChange = id => {
     const vehicle = vehicleList.value.find(item => item.id === id);
-    if (vehicle) {
-      formState.value.truckPlateNo = vehicle.plateNumber || "";
-      // 杞︽寕鐗屽彿涓庤溅鐗屽彿鏄悓涓�涓墝锛岄�変簡杞﹁締灏卞甫鍑哄苟缃负鍙锛岄伩鍏嶆墜濉嚭涓や釜涓嶄竴鑷寸殑鍊�
-      formState.value.trailerPlateNo = vehicle.plateNumber || "";
-      formState.value.driverName = vehicle.driverName || "";
-      formState.value.driverPhone = vehicle.driverPhone || "";
-    } else {
+    if (!vehicle) {
       formState.value.truckPlateNo = "";
-      formState.value.trailerPlateNo = "";
+      return;
     }
+    formState.value.truckPlateNo = vehicle.plateNumber || "";
+    formState.value.driverName = vehicle.driverName || "";
+    formState.value.driverPhone = vehicle.driverPhone || "";
   };
 
   const getProductOptions = () =>
@@ -746,7 +765,8 @@
     formState.value.productName = "";
     formState.value.productModelName = "";
     formState.value.unit = "";
-    formState.value.oilProduct = undefined;
+    // 娌瑰搧鏄骇鍝� + 瑙勬牸鎷煎嚭鏉ョ殑锛屾崲浜嗕骇鍝佸氨涓�璧蜂綔搴燂紝鎵嬫敼杩囩殑涓嶅姩
+    syncOilProduct("");
     modelOptions.value = [];
     if (!value) {
       return;
@@ -756,14 +776,14 @@
     });
   };
 
-  // 瑙勬牸鍨嬪彿鏀瑰彉锛氫骇鍝佸悕绉�/瑙勬牸/鍗曚綅鐢辫鏍间富鏁版嵁甯﹀嚭锛屾补鍝佸彇浜у搧鍚嶇О
+  // 瑙勬牸鍨嬪彿鏀瑰彉锛氫骇鍝佸悕绉�/瑙勬牸/鍗曚綅鐢辫鏍间富鏁版嵁甯﹀嚭
   const handleProductModelChange = value => {
     const item = modelOptions.value.find(row => row.id === value);
     formState.value.productName = item?.productName || "";
     formState.value.productModelName = item?.model || "";
     formState.value.unit = item?.unit || "";
-    // 鏈鎴枫�屾补鍝併�嶅氨鏄骇鍝佸悕绉帮紙搴撳瓨鏄庣粏/鍑哄簱鍙拌处鐨勬补鍝佸垪缁戠殑閮芥槸 productName锛�
-    formState.value.oilProduct = item?.productName || undefined;
+    // 鏈鎴枫�屾补鍝併�嶆寜銆屼骇鍝佸悕绉� / 瑙勬牸鍨嬪彿銆嶅睍绀猴紝搴撳瓨鏄庣粏銆佸嚭搴撳彴璐︾殑娌瑰搧鍒楀彇鐨勫氨鏄畠
+    syncOilProduct(oilProductLabel(item?.productName, item?.model));
     proxy.$refs["formRef"]?.validateField("productModelId");
   };
 

--
Gitblit v1.9.3