From d460a2475ccf345d119701f3c631584f747ce2f5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 15 六月 2026 17:17:25 +0800
Subject: [PATCH] 君歌 1.不需要bom、生产核算 2.新增销售台账后自动生成一个生产订单,然后对订单进行排产 3.生产排产要求可以选择计划时间,时间格式为年月日+时分秒;也要可以多选报工人 4.web和app生产报工中要细分报工开始和报工结束两个操作,根据操作的提交时间记录实际报工时长展示报工台账中 5.报工人选择的谁,只有在相关账号才能看到可报工的数据 6.不合格管理字段按照单据进行修改。 7.生产工时、质量问题汇总、客户档案、销售及回款都能从各模块中导出数据

---
 src/views/qualityManagement/nonconformingManagement/components/orderFormDia.vue |  428 +++++++++++++++++++++++++++++++---------------------
 1 files changed, 255 insertions(+), 173 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/components/orderFormDia.vue b/src/views/qualityManagement/nonconformingManagement/components/orderFormDia.vue
index 0cba8c3..9bba241 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/orderFormDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/orderFormDia.vue
@@ -2,166 +2,220 @@
   <div>
     <el-dialog
       v-model="dialogFormVisible"
-      :title="operationType === 'add' ? '鏂板涓嶅悎鏍煎搧澶勭悊鍗�' : '缂栬緫涓嶅悎鏍煎搧澶勭悊鍗�'"
-      width="70%"
+      :title="operationType === 'add' ? '鏂板涓嶅悎鏍煎搧澶勭悊鍗�' : operationType === 'view' ? '涓嶅悎鏍煎搧澶勭悊鍗曡鎯�' : operationType === 'dispose' ? '澶勭疆涓嶅悎鏍煎搧澶勭悊鍗�' : '缂栬緫涓嶅悎鏍煎搧澶勭悊鍗�'"
+      width="75%"
       @close="closeDia"
     >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
-        <el-row :gutter="30">
+      <el-form :model="form" label-width="130px" :rules="rules" ref="formRef">
+        <!-- 鍏宠仈涓嶅悎鏍煎搧锛堜粎鏂板鏃讹級 -->
+        <el-row :gutter="20" v-if="operationType === 'add'">
           <el-col :span="12">
-            <el-form-item label="椤圭洰鍚嶇О" prop="projectName">
-              <el-input v-model="form.projectName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="椤圭洰缂栧彿" prop="projectNo">
-              <el-input v-model="form.projectNo" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="璁惧鍚嶇О" prop="equipmentName">
-              <el-input v-model="form.equipmentName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="璁惧鍥惧彿" prop="equipmentDrawingNo">
-              <el-input v-model="form.equipmentDrawingNo" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鐗╂枡/閮ㄤ欢鍚嶇О" prop="materialName">
-              <el-input v-model="form.materialName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鐗╂枡鍥惧彿" prop="materialDrawingNo">
-              <el-input v-model="form.materialDrawingNo" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鍨嬪彿瑙勬牸" prop="specificationModel">
-              <el-input v-model="form.specificationModel" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏉愯川" prop="materialQuality">
-              <el-input v-model="form.materialQuality" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="鎬绘暟閲�" prop="quantity">
-              <el-input-number v-model="form.quantity" :min="0" style="width: 100%" :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="涓嶅悎鏍兼暟閲�" prop="unqualifiedQuantity">
-              <el-input-number v-model="form.unqualifiedQuantity" :min="0" style="width: 100%" :disabled="operationType === 'view'" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="涓嶅悎鏍煎伐搴�" prop="unqualifiedProcess">
-              <el-select v-model="form.unqualifiedProcess" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" style="width: 100%">
-                <el-option label="鏉ユ枡" :value="1" />
-                <el-option label="鍒剁▼" :value="2" />
-                <el-option label="鎴愬搧" :value="3" />
+            <el-form-item label="鍏宠仈涓嶅悎鏍煎搧" prop="unqualifiedId">
+              <el-select v-model="form.unqualifiedId" placeholder="閫夋嫨涓嶅悎鏍煎搧璁板綍" filterable clearable
+                @change="handleUnqualifiedSelect" style="width: 100%">
+                <el-option v-for="item in unqualifiedList" :key="item.id"
+                  :label="item.productName + ' ' + item.model + ' (' + item.quantity + ')'"
+                  :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName">
-              <el-input v-model="form.supplierName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
+            <el-form-item label="涓嶅悎鏍煎伐搴�">
+              <el-radio-group v-model="form.unqualifiedProcess" :disabled="operationType === 'view' || operationType === 'dispose'">
+                <el-radio :value="1">鏉ユ枡</el-radio>
+                <el-radio :value="2">鍒剁▼</el-radio>
+                <el-radio :value="3">鎴愬搧</el-radio>
+              </el-radio-group>
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-divider>鍩烘湰淇℃伅</el-divider>
+        <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="妫�楠屽憳" prop="inspectorName">
-              <el-input v-model="form.inspectorName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
+            <el-form-item label="椤圭洰鍚嶇О">
+              <el-input v-model="form.projectName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="妫�楠屾棩鏈�" prop="inspectDate">
-              <el-date-picker v-model="form.inspectDate" type="date" value-format="YYYY-MM-DD" format="YYYY-MM-DD" placeholder="璇烽�夋嫨" clearable style="width: 100%" :disabled="operationType === 'view'" />
+            <el-form-item label="椤圭洰缂栧彿">
+              <el-input v-model="form.projectNo" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-row :gutter="20">
           <el-col :span="12">
