From e5498b3613a9efcbfda9040d8a53bc6ce1555859 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 29 一月 2026 15:22:31 +0800
Subject: [PATCH] fix: 不合格记录可以编辑状态变更

---
 src/views/qualityManagement/nonconformingManagement/components/formDia.vue           |   18 ++----
 src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue |   32 +++-------
 src/api/qualityManagement/nonconformingManagement.js                                 |   62 +++++++++++---------
 src/views/qualityManagement/nonconformingManagement/index.vue                        |   10 +++
 4 files changed, 60 insertions(+), 62 deletions(-)

diff --git a/src/api/qualityManagement/nonconformingManagement.js b/src/api/qualityManagement/nonconformingManagement.js
index cf6ebe0..50a1b74 100644
--- a/src/api/qualityManagement/nonconformingManagement.js
+++ b/src/api/qualityManagement/nonconformingManagement.js
@@ -1,42 +1,50 @@
-import request from '@/utils/request'
+import request from "@/utils/request";
 
 // 鏌ヨ涓嶅悎鏍肩鐞嗗垪琛�
 export function qualityUnqualifiedListPage(query) {
-    return request({
-        url: '/quality/qualityUnqualified/listPage',
-        method: 'get',
-        params: query,
-    })
+  return request({
+    url: "/quality/qualityUnqualified/listPage",
+    method: "get",
+    params: query,
+  });
 }
 // 鏂板涓嶅悎鏍肩鐞嗗垪琛�
 export function qualityUnqualifiedAdd(query) {
-    return request({
-        url: '/quality/qualityUnqualified/add',
-        method: 'post',
-        data: query,
-    })
+  return request({
+    url: "/quality/qualityUnqualified/add",
+    method: "post",
+    data: query,
+  });
 }
 // 淇敼涓嶅悎鏍肩鐞嗗垪琛�
 export function qualityUnqualifiedUpdate(query) {
-    return request({
-        url: '/quality/qualityUnqualified/update',
-        method: 'post',
-        data: query,
-    })
+  return request({
+    url: "/quality/qualityUnqualified/update",
+    method: "post",
+    data: query,
+  });
+}
+// 涓嶅悎鏍煎鐞�
+export function qualityUnqualifiedDeal(query) {
+  return request({
+    url: "/quality/qualityUnqualified/deal",
+    method: "post",
+    data: query,
+  });
 }
 // 鍒犻櫎涓嶅悎鏍肩鐞嗗垪琛�
 export function qualityUnqualifiedDel(query) {
-    return request({
-        url: '/quality/qualityUnqualified/del',
-        method: 'delete',
-        data: query,
-    })
+  return request({
+    url: "/quality/qualityUnqualified/del",
+    method: "delete",
+    data: query,
+  });
 }
 // 鏌ヨ涓嶅悎鏍肩鐞嗕俊鎭�
 export function getQualityUnqualifiedInfo(query) {
-    return request({
-        url: '/quality/qualityUnqualified/' + query,
-        method: 'get',
-        data: query,
-    })
-}
\ No newline at end of file
+  return request({
+    url: "/quality/qualityUnqualified/" + query,
+    method: "get",
+    data: query,
+  });
+}
diff --git a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
index 9451ef0..6a33ee6 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
@@ -9,14 +9,6 @@
       <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="inspectState">
-              <el-select v-model="form.inspectState">
-                <el-option label="寰呭鐞�" :value="0" />
-                <el-option label="宸插鐞�" :value="1" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
             <el-form-item label="绫诲埆锛�" prop="inspectType">
               <el-select v-model="form.inspectType">
                 <el-option label="鍘熸潗鏂欐楠�" :value="0" />
@@ -150,7 +142,6 @@
     quantity: "",
     checkCompany: "",
     checkResult: "",
-    inspectState: '',
     inspectType: '',
     defectivePhenomena: '',
     dealResult: '',
@@ -178,7 +169,8 @@
   getProductOptions();
   if (operationType.value === 'edit') {
     getQualityUnqualifiedInfo(row.id).then(res => {
-      form.value = {...res.data}
+      const { inspectState, ...rest } = (res.data || {})
+      form.value = { ...rest }
     })
   }
 }
