From a563ea879ef5fb6897e76d2df661e465dce2ab9b Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 01 六月 2026 15:02:27 +0800
Subject: [PATCH] Merge branch 'dev_新疆_大罗素马铃薯new' of http://114.132.189.42:9002/r/product-inventory-management into dev_新疆_大罗素马铃薯new

---
 src/views/qualityManagement/finalInspection/components/formDia.vue |   90 +++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 83 insertions(+), 7 deletions(-)

diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
index 10bfad9..9fcb6b1 100644
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -9,6 +9,28 @@
       <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
         <el-row :gutter="30">
           <el-col :span="12">
+            <el-form-item label="閿�鍞鍗曪細" prop="salesLedgerId">
+              <el-select
+                v-model="form.salesLedgerId"
+                placeholder="璇烽�夋嫨閿�鍞鍗�"
+                clearable
+                filterable
+                :disabled="isViewMode"
+                style="width: 100%"
+                @change="handleSalesLedgerChange"
+              >
+                <el-option
+                  v-for="item in salesLedgerOptions"
+                  :key="item.id"
+                  :label="item.salesContractNo"
+                  :value="item.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="30">
+          <el-col :span="12">
             <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
               <el-tree-select
                   v-model="form.productId"
@@ -168,6 +190,7 @@
 import {userListNoPage} from "@/api/system/user.js";
 import {qualityInspectDetailByProductId, getQualityTestStandardParamByTestStandardId} from "@/api/qualityManagement/metricMaintenance.js";
 import {qualityInspectParamInfo} from "@/api/qualityManagement/qualityInspectParam.js";
+import {ledgerListNoPage, productList} from "@/api/salesManagement/salesLedger.js";
 const { proxy } = getCurrentInstance()
 const emit = defineEmits(['close'])
 
@@ -189,20 +212,22 @@
     unqualifiedQuantity: "",
     checkCompany: "",
     checkResult: "",
+    salesLedgerId: "",
+    salesContractNo: "",
   },
   rules: {
-    checkTime: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    process: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     productModelId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
     testStandardId: [{ required: false, message: "璇烽�夋嫨鎸囨爣", trigger: "change" }],
     unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    qualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    unqualifiedQuantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    quantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    qualifiedQuantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    unqualifiedQuantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkResult: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+    checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "change" }],
   },
 });
 const { form, rules } = toRefs(data);
@@ -245,6 +270,7 @@
 const currentProductId = ref(0);
 const testStandardOptions = ref([]); // 鎸囨爣閫夋嫨涓嬫媺妗嗘暟鎹�
 const modelOptions = ref([]);
+const salesLedgerOptions = ref([]); // 閿�鍞鍗曚笅鎷夋鏁版嵁
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
@@ -255,11 +281,14 @@
   proxy.$refs.formRef?.clearValidate();
 
   // 骞惰鍔犺浇鍩虹鏁版嵁
-  const [userListsRes] = await Promise.all([
+  const [userListsRes, salesLedgerRes] = await Promise.all([
     userListNoPage(),
     getProductOptions(),
     getOptions().then((res) => {
       supplierList.value = res.data;
+    }),
+    ledgerListNoPage({ current: -1, size: -1 }).then((res) => {
+      salesLedgerOptions.value = res.data || [];
     })
   ]);
   userList.value = userListsRes.data;
@@ -267,6 +296,30 @@
   form.value = {}
   testStandardOptions.value = [];
   tableData.value = [];
+
+  // 鏂板妯″紡涓嬶紝榛樿璁剧疆浜у搧鍚嶇О涓�"椹搩钖洩鑺辩矇"(id=320)
+  if (operationType.value === 'add') {
+    const defaultProductId = 320;
+    form.value.productId = defaultProductId;
+    currentProductId.value = defaultProductId;
+    form.value.productName = '椹搩钖洩鑺辩矇';
+    // 鍔犺浇瑙勬牸鍨嬪彿鍒楄〃
+    try {
+      const modelRes = await modelList({ id: defaultProductId });
+      modelOptions.value = modelRes || [];
+      // 榛樿閫変腑绗竴涓鏍煎瀷鍙�
+      if (modelOptions.value.length > 0) {
+        const firstModel = modelOptions.value[0];
+        form.value.productModelId = firstModel.id;
+        form.value.model = firstModel.model || '';
+        form.value.unit = firstModel.unit || '';
+      }
+      // 鍔犺浇鎸囨爣閫夐」
+      getList();
+    } catch (e) {
+      console.error('鍔犺浇榛樿浜у搧瑙勬牸鍨嬪彿澶辫触', e);
+    }
+  }
 
   if (operationType.value === 'edit' || operationType.value === 'view') {
     // 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
@@ -357,6 +410,29 @@
   form.value.unit = modelOptions.value.find(item => item.id == value)?.unit || '';
 }
 
+// 閿�鍞鍗曢�夋嫨鍙樺寲澶勭悊
+const handleSalesLedgerChange = async (value) => {
+  const selectedItem = salesLedgerOptions.value.find(item => item.id == value);
+  if (selectedItem) {
+    form.value.salesContractNo = selectedItem.salesContractNo || '';
+    // 鏍规嵁閿�鍞鍗旾D鏌ヨ浜у搧淇℃伅锛屽彧璧嬪�兼暟閲�
+    try {
+      const res = await productList({ salesLedgerId: value, type: 1 });
+      const productData = res.data && res.data.length > 0 ? res.data[0] : null;
+      if (productData) {
+        // 鍙嚜鍔ㄥ甫鍏ユ暟閲�
+        form.value.quantity = productData.quantity || 0;
+      }
+    } catch (e) {
+      console.error('鏌ヨ閿�鍞鍗曚骇鍝佷俊鎭け璐�', e);
+      proxy.$modal.msgError('鏌ヨ閿�鍞鍗曚骇鍝佷俊鎭け璐�');
+    }
+  } else {
+    form.value.salesContractNo = '';
+    form.value.quantity = undefined;
+  }
+}
+
 const handleQualifiedQuantityChange = (value) => {
   if (value === null || value === undefined) {
     form.value.qualifiedQuantity = 0;

--
Gitblit v1.9.3