From 7d35021cc11e97622ba86c9275e0fd715d7f4089 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 02 四月 2026 11:52:46 +0800
Subject: [PATCH] feat:不合格生产日期

---
 src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue |  209 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 135 insertions(+), 74 deletions(-)

diff --git a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
index 5e18b06..03a00ac 100644
--- a/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
+++ b/src/views/qualityManagement/nonconformingManagement/components/inspectionFormDia.vue
@@ -1,12 +1,18 @@
 <template>
   <div>
     <el-dialog
-        v-model="dialogFormVisible"
-        :title="operationType === 'add' ? '鏂板涓嶅悎鏍煎鐞�' : '澶勭悊涓嶅悎鏍�'"
-        width="70%"
-        @close="closeDia"
+      v-model="dialogFormVisible"
+      :title="operationType === 'add' ? '鏂板涓嶅悎鏍煎鐞�' : '澶勭悊涓嶅悎鏍�'"
+      width="70%"
+      @close="closeDia"
     >
-      <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+      <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="inspectType">
@@ -22,33 +28,48 @@
           <el-col :span="12">
             <el-form-item label="浜у搧鍚嶇О锛�" prop="productId">
               <el-tree-select
-                  v-model="form.productId"
-                  placeholder="璇烽�夋嫨"
-                  clearable
-                  disabled
-                  check-strictly
-                  @change="getModels"
-                  :data="productOptions"
-                  :render-after-expand="false"
-                  style="width: 100%"
+                v-model="form.productId"
+                placeholder="璇烽�夋嫨"
+                clearable
+                disabled
+                check-strictly
+                @change="getModels"
+                :data="productOptions"
+                :render-after-expand="false"
+                style="width: 100%"
               />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="model">
-              <el-input v-model="form.model" placeholder="璇疯緭鍏�" clearable disabled/>
+              <el-input
+                v-model="form.model"
+                placeholder="璇疯緭鍏�"
+                clearable
+                disabled
+              />
             </el-form-item>
           </el-col>
         </el-row>
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="鍗曚綅锛�" prop="unit">
-              <el-input v-model="form.unit" placeholder="璇疯緭鍏�" clearable disabled/>
+              <el-input
+                v-model="form.unit"
+                placeholder="璇疯緭鍏�"
+                clearable
+                disabled
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏁伴噺锛�" prop="quantity">
-              <el-input v-model="form.quantity" placeholder="璇疯緭鍏�" clearable disabled/>
+              <el-input
+                v-model="form.quantity"
+                placeholder="璇疯緭鍏�"
+                clearable
+                disabled
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -58,24 +79,38 @@
               <el-input v-model="form.batchNo" placeholder="鈥�" disabled />
             </el-form-item>
           </el-col>
+          <el-col :span="12">
+            <el-form-item label="鐢熶骇鏃ユ湡锛�" prop="productionDate">
+              <el-input
+                v-model="form.productionDate"
+                placeholder="鈥�"
+                disabled
+              />
+            </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 disabled/>
+              <el-input
+                v-model="form.checkName"
+                placeholder="璇疯緭鍏�"
+                clearable
+                disabled
+              />
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�娴嬫棩鏈燂細" prop="checkTime">
               <el-date-picker
-                  v-model="form.checkTime"
-                  type="date"
-                  disabled
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
+                v-model="form.checkTime"
+                type="date"
+                disabled
+                placeholder="璇烽�夋嫨鏃ユ湡"
+                value-format="YYYY-MM-DD"
+                format="YYYY-MM-DD"
+                clearable
+                style="width: 100%"
               />
             </el-form-item>
           </el-col>
@@ -83,13 +118,26 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="涓嶅悎鏍肩幇璞★細" prop="defectivePhenomena">
-              <el-input v-model="form.defectivePhenomena" placeholder="璇疯緭鍏�" clearable/>
+              <el-input
+                v-model="form.defectivePhenomena"
+                placeholder="璇疯緭鍏�"
+                clearable
+              />
             </el-form-item>
           </el-col>
           <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-select
+                v-model="form.dealResult"
+                placeholder="璇烽�夋嫨"
+                clearable
+              >
+                <el-option
+                  :label="item.label"
+                  :value="item.value"
+                  v-for="item in filteredRejectionHandling"
+                  :key="item.value"
+                />
               </el-select>
             </el-form-item>
           </el-col>
@@ -97,21 +145,31 @@
         <el-row :gutter="30">
           <el-col :span="12">
             <el-form-item label="澶勭悊浜猴細" prop="dealName">
-              <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
+                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">
             <el-form-item label="澶勭悊鏃ユ湡锛�" prop="dealTime">
               <el-date-picker
