From e61eb3be4fc933c67cbe3a1a9d08d41ac2d26a1b Mon Sep 17 00:00:00 2001
From: chenhj <1263187585@qq.com>
Date: 星期三, 18 三月 2026 11:48:13 +0800
Subject: [PATCH] Merge branch 'dev_衡阳_鹏创电子' of http://114.132.189.42:9002/r/product-inventory-management into dev_衡阳_鹏创电子

---
 src/views/productionManagement/productionProcess/index.vue                           |    2 
 src/views/qualityManagement/metricMaintenance/StandardFormDialog.vue                 |    4 +-
 src/views/productionManagement/workOrder/index.vue                                   |    2 
 src/views/qualityManagement/finalInspection/components/formDia.vue                   |   13 +++++-
 src/views/qualityManagement/metricMaintenance/index.vue                              |    2 
 src/views/qualityManagement/finalInspection/index.vue                                |   12 +++++
 src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue |   21 ++++++++--
 src/api/qualityManagement/nonconformingManagement.js                                 |    9 ++++
 src/views/qualityManagement/nonconformingManagement/index.vue                        |   18 ++++++++
 9 files changed, 70 insertions(+), 13 deletions(-)

diff --git a/src/api/qualityManagement/nonconformingManagement.js b/src/api/qualityManagement/nonconformingManagement.js
index 50a1b74..1f4bb35 100644
--- a/src/api/qualityManagement/nonconformingManagement.js
+++ b/src/api/qualityManagement/nonconformingManagement.js
@@ -48,3 +48,12 @@
     data: query,
   });
 }
+
+// 鍙栨秷闅旂
+export function liftTheQuarantineQualityUnqualified(query) {
+  return request({
+    url: "/quality/qualityUnqualified/liftTheQuarantine",
+    method: "post",
+    data: query,
+  });
+}
diff --git a/src/views/productionManagement/productionProcess/index.vue b/src/views/productionManagement/productionProcess/index.vue
index df847df..04d5200 100644
--- a/src/views/productionManagement/productionProcess/index.vue
+++ b/src/views/productionManagement/productionProcess/index.vue
@@ -179,7 +179,7 @@
       width: 280,
       operation: [
         {
-          name: "鏌ョ湅",
+          name: "缁戝畾鐢熶骇璁板綍",
           type: "text",
           clickFun: row => {
             showProcessParamModal(row);
diff --git a/src/views/productionManagement/workOrder/index.vue b/src/views/productionManagement/workOrder/index.vue
index 602263c..4155757 100644
--- a/src/views/productionManagement/workOrder/index.vue
+++ b/src/views/productionManagement/workOrder/index.vue
@@ -364,7 +364,7 @@
         clickFun: row => {
           showReportDialog(row);
         },
-        disabled: row => row.planQuantity <= 0,
+        disabled: row => !row.isCanReport || row.planQuantity <= 0,
       },
     ],
   },
diff --git a/src/views/qualityManagement/finalInspection/components/formDia.vue b/src/views/qualityManagement/finalInspection/components/formDia.vue
index 5f4c975..498b10b 100644
--- a/src/views/qualityManagement/finalInspection/components/formDia.vue
+++ b/src/views/qualityManagement/finalInspection/components/formDia.vue
@@ -49,6 +49,11 @@
               </el-select>
             </el-form-item>
           </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="quantityDisabled"/>
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
@@ -57,8 +62,10 @@
             </el-form-item>
           </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="quantityDisabled"/>
+            <el-form-item label="涓嶈壇鍘熷洜锛�" prop="defectiveReason">
+              <el-select v-model="form.defectiveReason" placeholder="璇烽�夋嫨" clearable style="width: 100%">
+                <el-option :label="item.label" :value="item.value" v-for="(item,index) in defective_reason" :key="index" />
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -145,6 +152,7 @@
     productModelId: "",
     model: "",
     testStandardId: "",
+    defectiveReason: undefined,
     unit: "",
     quantity: "",
     checkCompany: "",
@@ -171,6 +179,7 @@
 });
 const supplierList = ref([]);
 const productOptions = ref([]);
