From eecd51db2f0e1094650206fa534dd02f5de58c9c Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期一, 18 五月 2026 10:22:50 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_NEW_pro' into dev_NEW_pro

---
 src/views/qualityManagement/processInspection/components/formDia.vue     |   50 +++++++++++-----
 src/views/qualityManagement/finalInspection/components/formDia.vue       |   39 ++++++++----
 src/views/qualityManagement/rawMaterialInspection/components/formDia.vue |   40 ++++++++----
 src/views/qualityManagement/rawMaterialInspection/index.vue              |    7 ++
 src/views/qualityManagement/finalInspection/index.vue                    |    7 ++
 src/views/qualityManagement/processInspection/index.vue                  |    7 ++
 6 files changed, 106 insertions(+), 44 deletions(-)

diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
index 5c6be02..10bfad9 100644
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -2,7 +2,7 @@
   <div>
     <el-dialog
         v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板鍑哄巶妫�楠�' : '缂栬緫鍑哄巶妫�楠�'"
+        :title="operationType === 'add' ? '鏂板鍑哄巶妫�楠�' : operationType === 'view' ? '鏌ョ湅鍑哄巶妫�楠�' : '缂栬緫鍑哄巶妫�楠�'"
         width="70%"
         @close="closeDia"
     >
@@ -18,14 +18,14 @@
                   @change="getModels"
                   :data="productOptions"
                   :render-after-expand="false"
-                  :disabled="operationType === 'edit'"
+                  :disabled="isViewMode || operationType === 'edit'"
                   style="width: 100%"
               />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId">
-              <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'edit'"
+              <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="isViewMode || operationType === 'edit'"
                          filterable readonly @change="handleChangeModel">
                 <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
               </el-select>
@@ -41,6 +41,7 @@
                 clearable
                 @change="handleTestStandardChange"
                 style="width: 100%"
+                :disabled="isViewMode"
               >
                 <el-option
                   v-for="item in testStandardOptions"
@@ -60,7 +61,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2" :disabled="processQuantityDisabled"/>
+              <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2" :disabled="isViewMode || processQuantityDisabled"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -75,7 +76,8 @@
                                placeholder="璇疯緭鍏�"
                                clearable
                                :precision="2"
-                               @change="handleQualifiedQuantityChange" />
+                               @change="handleQualifiedQuantityChange"
+                               :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -88,19 +90,20 @@
                                placeholder="璇疯緭鍏�"
                                clearable
                                :precision="2"
-                               @change="handleUnqualifiedQuantityChange" />
+                               @change="handleUnqualifiedQuantityChange"
+                               :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
-              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
+              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable :disabled="isViewMode"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
-              <el-select v-model="form.checkResult">
+              <el-select v-model="form.checkResult" :disabled="isViewMode">
                 <el-option label="鍚堟牸" value="鍚堟牸" />
                 <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�" />
                 <el-option label="閮ㄥ垎鍚堟牸" value="閮ㄥ垎鍚堟牸" />
@@ -111,7 +114,7 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable>
+              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable :disabled="isViewMode">
                 <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName"
                            :value="item.nickName"/>
               </el-select>
@@ -127,6 +130,7 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+                  :disabled="isViewMode"
               />
             </el-form-item>
           </el-col>
@@ -140,13 +144,16 @@
 				height="400"
 			>
 				<template #slot="{ row }">
-					<el-input v-model="row.testValue" clearable/>
+					<el-input v-model="row.testValue" clearable :disabled="isViewMode"/>
 				</template>
 			</PIMTable>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
+          <template v-if="!isViewMode">
+            <el-button type="primary" @click="submitForm">纭</el-button>
+            <el-button @click="closeDia">鍙栨秷</el-button>
+          </template>
+          <el-button v-else @click="closeDia">鍏抽棴</el-button>
         </div>
       </template>
     </el-dialog>
