From 344fd5ba0aa8ed78e0cb7bce41c57fc4b8b18773 Mon Sep 17 00:00:00 2001
From: tony.cheng <chengmingwei_1984122@126.com>
Date: Sat, 28 Feb 2026 10:15:41 +0800
Subject: [PATCH] feat: 更新TabContainer和urlParams工具函数

---
 web-app/src/components/dashboard/TabContainer.jsx |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/web-app/src/components/dashboard/TabContainer.jsx b/web-app/src/components/dashboard/TabContainer.jsx
index b16768d..c9e448b 100644
--- a/web-app/src/components/dashboard/TabContainer.jsx
+++ b/web-app/src/components/dashboard/TabContainer.jsx
@@ -1,4 +1,4 @@
-import React, { useState, useEffect, useRef } from 'react';
+import React, { useState, useEffect, useRef, forwardRef, useImperativeHandle } from 'react';
 import { useCaseData } from '../../contexts/CaseDataContext';
 import { formatDuration, formatSuccessRate, formatRoundCount } from '../../utils/stateTranslator';
 import ProcessAPIService from '../../services/ProcessAPIService';
@@ -11,11 +11,19 @@
 
 /**
  * 选项卡容器组件 - 4个选项卡
+ * 通过 forwardRef 暴露 switchTab 方法供父组件调用
  */
-const TabContainer = () => {
+const TabContainer = forwardRef((props, ref) => {
   const [activeTab, setActiveTab] = useState('mediation-data-board');
   // 证据材料汇总Tab的审核状态badge
   const [evidenceBadge, setEvidenceBadge] = useState(null);
+
+  // 暴露 switchTab 方法给父组件
+  useImperativeHandle(ref, () => ({
+    switchTab: (tabKey) => {
+      setActiveTab(tabKey);
+    }
+  }));
 
   const tabs = [
     { key: 'mediation-data-board', label: '调解分析', icon: 'fa-chart-line' },
@@ -76,7 +84,7 @@
       </div>
     </div>
   );
-};
+});
 
 /**
  * 调解数据看板
@@ -477,7 +485,7 @@
     // 使用getMergedParams获取参数(URL参数优先,默认值兜底)
     const params = getMergedParams();
     const caseId = params.caseId;
-    const caseType = params.caseTypeFirst;
+    const caseType = params.caseType ||params.caseTypeFirst;
     const platformCode = params.platform_code;
     
     console.log('EvidenceBoard loadData params:', { caseId, caseType, platformCode });

--
Gitblit v1.8.0