From 2f3c83ce4a9962d6027aeac580d314ec322b2073 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 22 五月 2026 09:26:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_NEW_pro' into dev_NEW_pro

---
 src/api/financialManagement/revenueManagement.js            |   78 +++++++++++++++++++++++++++++++++++++++
 src/views/procurementManagement/qualityInspection/index.vue |   24 +++++++++++-
 src/views/reportAnalysis/dataDashboard/index0.vue           |    2 -
 3 files changed, 100 insertions(+), 4 deletions(-)

diff --git a/src/api/financialManagement/revenueManagement.js b/src/api/financialManagement/revenueManagement.js
new file mode 100644
index 0000000..090ddf8
--- /dev/null
+++ b/src/api/financialManagement/revenueManagement.js
@@ -0,0 +1,78 @@
+import request from "@/utils/request";
+
+// 鏌ヨ鍒楄〃
+export const listPage = (params) => {
+  return request({
+    url: "/account/accountIncome/listPage",
+    method: "get",
+    params,
+  });
+};
+
+// 鏂板
+export function add(data) {
+  return request({
+    url: "/account/accountIncome/add",
+    method: "post",
+    data: data,
+  });
+}
+
+// 缂栬緫
+export function update(data) {
+  return request({
+    url: "/account/accountIncome/update",
+    method: "post",
+    data: data,
+  });
+}
+
+//瀵煎嚭
+export const exportAccountIncome = (query) => {
+  return request({
+    url: "/account/accountIncome/export",
+    method: "post",
+    data: query,
+    responseType: "blob",
+  });
+};
+
+export const delAccountIncome = (query) => {
+  return request({
+    url: `account/accountIncome/del`,
+    method: "delete",
+    data: query,
+  });
+};
+
+export const getAccountIncome = (id) => {
+  return request({
+    url: `/account/accountIncome/${id}`,
+    method: "get",
+  });
+};
+
+// 鏌ヨ闄勪欢鍒楄〃
+export function fileListPage(query) {
+  return request({
+    url: "/account/accountFile/listPage",
+    method: "get",
+    params: query,
+  });
+}
+// 淇濆瓨闄勪欢鍒楄〃
+export function fileAdd(query) {
+  return request({
+    url: "/account/accountFile/add",
+    method: "post",
+    data: query,
+  });
+}
+// 鍒犻櫎闄勪欢鍒楄〃
+export function fileDel(query) {
+  return request({
+    url: "/account/accountFile/del",
+    method: "delete",
+    data: query,
+  });
+}
diff --git a/src/views/procurementManagement/qualityInspection/index.vue b/src/views/procurementManagement/qualityInspection/index.vue
index ab19d6f..7628839 100644
--- a/src/views/procurementManagement/qualityInspection/index.vue
+++ b/src/views/procurementManagement/qualityInspection/index.vue
@@ -205,6 +205,26 @@
 }
 
 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(),
@@ -212,8 +232,8 @@
       arrivalNo: formData.arrivalNo,
       supplierName: formData.supplierName,
       status: 'pending',
-      qualifiedQuantity: 0,
-      unqualifiedQuantity: 0,
+      qualifiedQuantity: totalQualified,
+      unqualifiedQuantity: totalUnqualified,
       inspectionTime: new Date().toLocaleString(),
       inspector: formData.inspector,
       remark: formData.remark
diff --git a/src/views/reportAnalysis/dataDashboard/index0.vue b/src/views/reportAnalysis/dataDashboard/index0.vue
index a89a174..5c0da22 100644
--- a/src/views/reportAnalysis/dataDashboard/index0.vue
+++ b/src/views/reportAnalysis/dataDashboard/index0.vue
@@ -322,8 +322,6 @@
 import {getRepairPage} from "@/api/equipmentManagement/repair.js";
 import {getUpkeepPage} from "@/api/equipmentManagement/upkeep.js";
 import {measuringInstrumentListPage} from "@/api/equipmentManagement/measurementEquipment.js";
-import {listPageAnalysis} from "@/api/financialManagement/expenseManagement.js";
-import {productOrderListPage} from "@/api/productionManagement/productionOrder.js";
 
 // 鍏ㄥ睆鐩稿叧鐘舵��
 const isFullscreen = ref(false);

--
Gitblit v1.9.3