-            <el-form-item label="璐d换浜�" prop="responsiblePerson">
-              <el-input v-model="form.responsiblePerson" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
+            <el-form-item label="璁惧鍚嶇О">
+              <el-input v-model="form.equipmentName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="璐d换閮ㄩ棬" prop="responsibleDept">
-              <el-input v-model="form.responsibleDept" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" />
+            <el-form-item label="璁惧鍥惧彿">
+              <el-input v-model="form.equipmentDrawingNo" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="鐗╂枡/閮ㄤ欢鍚嶇О">
+              <el-input v-model="form.materialName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="鐗╂枡鍥惧彿">
+              <el-input v-model="form.materialDrawingNo" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="8">
+            <el-form-item label="鍨嬪彿瑙勬牸">
+              <el-input v-model="form.specificationModel" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="鏉愯川">
+              <el-input v-model="form.materialQuality" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="渚涘簲鍟�">
+              <el-input v-model="form.supplierName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-divider>涓嶅悎鏍间俊鎭�</el-divider>
+        <el-row :gutter="20">
+          <el-col :span="8">
+            <el-form-item label="鎬绘暟閲�">
+              <el-input-number v-model="form.quantity" :min="0" :precision="2" style="width: 100%" :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="涓嶅悎鏍兼暟閲�">
+              <el-input-number v-model="form.unqualifiedQuantity" :min="0" :precision="2" style="width: 100%" :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="妫�楠屾棩鏈�">
+              <el-date-picker v-model="form.inspectDate" type="date" value-format="YYYY-MM-DD" placeholder="璇烽�夋嫨" clearable style="width: 100%" :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="8">
+            <el-form-item label="妫�楠屽憳">
+              <el-input v-model="form.inspectorName" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="璐d换浜�">
+              <el-input v-model="form.responsiblePerson" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+          <el-col :span="8">
+            <el-form-item label="璐d换閮ㄩ棬">
+              <el-input v-model="form.responsibleDept" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="闂鎻忚堪" prop="problemDescription">
-              <el-input type="textarea" v-model="form.problemDescription" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="3" />
+            <el-form-item label="闂鎻忚堪">
+              <el-input type="textarea" v-model="form.problemDescription" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view' || operationType === 'dispose'" :rows="3" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-divider>澶勭疆鍐崇瓥</el-divider>
+        <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="鍘熷洜鍒嗘瀽鍙婂缓璁�" prop="reasonAnalysis">
+            <el-form-item label="澶勭疆鏂瑰紡" prop="disposalMethod">
+              <el-radio-group v-model="form.disposalMethod" :disabled="operationType === 'view'">
+                <el-radio :value="1">璁╂鎺ユ敹</el-radio>
+                <el-radio :value="2">鍘傚唴缁翠慨</el-radio>
+                <el-radio :value="3">杩斿巶缁翠慨</el-radio>
+                <el-radio :value="4">鎹㈣揣</el-radio>
+                <el-radio :value="5">閫�璐�</el-radio>
+                <el-radio :value="6">鎶ュ簾</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20" v-if="form.disposalMethod === 2 || form.disposalMethod === 3">
+          <el-col :span="24">
+            <el-form-item label="鍘傚唴/杩斿巶缁翠慨璇勪及">
+              <el-input type="textarea" v-model="form.repairEvaluation" placeholder="璇勪及缁翠慨鍙鎬с�佹墍闇�宸ユ椂銆佺墿鏂欑瓑" clearable :disabled="operationType === 'view'" :rows="3" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="鍘熷洜鍒嗘瀽鍙婂缓璁�">
               <el-input type="textarea" v-model="form.reasonAnalysis" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="3" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="绾犳鎺柦" prop="correctionAction">