+const { defective_reason } = proxy.useDict("defective_reason");
 const tableColumn = ref([
 	{
 		label: "鎸囨爣",
diff --git a/src/views/qualityManagement/finalInspection/index.vue b/src/views/qualityManagement/finalInspection/index.vue
index db44222..2a2360b 100644
--- a/src/views/qualityManagement/finalInspection/index.vue
+++ b/src/views/qualityManagement/finalInspection/index.vue
@@ -19,7 +19,7 @@
         >
       </div>
       <div>
-        <el-button type="primary" @click="openForm('add')">鏂板</el-button>
+<!--        <el-button type="primary" @click="openForm('add')">鏂板</el-button>-->
         <el-button @click="handleOut">瀵煎嚭</el-button>
         <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>
       </div>
@@ -122,6 +122,16 @@
     width: 100
   },
   {
+    label: "涓嶈壇鏁伴噺",
+    prop: "defectiveQuantity",
+    width: 100
+  },
+  {
+    label: "涓嶈壇鍘熷洜",
+    prop: "defectiveReason",
+    width: 100
+  },
+  {
     label: "妫�娴嬪崟浣�",
     prop: "checkCompany",
     width: 120
diff --git a/src/views/qualityManagement/metricMaintenance/StandardFormDialog.vue b/src/views/qualityManagement/metricMaintenance/StandardFormDialog.vue
index 1ac03aa..6e22e4c 100644
--- a/src/views/qualityManagement/metricMaintenance/StandardFormDialog.vue
+++ b/src/views/qualityManagement/metricMaintenance/StandardFormDialog.vue
@@ -22,9 +22,9 @@
       </el-form-item>
       <el-form-item label="绫诲埆" prop="inspectType">
         <el-select v-model="form.inspectType" placeholder="璇烽�夋嫨绫诲埆" style="width: 100%">
-          <el-option label="鍘熸潗鏂欐楠�" value="0" />
+<!--          <el-option label="鍘熸潗鏂欐楠�" value="0" />-->
           <el-option label="杩囩▼妫�楠�" value="1" />
-          <el-option label="鍑哄巶妫�楠�" value="2" />
+          <el-option label="鎴愬搧妫�楠�" value="2" />
           <el-option label="宸℃" value="3" />
         </el-select>
       </el-form-item>
diff --git a/src/views/qualityManagement/metricMaintenance/index.vue b/src/views/qualityManagement/metricMaintenance/index.vue
index 5b2c6bd..3fb52e9 100644
--- a/src/views/qualityManagement/metricMaintenance/index.vue
+++ b/src/views/qualityManagement/metricMaintenance/index.vue
@@ -304,7 +304,7 @@
       const map = {
         0: '鍘熸潗鏂欐楠�',
         1: '杩囩▼妫�楠�',
-        2: '鍑哄巶妫�楠�'
+        2: '鎴愬搧妫�楠�'
       }
       return map[val] || val
     }
diff --git a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
index 8f4492a..9c83d2d 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
@@ -13,7 +13,7 @@
               <el-select v-model="form.inspectType" disabled>
                 <el-option label="鍘熸潗鏂欐楠�" :value="0" />
                 <el-option label="杩囩▼妫�楠�" :value="1" />
-                <el-option label="鍑哄巶妫�楠�" :value="2" />
+                <el-option label="鎴愬搧妫�楠�" :value="2" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -82,7 +82,7 @@
           <el-col :span="12">
             <el-form-item label="澶勭悊缁撴灉锛�" prop="dealResult">
               <el-select v-model="form.dealResult" placeholder="璇烽�夋嫨" clearable>
-                <el-option :label="item.label" :value="item.value" v-for="item in filteredRejectionHandling" :key="item.value" />
+                <el-option :label="item.label" :value="item.value" v-for="item in filteredRejectionHandling" :key="item.value" :disabled="form.process === '鍗伴摐' && item.value !== '鎶ュ簾'" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -109,6 +109,13 @@
             </el-form-item>
           </el-col>
         </el-row>
+        <el-row :gutter="30" v-if="form.dealResult === '闅旂'">
+          <el-col :span="12">
+            <el-form-item label="澶囨敞锛�" prop="remark">
+              <el-input type="textarea"  v-model="form.remark" :rows="3" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -121,7 +128,7 @@
 </template>
 
 <script setup>
-import {ref, reactive, toRefs, computed} from "vue";
+import {ref, reactive, toRefs, computed, watch} from "vue";
 import {productTreeList} from "@/api/basicData/product.js";
 import {
   getQualityUnqualifiedInfo,
@@ -151,7 +158,8 @@
     dealResult: '',
     dealName: '',
     dealTime: '',
-    method: undefined
+    method: undefined,
+    remark: undefined
   },
   rules: {
     checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
@@ -181,6 +189,11 @@
   return data
 })
 
+watch(() => form.value.dealResult, (newVal) => {
+  if (newVal !== '闅旂') {
+    form.value.remark = undefined;
+  }
+});
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
diff --git a/src/views/qualityManagement/nonconformingManagement/index.vue b/src/views/qualityManagement/nonconformingManagement/index.vue
index 55d2472..7b4d55b 100644
--- a/src/views/qualityManagement/nonconformingManagement/index.vue
+++ b/src/views/qualityManagement/nonconformingManagement/index.vue
@@ -63,7 +63,7 @@
 import {onMounted, ref, reactive, toRefs, nextTick, getCurrentInstance} from "vue";
 import FormDia from "@/views/qualityManagement/nonconformingManagement/components/formDia.vue";
 import {ElMessageBox} from "element-plus";
-import {qualityUnqualifiedDel, qualityUnqualifiedListPage} from "@/api/qualityManagement/nonconformingManagement.js";
+import {qualityUnqualifiedDel, qualityUnqualifiedListPage, liftTheQuarantineQualityUnqualified} from "@/api/qualityManagement/nonconformingManagement.js";
 import InspectionFormDia from "@/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue";
 import dayjs from "dayjs";
 
@@ -180,6 +180,14 @@
     width: 100,
     operation: [
       {
+        name: "鍙栨秷闅旂",
+        type: "text",
+        clickFun: (row) => {
+          liftTheQuarantine(row);
+        },
+        showHide: (row) => row.dealResult === '闅旂' && !row.quarantineLifted
+      },
+      {
         name: "澶勭悊",
         type: "text",
         clickFun: (row) => {
@@ -260,6 +268,14 @@
   })
 };
 
+const liftTheQuarantine = (row) => {
+  proxy.$modal.confirm("鏄惁纭鍙栨秷闅旂?").then(function () {
+    return liftTheQuarantineQualityUnqualified(row)
+  }).then(() => {
+    proxy.$modal.msgSuccess("鍙栨秷闅旂鎴愬姛");
+    getList();
+  }).catch(() => {})
+}
 // 鍒犻櫎
 const handleDelete = () => {
   let ids = [];

--
Gitblit v1.9.3