fix: 修复caseState类型比较问题,使用Number()转换确保字符串和数字类型都能正确匹配
2 files deleted
2 files modified
| | |
| | | |
| | | // 状态控制按钮显示逻辑 |
| | | const shouldShowControlButton = () => { |
| | | const show = caseState === 0 || caseState === 1 || caseState === 5; |
| | | // 转换为数字类型进行比较,兼容字符串和数字 |
| | | const stateNum = Number(caseState); |
| | | const show = stateNum === 0 || stateNum === 1 || stateNum === 5; |
| | | console.log('状态控制按钮显示检查:', { |
| | | caseState, |
| | | caseStateType: typeof caseState, |
| | | stateNum, |
| | | show, |
| | | conditions: { |
| | | 'caseState === 0': caseState === 0, |
| | | 'caseState === 1': caseState === 1, |
| | | 'caseState === 5': caseState === 5 |
| | | 'stateNum === 0': stateNum === 0, |
| | | 'stateNum === 1': stateNum === 1, |
| | | 'stateNum === 5': stateNum === 5 |
| | | } |
| | | }); |
| | | return show; |
| | | }; |
| | | |
| | | const getControlButtonProps = () => { |
| | | console.log('获取按钮属性:', { caseState }); |
| | | // 转换为数字类型进行比较 |
| | | const stateNum = Number(caseState); |
| | | console.log('获取按钮属性:', { caseState, caseStateType: typeof caseState, stateNum }); |
| | | |
| | | if (caseState === 0 || caseState === 1) { |
| | | if (stateNum === 0 || stateNum === 1) { |
| | | return { |
| | | text: '终止', |
| | | style: 'terminate', |
| | | action: 'terminate' |
| | | }; |
| | | } else if (caseState === 5) { |
| | | } else if (stateNum === 5) { |
| | | return { |
| | | text: '恢复', |
| | | style: 'resume', |
| | |
| | | // 提取timeline数据 |
| | | const timelineData = response.timeline || response.data?.timeline || response; |
| | | |
| | | // 调试日志:输出提取的timeline数据 |
| | | console.log('===== API数据提取 ====='); |
| | | console.log('原始response:', response); |
| | | console.log('提取的timelineData:', timelineData); |
| | | console.log('timelineData.mediation:', timelineData.mediation); |
| | | console.log('timelineData.mediation?.state:', timelineData.mediation?.state); |
| | | console.log('========================'); |
| | | |
| | | // 提取nodes数据(确保为数组),兼容 nodeList 和 nodes 两种字段名 |
| | | const nodesData = response.data?.nodeList || response.data?.nodes || response.nodes || []; |
| | | |
| | |
| | | |
| | | // 检查终态状态(调解成功/失败/人工接管),终态不执行外呼和存储 |
| | | const mediationState = timelineData.mediation?.state; |
| | | const isTerminalState = [2, 3, 4].includes(mediationState); |
| | | const isTerminalState = [2, 3, 4, 5].includes(mediationState); |
| | | |
| | | if (isTerminalState) { |
| | | console.log('案件已处于终态状态:', mediationState, ',跳过外呼和存储'); |
| | |
| | | |
| | | // 使用Mock数据作为降级方案 |
| | | const mockTimeline = mockTimelineData.data?.timeline || mockTimelineData; |
| | | console.log('使用Mock数据降级:', mockTimeline); |
| | | setCaseData(mockTimeline); |
| | | setProcessNodes(mockTimelineData.data?.nodes || []); |
| | | setHasLoaded(true); |