From 6570b36a352edd87532dcf13a124181d4d815a39 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 30 六月 2026 13:23:26 +0800
Subject: [PATCH] 销项发票页面新增录入发票功能

---
 src/views/procurementManagement/qualityInspection/index.vue |   66 +++++++++++++++++++++++++++------
 1 files changed, 54 insertions(+), 12 deletions(-)

diff --git a/src/views/procurementManagement/qualityInspection/index.vue b/src/views/procurementManagement/qualityInspection/index.vue
index ab19d6f..aee1d99 100644
--- a/src/views/procurementManagement/qualityInspection/index.vue
+++ b/src/views/procurementManagement/qualityInspection/index.vue
@@ -116,6 +116,18 @@
           <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>
@@ -126,7 +138,8 @@
 
 <script setup>
 import FormDialog from '@/components/Dialog/FormDialog.vue';
-import { ref, reactive } from 'vue'
+import { ref, reactive, computed } from 'vue'
+import dayjs from 'dayjs'
 import { ElMessage, ElMessageBox } from 'element-plus'
 
 const loading = ref(false)
@@ -144,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 = [
@@ -190,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