-              <el-input type="textarea" v-model="form.correctionAction" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="3" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="澶勭疆鏂瑰紡" prop="disposalMethod">
-              <el-select v-model="form.disposalMethod" placeholder="璇烽�夋嫨" clearable :disabled="operationType === 'view'" style="width: 100%">
-                <el-option label="璁╂鎺ユ敹" :value="1" />
-                <el-option label="鍘傚唴缁翠慨" :value="2" />
-                <el-option label="杩斿巶缁翠慨" :value="3" />
-                <el-option label="鎹㈣揣" :value="4" />
-                <el-option label="閫�璐�" :value="5" />
-                <el-option label="鎶ュ簾" :value="6" />
-              </el-select>
+
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="绾犳鎺柦">
+              <el-input type="textarea" v-model="form.correctionAction" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="2" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="缁翠慨璇勪及" prop="repairEvaluation">
-              <el-input type="textarea" v-model="form.repairEvaluation" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="3" />
+            <el-form-item label="棰勯槻鎺柦">
+              <el-input type="textarea" v-model="form.preventiveAction" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="2" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-divider>瀹℃壒鎰忚</el-divider>
+        <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="棰勯槻鎺柦" prop="preventiveAction">
-              <el-input type="textarea" v-model="form.preventiveAction" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="3" />
+            <el-form-item label="璐d换閮ㄩ棬涓荤鎰忚">
+              <el-input type="textarea" v-model="form.deptOpinion" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="2" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-row :gutter="20">
           <el-col :span="24">
-            <el-form-item label="澶囨敞" prop="remark">
+            <el-form-item label="鍏徃澶勭悊鍐冲畾">
+              <el-input type="textarea" v-model="form.companyDecision" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="2" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="鎬荤粡鐞嗘剰瑙�">
+              <el-input type="textarea" v-model="form.generalManagerOpinion" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="2" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="24">
+            <el-form-item label="澶囨敞">
               <el-input type="textarea" v-model="form.remark" placeholder="璇疯緭鍏�" clearable :disabled="operationType === 'view'" :rows="2" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row :gutter="30">
+
+        <el-divider>闄勪欢</el-divider>
+        <el-row :gutter="20">
           <el-col :span="24">
             <el-form-item label="闄勪欢">
               <FileUpload v-model:file-list="form.storageBlobDTOs" :file-list="form.storageBlobVOs" :disabled="operationType === 'view'" />
@@ -181,7 +235,13 @@
 
 <script setup>
 import { ref, reactive, toRefs, getCurrentInstance } from "vue";
-import { save, update, getDetail } from "@/api/qualityManagement/qualityUnqualifiedOrder.js";
+import {
+  saveQualityUnqualifiedOrder,
+  updateQualityUnqualifiedOrder,
+  getQualityUnqualifiedOrderDetail,
+  qualityUnqualifiedListPage,
+  dealQualityUnqualifiedOrder,
+} from "@/api/qualityManagement/nonconformingManagement.js";
 import FileUpload from "@/components/AttachmentUpload/file/index.vue";
 
 const { proxy } = getCurrentInstance();
@@ -189,77 +249,82 @@
 
 const dialogFormVisible = ref(false);
 const operationType = ref("");
+const unqualifiedList = ref([]);
+
+const emptyForm = {
+  unqualifiedId: undefined,
+  projectName: "",
+  projectNo: "",
+  equipmentId: undefined,
+  equipmentName: "",
+  equipmentDrawingNo: "",
+  materialName: "",
+  productModelId: undefined,
+  materialDrawingNo: "",
+  specificationModel: "",
+  materialQuality: "",
+  quantity: undefined,
+  unqualifiedQuantity: undefined,
+  unqualifiedProcess: undefined,
+  supplierName: "",
+  inspectorName: "",
+  inspectDate: "",
+  responsiblePerson: "",
+  responsibleDept: "",
+  problemDescription: "",
+  reasonAnalysis: "",
+  correctionAction: "",
+  disposalMethod: undefined,
+  repairEvaluation: "",
+  preventiveAction: "",
+  deptOpinion: "",
+  companyDecision: "",
+  generalManagerOpinion: "",
+  remark: "",
+  storageBlobDTOs: [],
+  storageBlobVOs: [],
+};
 
 const data = reactive({
-  form: {
-    projectName: "",
-    projectNo: "",
-    equipmentName: "",
-    equipmentDrawingNo: "",
-    materialName: "",
-    materialDrawingNo: "",
-    specificationModel: "",
-    materialQuality: "",
-    quantity: undefined,
-    unqualifiedQuantity: undefined,
-    unqualifiedProcess: undefined,
-    supplierName: "",
-    inspectorName: "",
-    inspectDate: "",
-    responsiblePerson: "",
-    responsibleDept: "",
-    problemDescription: "",
-    reasonAnalysis: "",
-    correctionAction: "",
-    disposalMethod: undefined,
-    repairEvaluation: "",
-    preventiveAction: "",
-    remark: "",
-    storageBlobDTOs: [],
-    storageBlobVOs: [],
-  },
+  form: { ...emptyForm },
   rules: {
-    projectName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    unqualifiedId: [{ required: true, message: "璇烽�夋嫨鍏宠仈涓嶅悎鏍煎搧", trigger: "change" }],
+    disposalMethod: [{ required: true, message: "璇烽�夋嫨澶勭疆鏂瑰紡", trigger: "change" }],
   },
 });
 const { form, rules } = toRefs(data);