@@ -222,13 +214,15 @@
 const submitForm = () => {
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
+      // 鐘舵�佸瓧娈典笉鍦ㄨ〃鍗曞~鍐欙紝涔熶笉浼犵粰鍚庣
+      const { inspectState, ...payload } = (form.value || {})
       if (operationType.value === "add") {
-        qualityUnqualifiedAdd(form.value).then(res => {
+        qualityUnqualifiedAdd(payload).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
         })
       } else {
-        qualityUnqualifiedUpdate(form.value).then(res => {
+        qualityUnqualifiedUpdate(payload).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
         })
diff --git a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
index a53c648..467a0d3 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
@@ -9,14 +9,6 @@
       <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="inspectState">
-              <el-select v-model="form.inspectState">
-                <el-option label="寰呭鐞�" :value="0" />
-                <el-option label="宸插鐞�" :value="1" />
-              </el-select>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
             <el-form-item label="绫诲埆锛�" prop="inspectType">
               <el-select v-model="form.inspectType" disabled>
                 <el-option label="鍘熸潗鏂欐楠�" :value="0" />
@@ -131,8 +123,7 @@
 import {productTreeList} from "@/api/basicData/product.js";
 import {
   getQualityUnqualifiedInfo,
-  qualityUnqualifiedAdd,
-  qualityUnqualifiedUpdate
+  qualityUnqualifiedDeal
 } from "@/api/qualityManagement/nonconformingManagement.js";
 const { proxy } = getCurrentInstance()
 const emit = defineEmits(['close'])
@@ -152,7 +143,6 @@
     quantity: "",
     checkCompany: "",
     checkResult: "",
-    inspectState: '',
     inspectType: '',
     defectivePhenomena: '',
     dealResult: '',
@@ -186,7 +176,8 @@
   getProductOptions();
   if (operationType.value === 'edit') {
     getQualityUnqualifiedInfo(row.id).then(res => {
-      form.value = {...res.data}
+      const { inspectState, ...rest } = (res.data || {})
+      form.value = { ...rest }
     })
   }
 }
@@ -230,17 +221,12 @@
 const submitForm = () => {
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
-      if (operationType.value === "add") {
-        qualityUnqualifiedAdd(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      } else {
-        qualityUnqualifiedUpdate(form.value).then(res => {
-          proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-          closeDia();
-        })
-      }
+      // 鐘舵�佸瓧娈典笉鍦ㄨ〃鍗曞~鍐欙紝涔熶笉浼犵粰鍚庣锛涘鐞嗙粺涓�璧� /deal 鎺ュ彛
+      const { inspectState, ...payload } = (form.value || {})
+      qualityUnqualifiedDeal(payload).then(() => {
+        proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+        closeDia();
+      })
     }
   })
 }
diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index c0fd2ca..c8b2b15 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -185,6 +185,7 @@
         clickFun: (row) => {
           openForm("edit", row);
         },
+        disabled: (row) => row.inspectState === 1,
       },
       {
         name: "澶勭悊",
@@ -192,6 +193,7 @@
         clickFun: (row) => {
           openInspectionForm("edit", row);
         },
+        disabled: (row) => row.inspectState === 1,
       },
     ],
   },
@@ -247,12 +249,20 @@
 
 // 鎵撳紑寮规
 const openForm = (type, row) => {
+  if (type !== 'add' && row?.inspectState === 1) {
+    proxy.$modal.msgWarning("宸插鐞嗙殑鏁版嵁涓嶈兘鍐嶇紪杈�");
+    return;
+  }
   nextTick(() => {
     formDia.value?.openDialog(type, row)
   })
 };
 // 鎵撳紑澶勭悊寮规
 const openInspectionForm = (type, row) => {
+  if (row?.inspectState === 1) {
+    proxy.$modal.msgWarning("宸插鐞嗙殑鏁版嵁涓嶈兘鍐嶅鐞�");
+    return;
+  }
   nextTick(() => {
     inspectionFormDia.value?.openDialog(type, row)
   })

--
Gitblit v1.9.3