From e8341da1769be538eaec6a9d4bf29491b1301d66 Mon Sep 17 00:00:00 2001
From: tony.cheng <chengmingwei_1984122@126.com>
Date: Tue, 17 Mar 2026 12:10:39 +0800
Subject: [PATCH] fix: 修复API加载失败时未使用mock数据降级导致按钮不显示的问题
---
web-app/src/components/dashboard/TabContainer.jsx | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 54 insertions(+), 4 deletions(-)
diff --git a/web-app/src/components/dashboard/TabContainer.jsx b/web-app/src/components/dashboard/TabContainer.jsx
index aaf5bc2..c87efc5 100644
--- a/web-app/src/components/dashboard/TabContainer.jsx
+++ b/web-app/src/components/dashboard/TabContainer.jsx
@@ -165,6 +165,16 @@
const timeline = caseData || {};
const caseState = timeline.mediation?.state;
+ // 调试日志:输出关键数据
+ useEffect(() => {
+ console.log('===== MediationBoard 数据状态 =====');
+ console.log('caseData:', caseData);
+ console.log('timeline:', timeline);
+ console.log('caseState:', caseState);
+ console.log('mediation:', timeline.mediation);
+ console.log('================================');
+ }, [caseData, caseState, timeline]);
+
// person_type到avatar类型的映射
const getAvatarType = (personType) => {
const typeMap = {
@@ -354,10 +364,22 @@
// 状态控制按钮显示逻辑
const shouldShowControlButton = () => {
- return caseState === 0 || caseState === 1 || caseState === 5;
+ const show = caseState === 0 || caseState === 1 || caseState === 5;
+ console.log('状态控制按钮显示检查:', {
+ caseState,
+ show,
+ conditions: {
+ 'caseState === 0': caseState === 0,
+ 'caseState === 1': caseState === 1,
+ 'caseState === 5': caseState === 5
+ }
+ });
+ return show;
};
const getControlButtonProps = () => {
+ console.log('获取按钮属性:', { caseState });
+
if (caseState === 0 || caseState === 1) {
return {
text: '终止',
@@ -371,38 +393,66 @@
action: 'resume'
};
}
+
+ console.log('未匹配到按钮属性,返回null');
return null;
};
// 处理状态控制按钮点击
const handleControlButtonClick = (action) => {
+ console.log('状态控制按钮点击:', { action });
setControlAction(action);
setConfirmModalVisible(true);
};
// 处理确认对话框确认
const handleConfirmOk = async () => {
- if (!controlAction) return;
+ console.log('确认对话框确认:', { controlAction, remark });
+
+ if (!controlAction) {
+ console.warn('控制动作为空');
+ return;
+ }
setControlLoading(true);
try {
const params = getMergedParams();
const actionCode = controlAction === 'terminate' ? 0 : 1;
+ console.log('准备调用API:', {
+ caseId: params.caseId,
+ actionCode,
+ userName: localStorage.getItem('userName') || '调解员',
+ remark: remark || ''
+ });
+
+ // 验证必要参数
+ if (!params.caseId) {
+ throw new Error('案件ID不能为空');
+ }
+
await ProcessAPIService.updateMediationState(params.caseId, {
action: actionCode,
- userName: localStorage.getItem('userName') || '调解员'
+ userName: localStorage.getItem('userName') || '调解员',
+ remark: remark || ''
});
message.success('案件状态更新成功');
setConfirmModalVisible(false);
setRemark('');
+ setControlAction(null);
// 刷新数据
refreshData();
} catch (error) {
console.error('状态更新失败:', error);
- message.error(error.message || '状态更新失败,请稍后重试');
+ const errorMessage = error.message || '状态更新失败,请稍后重试';
+ message.error(errorMessage);
+
+ // 如果是网络错误,提供更多帮助信息
+ if (errorMessage.includes('网络') || errorMessage.includes('Network')) {
+ message.info('请检查网络连接或联系管理员');
+ }
} finally {
setControlLoading(false);
}
--
Gitblit v1.8.0