From 446234bee3336d10e3fe836ae8e0ca1594d1a55a Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Sat, 19 Apr 2025 15:37:06 +0800
Subject: [PATCH] 切换部门后动态更新tab栏数据

---
 src/views/tickets/ticket.vue |   36 +++++++++++++++++++++---------------
 src/api/tickets/ticket.js    |    3 ++-
 2 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/src/api/tickets/ticket.js b/src/api/tickets/ticket.js
index 5661674..57df423 100644
--- a/src/api/tickets/ticket.js
+++ b/src/api/tickets/ticket.js
@@ -73,10 +73,11 @@
 };
 
 // 新增接口:获取状态统计数据
-export const getstatusCount = () => {
+export const getstatusCount = (params) => {
   return request({
     url: '/drone-device-core/jobEvent/getstatusCount',
     method: 'get',
+    params,
   });
 };
 
diff --git a/src/views/tickets/ticket.vue b/src/views/tickets/ticket.vue
index 1f1db67..1514be9 100644
--- a/src/views/tickets/ticket.vue
+++ b/src/views/tickets/ticket.vue
@@ -1150,22 +1150,27 @@
     },
 
     async fetchTabCounts() {
-      try {
-        const response = await getstatusCount();
-        const { statusCount, totalCount, userCount } = response.data.data;
-        this.tabs.forEach(tab => {
-          if (tab.name === 'all') {
-            tab.count = totalCount || 0; // 总工单数
-          } else if (tab.name === 'myTickets') {
-            tab.count = userCount || 0; // 我发起的工单数
-          } else {
-            tab.count = statusCount[String(tab.value)] || 0; // 根据状态值映射
-          }
-        });
-      } catch (error) {
-        this.$message.error('获取 tab 数据失败');
+  try {
+    // 判断是否有部门筛选
+    let params = {};
+    if (this.filters.department) {
+      params.deptId = this.filters.department;
+    }
+    const response = await getstatusCount(params);
+    const { statusCount, totalCount, userCount } = response.data.data;
+    this.tabs.forEach(tab => {
+      if (tab.name === 'all') {
+        tab.count = totalCount || 0; // 总工单数
+      } else if (tab.name === 'myTickets') {
+        tab.count = userCount || 0; // 我发起的工单数
+      } else {
+        tab.count = statusCount[String(tab.value)] || 0; // 根据状态值映射
       }
-    },
+    });
+  } catch (error) {
+    this.$message.error('获取 tab 数据失败');
+  }
+},
 
     handleTabChange(tab) {
       this.activeTab = tab.props?.name || tab.name;
@@ -1178,6 +1183,7 @@
     handleSearch() {
       this.page.currentPage = 1;
       this.fetchTableData();
+      this.fetchTabCounts();
     },
 
     handleReset() {

--
Gitblit v1.9.3