+
+const loadUnqualifiedList = () => {
+  qualityUnqualifiedListPage({ inspectState: 0, page: 1, size: 999 }).then(res => {
+    unqualifiedList.value = res.data?.records || [];
+  });
+};
+
+const handleUnqualifiedSelect = (id) => {
+  const record = unqualifiedList.value.find(item => item.id === id);
+  if (!record) return;
+  form.value.materialName = record.productName || "";
+  form.value.specificationModel = record.model || "";
+  form.value.quantity = record.quantity;
+  form.value.inspectorName = record.checkName || "";
+  form.value.inspectDate = record.checkTime || "";
+  form.value.problemDescription = record.defectivePhenomena || "";
+  form.value.unqualifiedProcess = record.inspectType != null ? record.inspectType + 1 : undefined;
+  form.value.unqualifiedQuantity = record.quantity;
+};
 
 const openDialog = async (type, row) => {
   operationType.value = type;
   dialogFormVisible.value = true;
   if (type === "add") {
-    form.value = {
-      projectName: "",
-      projectNo: "",
-      equipmentName: "",
-      equipmentDrawingNo: "",
-      materialName: "",
-      materialDrawingNo: "",
-      specificationModel: "",
-      materialQuality: "",
-      quantity: undefined,
-      unqualifiedQuantity: undefined,
-      unqualifiedProcess: undefined,
-      supplierName: "",
-      inspectorName: "",
-      inspectDate: "",
-      responsiblePerson: "",
-      responsibleDept: "",
-      problemDescription: "",
-      reasonAnalysis: "",
-      correctionAction: "",
-      disposalMethod: undefined,
-      repairEvaluation: "",
-      preventiveAction: "",
-      remark: "",
-      storageBlobDTOs: [],
-      storageBlobVOs: [],
-    };
+    loadUnqualifiedList();
+    Object.assign(data.form, { ...emptyForm });
   } else {
-    form.value = {};
+    Object.assign(data.form, { ...emptyForm });
     if (row?.id) {
-      getDetail(row.id).then((res) => {
-        form.value = res.data || res || {};
+      getQualityUnqualifiedOrderDetail(row.id).then((res) => {
+        const detail = res.data || res || {};
+        Object.assign(data.form, { ...emptyForm }, detail);
       });
     }
   }
@@ -268,14 +333,31 @@
 const submitForm = () => {
   proxy.$refs.formRef.validate((valid) => {
     if (valid) {
-      const { status, ...payload } = form.value || {};
+      const { status, storageBlobVOs, ...payload } = form.value || {};
       if (operationType.value === "add") {
-        save(payload).then(() => {
+        saveQualityUnqualifiedOrder(payload).then(() => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
           closeDia();
         });
+      } else if (operationType.value === "dispose") {
+        const dealFields = {
+          id: payload.id,
+          disposalMethod: payload.disposalMethod,
+          repairEvaluation: payload.repairEvaluation,
+          reasonAnalysis: payload.reasonAnalysis,
+          correctionAction: payload.correctionAction,
+          preventiveAction: payload.preventiveAction,
+          remark: payload.remark,
+          deptOpinion: payload.deptOpinion,
+          companyDecision: payload.companyDecision,
+          generalManagerOpinion: payload.generalManagerOpinion,
+        };
+        dealQualityUnqualifiedOrder(dealFields).then(() => {
+          proxy.$modal.msgSuccess("澶勭疆鎴愬姛");
+          closeDia();
+        });
       } else {
-        update(payload).then(() => {
+        updateQualityUnqualifiedOrder(payload).then(() => {
           proxy.$modal.msgSuccess("淇敼鎴愬姛");
           closeDia();
         });

--
Gitblit v1.9.3