From 08e38ede28f7cf8c971f84bff3a03102882a8a4b Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 01 四月 2026 11:32:13 +0800
Subject: [PATCH] 增加料号显示

---
 src/views/qualityManagement/nonconformingManagement/components/formDia.vue |   77 +++++++++++++++++++++++++++++++-------
 1 files changed, 62 insertions(+), 15 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
index d33ddad..0351f5c 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/formDia.vue
@@ -11,9 +11,8 @@
           <el-col :span="12">
             <el-form-item label="绫诲埆锛�" prop="inspectType">
               <el-select v-model="form.inspectType">
-                <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>
@@ -44,6 +43,11 @@
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
+            <el-form-item label="鏂欏彿锛�" prop="materialCode">
+              <el-input v-model="form.materialCode" placeholder="璇疯緭鍏�" disabled/>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
             <el-form-item label="鍗曚綅锛�" prop="unit">
               <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable/>
             </el-form-item>
@@ -53,11 +57,12 @@
               <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�" clearable :precision="2"/>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="30">
+
           <el-col :span="12">
             <el-form-item label="妫�楠屽憳锛�" prop="checkName">
-              <el-input v-model="form.checkName" placeholder="璇疯緭鍏�" clearable/>
+              <el-select v-model="form.checkName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
+                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -73,8 +78,7 @@
               />
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="30">
+
           <el-col :span="12">
             <el-form-item label="涓嶅悎鏍肩幇璞★細" prop="defectivePhenomena">
               <el-input v-model="form.defectivePhenomena" placeholder="璇疯緭鍏�" clearable/>
@@ -87,11 +91,12 @@
               </el-select>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="30">
+
           <el-col :span="12">
             <el-form-item label="澶勭悊浜猴細" prop="dealName">
-              <el-input v-model="form.dealName" placeholder="璇疯緭鍏�" clearable/>
+              <el-select v-model="form.dealName" placeholder="璇烽�夋嫨" clearable style="width: 100%">
+                <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -120,14 +125,17 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
+import {ref, reactive, toRefs} from "vue";
 import {modelList, productTreeList} from "@/api/basicData/product.js";
 import {
   getQualityUnqualifiedInfo,
   qualityUnqualifiedAdd,
   qualityUnqualifiedUpdate
 } from "@/api/qualityManagement/nonconformingManagement.js";
+import {userListNoPage} from "@/api/system/user.js";
+import useUserStore from "@/store/modules/user";
 const { proxy } = getCurrentInstance()
+const userStore = useUserStore()
 const emit = defineEmits(['close'])
 
 const dialogFormVisible = ref(false);
@@ -142,34 +150,64 @@
     productId: "",
     model: "",
     unit: "",
+    materialCode: "",
     quantity: "",
     checkCompany: "",
     checkResult: "",
     inspectType: '',
     defectivePhenomena: '',
     dealResult: '',
+    dealName: '',
+    dealTime: '',
   },
   rules: {
     checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
     process: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
-    checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    checkName: [{ required: true, message: "璇烽�夋嫨妫�楠屽憳", trigger: "change" }],
     productId: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     model: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     unit: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
+    dealName: [{ required: true, message: "璇烽�夋嫨澶勭悊浜�", trigger: "change" }],
   },
 });
 const { form, rules } = toRefs(data);
 const productOptions = ref([]);
-const modelOptions = ref([])
+const modelOptions = ref([]);
+const userList = ref([]); // 妫�楠屽憳/澶勭悊浜轰笅鎷夊垪琛�
 
 // 鎵撳紑寮规
-const openDialog = (type, row) => {
+const openDialog = async (type, row) => {
   operationType.value = type;
+  try {
+    const userRes = await userListNoPage();
+    userList.value = userRes.data || [];
+  } catch (e) {
+    console.error("鍔犺浇鐢ㄦ埛鍒楄〃澶辫触", e);
+    userList.value = [];
+  }
   dialogFormVisible.value = true;
-  form.value = {}
+  if (operationType.value === 'add') {
+    form.value = {
+      checkName: userStore.nickName || '',
+      dealName: '',
+      dealTime: '',
+      dealResult: '',
+      defectivePhenomena: '',
+      inspectType: '',
+      checkTime: '',
+      productId: '',
+      model: '',
+      unit: '',
+      materialCode: '',
+      quantity: '',
+      productName: '',
+    };
+  } else {
+    form.value = {};
+  }
   getProductOptions();
   if (operationType.value === 'edit') {
     getQualityUnqualifiedInfo(row.id).then(res => {
@@ -217,12 +255,21 @@
     return newItem;
   });
 }
+
+const handleChangeModel = (value) => {
+  form.value.materialCode = modelOptions.value.find(item => item.id == value)?.materialCode || '';
+}
+
 // 鎻愪氦浜у搧琛ㄥ崟
 const submitForm = () => {
   proxy.$refs.formRef.validate(valid => {
     if (valid) {
       // 鐘舵�佸瓧娈典笉鍦ㄨ〃鍗曞~鍐欙紝涔熶笉浼犵粰鍚庣
       const { inspectState, ...payload } = (form.value || {})
+      const selectedModel = modelOptions.value.find(item =>
+          String(item.id) === String(payload.model)
+      );
+      payload.model = selectedModel ? selectedModel.model : '';
       if (operationType.value === "add") {
         qualityUnqualifiedAdd(payload).then(res => {
           proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");

--
Gitblit v1.9.3