From 1678465c039ce6255105c1fcdb3ace56860f44f9 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期一, 08 六月 2026 17:29:25 +0800
Subject: [PATCH] Merge branch 'dev_NEW_pro' of http://114.132.189.42:9002/r/product-inventory-management into dev_NEW_pro

---
 src/views/procurementManagement/qualityInspection/index.vue |   77 +++++++++++++++++++++++++++++---------
 1 files changed, 58 insertions(+), 19 deletions(-)

diff --git a/src/views/procurementManagement/qualityInspection/index.vue b/src/views/procurementManagement/qualityInspection/index.vue
index fd25ccf..aee1d99 100644
--- a/src/views/procurementManagement/qualityInspection/index.vue
+++ b/src/views/procurementManagement/qualityInspection/index.vue
@@ -49,7 +49,7 @@
       </el-table>
     </el-card>
 
-    <el-dialog v-model="dialogVisible" :title="dialogType === 'add' ? '鏂板璐ㄦ鍗�' : '缂栬緫璐ㄦ鍗�'" width="1000px">
+    <FormDialog v-model="dialogVisible" :title="dialogType === 'add' ? '鏂板璐ㄦ鍗�' : '缂栬緫璐ㄦ鍗�'" :width="'1000px'" :operation-type="dialogType" @close="dialogVisible = false" @confirm="handleSubmit" @cancel="dialogVisible = false">
       <el-form :model="formData" label-width="120px">
         <el-row :gutter="20">
           <el-col :span="12">
@@ -62,7 +62,7 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="渚涘簲鍟嗗悕绉�">
-              <el-input v-model="formData.supplierName" placeholder="渚涘簲鍟嗗悕绉�" readonly />
+              <el-input v-model="formData.supplierName" placeholder="渚涘簲鍟嗗悕绉�" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -116,20 +116,30 @@
           <el-input v-model="formData.inspector" placeholder="璇疯緭鍏ヨ川妫�鍛樺鍚�" />
         </el-form-item>
 
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="鍒涘缓鏃堕棿">
+              <el-date-picker v-model="formCreateTimeDate"
+                              type="date"
+                              placeholder="閫夋嫨鏃ユ湡"
+                              value-format="YYYY-MM-DD"
+                              style="width: 100%" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+
         <el-form-item label="澶囨敞">
           <el-input v-model="formData.remark" type="textarea" :rows="3" placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�" />
         </el-form-item>
       </el-form>
-      <template #footer>
-        <el-button @click="dialogVisible = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="handleSubmit">纭畾</el-button>
-      </template>
-    </el-dialog>
+    </FormDialog>
   </div>
 </template>
 
 <script setup>
-import { ref, reactive } from 'vue'
+import FormDialog from '@/components/Dialog/FormDialog.vue';
+import { ref, reactive, computed } from 'vue'
+import dayjs from 'dayjs'
 import { ElMessage, ElMessageBox } from 'element-plus'
 
 const loading = ref(false)
@@ -147,7 +157,14 @@
   supplierName: '',
   products: [],
   inspector: '',
-  remark: ''
+  remark: '',
+  createTime: ''
+})
+const formCreateTimeDate = computed({
+  get: () => (formData.createTime ? String(formData.createTime).split(' ')[0] : ''),
+  set: (value) => {
+    formData.createTime = value ? `${value} ${dayjs().format('HH:mm:ss')}` : ''
+  }
 })
 
 const mockData = [
@@ -193,31 +210,53 @@
       arrivalNo: row.arrivalNo, 
       supplierName: row.supplierName, 
       inspector: row.inspector,
-      remark: row.remark 
+      remark: row.remark,
+      createTime: row.createTime || ''
     })
   } else {
-    Object.assign(formData, { 
-      arrivalNo: '', 
-      supplierName: '', 
+    Object.assign(formData, {
+      arrivalNo: '',
+      supplierName: '',
       products: [],
-      inspector: '', 
-      remark: '' 
+      inspector: '',
+      remark: '',
+      createTime: dayjs().format('YYYY-MM-DD HH:mm:ss')
     })
   }
   dialogVisible.value = true
 }
 
 const handleSubmit = () => {
+  if (!formData.products || formData.products.length === 0) {
+    ElMessage.error('璇疯嚦灏戞坊鍔犱竴鏉¤川妫�鍟嗗搧')
+    return
+  }
+
+  for (let i = 0; i < formData.products.length; i++) {
+    const product = formData.products[i]
+    if (product.qualifiedQuantity === null || product.qualifiedQuantity === undefined) {
+      ElMessage.error(`绗�${i + 1}鏉″晢鍝佺殑鍚堟牸鏁伴噺涓嶈兘涓虹┖`)
+      return
+    }
+    if (product.unqualifiedQuantity === null || product.unqualifiedQuantity === undefined) {
+      ElMessage.error(`绗�${i + 1}鏉″晢鍝佺殑涓嶅悎鏍兼暟閲忎笉鑳戒负绌篳)
+      return
+    }
+  }
+
+  const totalQualified = formData.products.reduce((sum, p) => sum + (p.qualifiedQuantity || 0), 0)
+  const totalUnqualified = formData.products.reduce((sum, p) => sum + (p.unqualifiedQuantity || 0), 0)
+
   if (dialogType.value === 'add') {
     const newInspection = {
       id: Date.now(),
-      inspectionNo: `QI${Date.now()}`,
+      inspectionNo: '',
       arrivalNo: formData.arrivalNo,
       supplierName: formData.supplierName,
       status: 'pending',
-      qualifiedQuantity: 0,
-      unqualifiedQuantity: 0,
-      inspectionTime: new Date().toLocaleString(),
+      qualifiedQuantity: totalQualified,
+      unqualifiedQuantity: totalUnqualified,
+      inspectionTime: formData.createTime,
       inspector: formData.inspector,
       remark: formData.remark
     }

--
Gitblit v1.9.3