-                  v-model="form.dealTime"
-                  type="date"
-                  placeholder="璇烽�夋嫨鏃ユ湡"
-                  value-format="YYYY-MM-DD"
-                  format="YYYY-MM-DD"
-                  clearable
-                  style="width: 100%"
+                v-model="form.dealTime"
+                type="date"
+                placeholder="璇烽�夋嫨鏃ユ湡"
+                value-format="YYYY-MM-DD"
+                format="YYYY-MM-DD"
+                clearable
+                style="width: 100%"
               />
             </el-form-item>
           </el-col>
@@ -128,19 +186,19 @@
 </template>
 
 <script setup>
-import {ref, reactive, toRefs, computed, getCurrentInstance} from "vue";
-import {productTreeList} from "@/api/basicData/product.js";
+import { ref, reactive, toRefs, computed, getCurrentInstance } from "vue";
+import { productTreeList } from "@/api/basicData/product.js";
 import {
   getQualityUnqualifiedInfo,
-  qualityUnqualifiedDeal
+  qualityUnqualifiedDeal,
 } from "@/api/qualityManagement/nonconformingManagement.js";
-import {userListNoPage} from "@/api/system/user.js";
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['close'])
+import { userListNoPage } from "@/api/system/user.js";
+const { proxy } = getCurrentInstance();
+const emit = defineEmits(["close"]);
 
-const { rejection_handling } = proxy.useDict("rejection_handling")
+const { rejection_handling } = proxy.useDict("rejection_handling");
 const dialogFormVisible = ref(false);
-const operationType = ref('')
+const operationType = ref("");
 const data = reactive({
   form: {
     checkTime: "",
@@ -150,19 +208,20 @@
     productId: "",
     model: "",
     batchNo: "",
+    productionDate: "",
     unit: "",
     quantity: "",
     checkCompany: "",
     checkResult: "",
-    inspectType: '',
-    defectivePhenomena: '',
-    dealResult: '',
-    dealName: '',
-    dealTime: '',
-    method: undefined
+    inspectType: "",
+    defectivePhenomena: "",
+    dealResult: "",
+    dealName: "",
+    dealTime: "",
+    method: undefined,
   },
   rules: {
-    checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" },],
+    checkTime: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     process: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkName: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     productId: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
@@ -171,7 +230,9 @@
     quantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkCompany: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
     checkResult: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
-    defectivePhenomena: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+    defectivePhenomena: [
+      { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+    ],
     dealResult: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
     dealName: [{ required: true, message: "璇烽�夋嫨澶勭悊浜�", trigger: "change" }],
     dealTime: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
@@ -184,11 +245,13 @@
 const filteredRejectionHandling = computed(() => {
   const data = rejection_handling.value;
   if (form.value.method) {
-    return data.filter(item => item && item.label && item.label !== '杩斿伐' && item.label !== '杩斾慨')
+    return data.filter(
+      (item) =>
+        item && item.label && item.label !== "杩斿伐" && item.label !== "杩斾慨"
+    );
   }
-  return data
-})
-
+  return data;
+});
 
 // 鎵撳紑寮规
 const openDialog = async (type, row) => {
@@ -204,14 +267,14 @@
   dialogFormVisible.value = true;
   form.value = {};
   getProductOptions();
-  if (operationType.value === 'edit') {
-    getQualityUnqualifiedInfo(row.id).then(res => {
-      const { inspectState, ...rest } = (res.data || {})
+  if (operationType.value === "edit") {
+    getQualityUnqualifiedInfo(row.id).then((res) => {
+      const { inspectState, ...rest } = res.data || {};
       // 鏈夋暟鎹氨鏄剧ず榛樿鍊硷紝娌℃湁灏变笉鏄剧ず
-      form.value = { ...rest }
-    })
+      form.value = { ...rest };
+    });
   }
-}
+};
 const getProductOptions = () => {
   productTreeList().then((res) => {
     productOptions.value = convertIdToValue(res);
@@ -244,34 +307,32 @@
     if (children && children.length > 0) {
       newItem.children = convertIdToValue(children);
     }
-    
+
     return newItem;
   });
 }
 // 鎻愪氦浜у搧琛ㄥ崟
 const submitForm = () => {
-  proxy.$refs.formRef.validate(valid => {
+  proxy.$refs.formRef.validate((valid) => {
     if (valid) {
       // 鐘舵�佸瓧娈典笉鍦ㄨ〃鍗曞~鍐欙紝涔熶笉浼犵粰鍚庣锛涘鐞嗙粺涓�璧� /deal 鎺ュ彛
-      const { inspectState, ...payload } = (form.value || {})
+      const { inspectState, ...payload } = form.value || {};
       qualityUnqualifiedDeal(payload).then(() => {
         proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
         closeDia();
-      })
+      });
     }
-  })
-}
+  });
+};
 // 鍏抽棴寮规
 const closeDia = () => {
   proxy.resetForm("formRef");
   dialogFormVisible.value = false;
-  emit('close')
+  emit("close");
 };
 defineExpose({
   openDialog,
 });
 </script>
 
-<style scoped>
-
-</style>
\ No newline at end of file
+<style scoped></style>

--
Gitblit v1.9.3