@@ -199,6 +206,8 @@
   },
 });
 const { form, rules } = toRefs(data);
+// 鏄惁涓烘煡鐪嬫ā寮�
+const isViewMode = computed(() => operationType.value === 'view');
 // 缂栬緫鏃讹細productMainId 鎴� purchaseLedgerId 浠讳竴鏈夊�煎垯宸ュ簭銆佹暟閲忕疆鐏�
 const processQuantityDisabled = computed(() => {
   const v = form.value || {};
@@ -259,7 +268,7 @@
   testStandardOptions.value = [];
   tableData.value = [];
 
-  if (operationType.value === 'edit') {
+  if (operationType.value === 'edit' || operationType.value === 'view') {
     // 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
     const savedTestStandardId = row.testStandardId;
     // 鍏堣缃〃鍗曟暟鎹紝浣嗘殏鏃舵竻绌� testStandardId锛岀瓑閫夐」鍔犺浇瀹屾垚鍚庡啀璁剧疆
@@ -452,6 +461,10 @@
   tableLoading.value = true;
   getQualityTestStandardParamByTestStandardId(testStandardId).then(res => {
     tableData.value = res.data || [];
+    tableData.value = tableData.value.map(item => ({
+      ...item,
+      id: null
+    }));
   }).catch(error => {
     console.error('鑾峰彇鏍囧噯鍙傛暟澶辫触:', error);
     tableData.value = [];
diff --git a/src/views/qualityManagement/finalInspection/index.vue b/src/views/qualityManagement/finalInspection/index.vue
index d87c453..bdb71c4 100644
--- a/src/views/qualityManagement/finalInspection/index.vue
+++ b/src/views/qualityManagement/finalInspection/index.vue
@@ -191,6 +191,13 @@
         }
       },
       {
+        name: "鏌ョ湅",
+        type: "text",
+        clickFun: (row) => {
+          openForm("view", row);
+        },
+      },
+      {
         name: "闄勪欢",
         type: "text",
         clickFun: (row) => {
diff --git a/src/views/qualityManagement/processInspection/components/formDia.vue b/src/views/qualityManagement/processInspection/components/formDia.vue
index b15eabb..635360f 100644
--- a/src/views/qualityManagement/processInspection/components/formDia.vue
+++ b/src/views/qualityManagement/processInspection/components/formDia.vue
@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-dialog v-model="dialogFormVisible"
-               :title="operationType === 'add' ? '鏂板杩囩▼妫�楠�' : '缂栬緫杩囩▼妫�楠�'"
+               :title="operationType === 'add' ? '鏂板杩囩▼妫�楠�' : operationType === 'view' ? '鏌ョ湅杩囩▼妫�楠�' : '缂栬緫杩囩▼妫�楠�'"
                width="70%"
                @close="closeDia">
       <el-form :model="form"
@@ -16,7 +16,7 @@
               <el-select v-model="form.process"
                          placeholder="璇烽�夋嫨宸ュ簭"
                          clearable
-                         :disabled="processQuantityDisabled"
+                         :disabled="isViewMode || processQuantityDisabled"
                          style="width: 100%">
                 <el-option v-for="item in processList"
                            :key="item.name"
@@ -35,7 +35,7 @@
                               @change="getModels"
                               :data="productOptions"
                               :render-after-expand="false"
-                              :disabled="operationType === 'edit'"
+                              :disabled="isViewMode || operationType === 'edit'"
                               style="width: 100%" />
             </el-form-item>
           </el-col>
@@ -47,7 +47,7 @@
               <el-select v-model="form.productModelId"
                          placeholder="璇烽�夋嫨"
                          clearable
-                         :disabled="operationType === 'edit'"
+                         :disabled="isViewMode || operationType === 'edit'"
                          filterable
                          readonly
                          @change="handleChangeModel">
@@ -65,7 +65,8 @@
                          placeholder="璇烽�夋嫨鎸囨爣"
                          clearable
                          @change="handleTestStandardChange"
-                         style="width: 100%">
+                         style="width: 100%"
+                         :disabled="isViewMode">
                 <el-option v-for="item in testStandardOptions"
                            :key="item.id"
                            :label="item.standardName || item.standardNo"
@@ -93,7 +94,7 @@
                                placeholder="璇疯緭鍏�"
                                clearable
                                :precision="2"
-                               :disabled="processQuantityDisabled" />
+                               :disabled="isViewMode || processQuantityDisabled" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -108,7 +109,8 @@
                                placeholder="璇疯緭鍏�"
                                clearable
                                :precision="2"
-                               @change="handleQualifiedQuantityChange" />
+                               @change="handleQualifiedQuantityChange"
+                               :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -121,7 +123,8 @@
                                placeholder="璇疯緭鍏�"
                                clearable
                                :precision="2"
-                               @change="handleUnqualifiedQuantityChange" />
+                               @change="handleUnqualifiedQuantityChange"
+                               :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -131,13 +134,14 @@
                           prop="checkCompany">
               <el-input v-model="form.checkCompany"
                         placeholder="璇疯緭鍏�"
-                        clearable />
+                        clearable
+                        :disabled="isViewMode" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�娴嬬粨鏋滐細"
                           prop="checkResult">
-              <el-select v-model="form.checkResult">
+              <el-select v-model="form.checkResult" :disabled="isViewMode">
                 <el-option label="鍚堟牸"
                            value="鍚堟牸" />
                 <el-option label="涓嶅悎鏍�"
@@ -154,7 +158,8 @@
                           prop="checkName">
               <el-select v-model="form.checkName"
                          placeholder="璇烽�夋嫨"
-                         clearable>
+                         clearable
+                         :disabled="isViewMode">
                 <el-option v-for="item in userList"
                            :key="item.nickName"
                            :label="item.nickName"
@@ -171,7 +176,8 @@
                               value-format="YYYY-MM-DD"
                               format="YYYY-MM-DD"
                               clearable
-                              style="width: 100%" />
+                              style="width: 100%"
+                              :disabled="isViewMode" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -183,14 +189,18 @@
                 height="400">
         <template #slot="{ row }">
           <el-input v-model="row.testValue"
-                    clearable />
+                    clearable
+                    :disabled="isViewMode" />
         </template>
       </PIMTable>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary"
-                     @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
+          <template v-if="!isViewMode">
+            <el-button type="primary"
+                       @click="submitForm">纭</el-button>
+            <el-button @click="closeDia">鍙栨秷</el-button>
+          </template>
+          <el-button v-else @click="closeDia">鍏抽棴</el-button>
         </div>
       </template>
     </el-dialog>
@@ -259,6 +269,8 @@
   });
   const userList = ref([]);
   const { form, rules } = toRefs(data);
+  // 鏄惁涓烘煡鐪嬫ā寮�
+  const isViewMode = computed(() => operationType.value === 'view');
   // 缂栬緫鏃讹細productMainId 鎴� purchaseLedgerId 浠讳竴鏈夊�煎垯宸ュ簭銆佹暟閲忕疆鐏�
   const processQuantityDisabled = computed(() => {
     const v = form.value || {};
@@ -332,7 +344,7 @@
     tableData.value = [];
     // 鍏堢‘淇濅骇鍝佹爲宸插姞杞斤紝鍚﹀垯缂栬緫鏃朵骇鍝�/瑙勬牸鍨嬪彿鏃犳硶鍙嶆樉
     await getProductOptions();
-    if (operationType.value === "edit") {
+    if (operationType.value === "edit" || operationType.value === "view") {
       // 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
       const savedTestStandardId = row.testStandardId;
       // 鍏堣缃〃鍗曟暟鎹紝浣嗘殏鏃舵竻绌� testStandardId锛岀瓑閫夐」鍔犺浇瀹屾垚鍚庡啀璁剧疆
@@ -557,6 +569,10 @@
     getQualityTestStandardParamByTestStandardId(testStandardId)
       .then(res => {
         tableData.value = res.data || [];
+        tableData.value = tableData.value.map(item => ({
+          ...item,
+          id: null
+        }));
       })
       .catch(error => {
         console.error("鑾峰彇鏍囧噯鍙傛暟澶辫触:", error);
diff --git a/src/views/qualityManagement/processInspection/index.vue b/src/views/qualityManagement/processInspection/index.vue
index cf02b7b..178e81a 100644
--- a/src/views/qualityManagement/processInspection/index.vue
+++ b/src/views/qualityManagement/processInspection/index.vue
@@ -190,6 +190,13 @@
 				}
       },
       {
+        name: "鏌ョ湅",
+        type: "text",
+        clickFun: (row) => {
+          openForm("view", row);
+        },
+      },
+      {
         name: "闄勪欢",
         type: "text",
         clickFun: (row) => {
diff --git a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
index 810768c..8bcc72b 100644
--- a/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/components/formDia.vue
@@ -2,7 +2,7 @@
   <div>
     <el-dialog
         v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
+        :title="operationType === 'add' ? '鏂板鍘熸潗鏂欐楠�' : operationType === 'view' ? '鏌ョ湅鍘熸潗鏂欐楠�' : '缂栬緫鍘熸潗鏂欐楠�'"
         width="70%"
         @close="closeDia"
     >
@@ -14,7 +14,7 @@
                   v-model="form.supplier"
                   placeholder="璇烽�夋嫨"
                   clearable
-                  :disabled="supplierQuantityDisabled"
+                  :disabled="isViewMode || supplierQuantityDisabled"
               >
                 <el-option
                     v-for="item in supplierList"
@@ -35,7 +35,7 @@
                   @change="getModels"
                   :data="productOptions"
                   :render-after-expand="false"
-                  :disabled="operationType === 'edit'"
+                  :disabled="isViewMode || operationType === 'edit'"
                   style="width: 100%"
               />
             </el-form-item>
@@ -44,7 +44,7 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="productModelId">
-              <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'edit'"
+              <el-select v-model="form.productModelId" placeholder="璇烽�夋嫨" clearable :disabled="isViewMode || operationType === 'edit'"
                          filterable readonly @change="handleChangeModel">
                 <el-option v-for="item in modelOptions" :key="item.id" :label="item.model" :value="item.id" />
               </el-select>
@@ -58,6 +58,7 @@
                 clearable
                 @change="handleTestStandardChange"
                 style="width: 100%"
+                :disabled="isViewMode"
               >
                 <el-option
                   v-for="item in testStandardOptions"
@@ -78,7 +79,7 @@
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
               <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�"
-                               clearable :precision="2" :disabled="supplierQuantityDisabled"/>
+                               clearable :precision="2" :disabled="isViewMode || supplierQuantityDisabled"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -87,14 +88,14 @@
             <el-form-item label="鍚堟牸鏁伴噺锛�" prop="qualifiedQuantity">
               <el-input-number :step="0.01" :min="0" :max="form.quantity || 0" style="width: 100%"
                                v-model="form.qualifiedQuantity" placeholder="璇疯緭鍏�" :precision="2"
-                               @change="onQualifiedChange"/>
+                               @change="onQualifiedChange" :disabled="isViewMode"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="涓嶅悎鏍兼暟閲忥細" prop="unqualifiedQuantity">
               <el-input-number :step="0.01" :min="0" :max="form.quantity || 0" style="width: 100%"
                                v-model="form.unqualifiedQuantity" placeholder="璇疯緭鍏�" :precision="2"
-                               @change="onUnqualifiedChange"/>
+                               @change="onUnqualifiedChange" :disabled="isViewMode"/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -102,12 +103,12 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�娴嬪崟浣嶏細" prop="checkCompany">
-              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable/>
+              <el-input v-model="form.checkCompany" placeholder="璇疯緭鍏�" clearable :disabled="isViewMode"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�娴嬬粨鏋滐細" prop="checkResult">
-              <el-select v-model="form.checkResult">
+              <el-select v-model="form.checkResult" :disabled="isViewMode">
                 <el-option label="鍚堟牸" value="鍚堟牸"/>
                 <el-option label="涓嶅悎鏍�" value="涓嶅悎鏍�"/>
                 <el-option label="閮ㄥ垎鍚堟牸" value="閮ㄥ垎鍚堟牸"/>
@@ -118,7 +119,7 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
+              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable style="width: 100%" :disabled="isViewMode">
                 <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
               </el-select>
             </el-form-item>
@@ -133,6 +134,7 @@
                   format="YYYY-MM-DD"
                   clearable
                   style="width: 100%"
+                  :disabled="isViewMode"
               />
             </el-form-item>
           </el-col>
@@ -149,13 +151,16 @@
           height="400"
       >
         <template #slot="{ row }">
-          <el-input v-model="row.testValue" clearable/>
+          <el-input v-model="row.testValue" clearable :disabled="isViewMode"/>
         </template>
       </PIMTable>
       <template #footer>
         <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
+          <template v-if="!isViewMode">
+            <el-button type="primary" @click="submitForm">纭</el-button>
+            <el-button @click="closeDia">鍙栨秷</el-button>
+          </template>
+          <el-button v-else @click="closeDia">鍏抽棴</el-button>
         </div>
       </template>
     </el-dialog>
@@ -241,6 +246,9 @@
 const modelOptions = ref([]);
 const userList = ref([]); // 妫�楠屽憳涓嬫媺鍒楄〃
 
+// 鏄惁涓烘煡鐪嬫ā寮�
+const isViewMode = computed(() => operationType.value === 'view');
+
 // 缂栬緫鏃讹細productMainId 鎴� purchaseLedgerId 浠讳竴鏈夊�煎垯渚涘簲鍟嗐�佹暟閲忕疆鐏�
 const supplierQuantityDisabled = computed(() => {
   const v = form.value || {};
@@ -280,7 +288,7 @@
   tableData.value = [];
   // 鍏堢‘淇濅骇鍝佹爲宸插姞杞斤紝鍚﹀垯缂栬緫鏃朵骇鍝�/瑙勬牸鍨嬪彿鏃犳硶鍙嶆樉
   await getProductOptions();
-  if (operationType.value === 'edit') {
+  if (operationType.value === 'edit' || operationType.value === 'view') {
     // 鍏堜繚瀛� testStandardId锛岄伩鍏嶈娓呯┖
     const savedTestStandardId = row.testStandardId;
     form.value = {...row}
@@ -455,6 +463,10 @@
   tableLoading.value = true;
   getQualityTestStandardParamByTestStandardId(testStandardId).then(res => {
     tableData.value = res.data || [];
+    tableData.value = tableData.value.map(item => ({
+      ...item,
+      id: null
+    }));
   }).catch(error => {
     console.error('鑾峰彇鏍囧噯鍙傛暟澶辫触:', error);
     tableData.value = [];
diff --git a/src/views/qualityManagement/rawMaterialInspection/index.vue b/src/views/qualityManagement/rawMaterialInspection/index.vue
index c0e667a..b6adb40 100644
--- a/src/views/qualityManagement/rawMaterialInspection/index.vue
+++ b/src/views/qualityManagement/rawMaterialInspection/index.vue
@@ -197,6 +197,13 @@
 				}
       },
       {
+        name: "鏌ョ湅",
+        type: "text",
+        clickFun: (row) => {
+          openForm("view", row);
+        },
+      },
+      {
         name: "闄勪欢",
         type: "text",
         clickFun: (row) => {

--
Gitblit v1.9.3