import React, { useState, useEffect } from 'react'; import { Calendar, Star, BookOpen, Sparkles, User, BarChart3, Zap, TrendingUp, Loader2, Clock, Target, Heart, DollarSign, Activity, Crown, Compass, Moon, Sun, Hexagon, Layers, Eye, Shuffle } from 'lucide-react'; import { Card, CardContent, CardHeader, CardTitle } from './ui/Card'; import { BackToTop } from './ui/BackToTop'; import DownloadButton from './ui/DownloadButton'; import AIInterpretationButton from './ui/AIInterpretationButton'; import AIConfigModal from './ui/AIConfigModal'; import { localApi } from '../lib/localApi'; interface CompleteYijingAnalysisProps { question?: string; userId?: string; divinationMethod?: string; analysisData?: any; // 可选的预先分析的数据 } const CompleteYijingAnalysis: React.FC = ({ question, userId = 'user123', divinationMethod = 'time', analysisData: propAnalysisData }) => { const [isLoading, setIsLoading] = useState(!propAnalysisData); const [error, setError] = useState(null); const [analysisData, setAnalysisData] = useState(propAnalysisData || null); const [showAIConfig, setShowAIConfig] = useState(false); // 卦象颜色配置 const hexagramColors: { [key: string]: string } = { '乾': 'bg-yellow-100 text-yellow-800 border-yellow-300', '坤': 'bg-brown-100 text-brown-800 border-brown-300', '震': 'bg-green-100 text-green-800 border-green-300', '巽': 'bg-blue-100 text-blue-800 border-blue-300', '坎': 'bg-indigo-100 text-indigo-800 border-indigo-300', '离': 'bg-red-100 text-red-800 border-red-300', '艮': 'bg-gray-100 text-gray-800 border-gray-300', '兑': 'bg-purple-100 text-purple-800 border-purple-300' }; // 五行颜色配置 const elementColors: { [key: string]: string } = { '金': '#fbbf24', // 金色 '木': '#22c55e', // 绿色 '水': '#3b82f6', // 蓝色 '火': '#ef4444', // 红色 '土': '#a3a3a3' // 灰色 }; // 问题类型颜色配置 const questionTypeColors: { [key: string]: string } = { '事业发展': 'bg-blue-100 text-blue-800 border-blue-300', '感情婚姻': 'bg-pink-100 text-pink-800 border-pink-300', '财运投资': 'bg-green-100 text-green-800 border-green-300', '健康养生': 'bg-orange-100 text-orange-800 border-orange-300', '综合运势': 'bg-purple-100 text-purple-800 border-purple-300' }; useEffect(() => { // 如果已经有分析数据,直接使用 if (propAnalysisData) { setAnalysisData(propAnalysisData); setIsLoading(false); return; } const fetchAnalysisData = async () => { try { setIsLoading(true); setError(null); const yijingData = { question: question, user_id: userId, divination_method: divinationMethod }; const yijingResponse = await localApi.analysis.yijing(yijingData); if (yijingResponse.error) { throw new Error(yijingResponse.error.message || '易经分析失败'); } const analysisResult = yijingResponse.data?.analysis; if (!analysisResult) { throw new Error('分析结果为空'); } setAnalysisData(analysisResult); } catch (err) { setError(err instanceof Error ? err.message : '分析数据获取失败,请稍后重试'); } finally { setIsLoading(false); } }; if (question && !propAnalysisData) { fetchAnalysisData(); } }, [question, userId, divinationMethod, propAnalysisData]); // 渲染加载状态 if (isLoading) { return (

正在进行专业易经占卜

请稍候,正在为您起卦分析...

); } // 渲染错误状态 if (error) { return (

占卜失败

{error}

); } if (!analysisData) { return (
⚠️

数据获取异常

未能获取到完整的分析数据,请重新提交占卜

); } // 渲染卦象卡片 const renderHexagramCard = (hexagram: any, title: string, isMain: boolean = false) => { if (!hexagram) return null; return ( {title}
{hexagram.symbol || hexagram}
{hexagram.name || hexagram}
{hexagram && hexagram.number && (
第{hexagram.number}卦
)}
{hexagram.meaning || '卦象含义'}
); }; // 渲染八卦信息 const renderTrigramInfo = (trigram: any, position: string) => { if (!trigram) return null; return (

{position}

卦名: {trigram.name}
性质: {trigram.nature}
属性: {trigram.attribute}
五行: {trigram.element}
); }; // 渲染动爻分析 const renderChangingLinesAnalysis = (analysis: any) => { if (!analysis || !analysis.detailed_analysis) return null; return (

动爻分析方法

{analysis.method}

{analysis.overall_guidance}

{analysis.detailed_analysis.map((line: any, index: number) => (
{line.line_position}
{line.line_nature}
位置含义: {line.position_meaning}
爻辞: {line.line_text}
象传: {line.line_image}
实用指导: {line.practical_guidance}
))}
); }; return (
{/* 下载按钮和AI解读按钮 */}
setShowAIConfig(true)} />
{/* 标题和基本信息 */} 易经占卜分析报告
{new Date(analysisData.basic_info.divination_data.divination_time).toLocaleString('zh-CN')}
{/* 占卜信息 */}

占卜信息

问题:{analysisData.basic_info.divination_data.question}

方法:{analysisData.basic_info.divination_data.method}

问题类型: {analysisData.dynamic_guidance.question_analysis.type}

关注重点:{analysisData.dynamic_guidance.question_analysis.focus}

{/* 卦象信息 */}
{/* 本卦 */}

本卦

{renderHexagramCard({ name: analysisData.basic_info.hexagram_info.main_hexagram, symbol: analysisData.basic_info.hexagram_info.main_hexagram_symbol, number: analysisData.basic_info.hexagram_info.main_hexagram_number, meaning: analysisData.detailed_analysis.hexagram_analysis.primary_meaning?.split(' - ')[1] || '卦象含义' }, '本卦', true)} {/* 八卦结构 */} 八卦结构
{renderTrigramInfo(analysisData.basic_info.hexagram_info.hexagram_structure.upper_trigram, '上卦')} {renderTrigramInfo(analysisData.basic_info.hexagram_info.hexagram_structure.lower_trigram, '下卦')}
八卦组合分析

{analysisData.detailed_analysis.hexagram_analysis.trigram_analysis}

{/* 变卦 */}

变卦

{analysisData.basic_info.hexagram_info.changing_hexagram !== '无' ? ( renderHexagramCard({ name: analysisData.basic_info.hexagram_info.changing_hexagram, symbol: analysisData.basic_info.hexagram_info.changing_hexagram_symbol, meaning: analysisData.detailed_analysis.changing_hexagram_analysis.meaning }, '变卦') ) : (
🔒

无变卦

静卦主静,事态稳定

)} {/* 变化分析 */} 变化分析
转化洞察

{analysisData.detailed_analysis.changing_hexagram_analysis.transformation_insight}

变化指导

{analysisData.detailed_analysis.changing_hexagram_analysis.guidance}

时机把握

{analysisData.detailed_analysis.changing_hexagram_analysis.timing}

{/* 卦辞象传 */} 卦辞象传

彖传(卦辞)

{analysisData.detailed_analysis.hexagram_analysis.judgment}

象传(卦象)

{analysisData.detailed_analysis.hexagram_analysis.image}

{/* 动爻分析 */} {analysisData.detailed_analysis.changing_lines_analysis && ( 动爻分析

动爻数量:{analysisData.detailed_analysis.changing_lines_analysis.changing_lines_count}爻

{renderChangingLinesAnalysis(analysisData.detailed_analysis.changing_lines_analysis)}
)} {/* 高级分析 */} {analysisData.detailed_analysis.advanced_analysis && ( 高级分析

互卦、错卦、综卦深度解析

{/* 互卦 */}

🔄 互卦 - {analysisData.detailed_analysis.advanced_analysis.inter_hexagram.name}

{analysisData.detailed_analysis.advanced_analysis.inter_hexagram.symbol}
{analysisData.detailed_analysis.advanced_analysis.inter_hexagram.meaning}

{analysisData.detailed_analysis.advanced_analysis.inter_hexagram.analysis}

{/* 错卦 */}

错卦 - {analysisData.detailed_analysis.advanced_analysis.opposite_hexagram.name}

{analysisData.detailed_analysis.advanced_analysis.opposite_hexagram.symbol}
{analysisData.detailed_analysis.advanced_analysis.opposite_hexagram.meaning}

{analysisData.detailed_analysis.advanced_analysis.opposite_hexagram.analysis}

{/* 综卦 */}

🔀 综卦 - {analysisData.detailed_analysis.advanced_analysis.reverse_hexagram.name}

{analysisData.detailed_analysis.advanced_analysis.reverse_hexagram.symbol}
{analysisData.detailed_analysis.advanced_analysis.reverse_hexagram.meaning}

{analysisData.detailed_analysis.advanced_analysis.reverse_hexagram.analysis}

{/* 综合洞察 */}

四卦综合洞察

{analysisData.detailed_analysis.advanced_analysis.comprehensive_insight}

)} {/* 象数分析 */} {analysisData.detailed_analysis.numerology_analysis && ( 象数分析

八卦数理与时间共振分析

上卦数

{analysisData.detailed_analysis.numerology_analysis?.upper_trigram_analysis?.number || analysisData.detailed_analysis.numerology_analysis?.upper_trigram_number?.number || '-'}
{analysisData.detailed_analysis.numerology_analysis?.upper_trigram_analysis?.personalized_meaning || analysisData.detailed_analysis.numerology_analysis?.upper_trigram_number?.meaning || '上卦含义'}
{analysisData.detailed_analysis.numerology_analysis?.upper_trigram_analysis?.environmental_influence || analysisData.detailed_analysis.numerology_analysis?.upper_trigram_number?.influence || '外在影响'}

下卦数

{analysisData.detailed_analysis.numerology_analysis?.lower_trigram_analysis?.number || analysisData.detailed_analysis.numerology_analysis?.lower_trigram_number?.number || '-'}
{analysisData.detailed_analysis.numerology_analysis?.lower_trigram_analysis?.personalized_meaning || analysisData.detailed_analysis.numerology_analysis?.lower_trigram_number?.meaning || '下卦含义'}
{analysisData.detailed_analysis.numerology_analysis?.lower_trigram_analysis?.internal_motivation || analysisData.detailed_analysis.numerology_analysis?.lower_trigram_number?.influence || '内在动机'}

组合能量

{analysisData.detailed_analysis.numerology_analysis?.combined_energy?.total_number || analysisData.detailed_analysis.numerology_analysis?.combined_energy?.total || '-'}
{analysisData.detailed_analysis.numerology_analysis?.combined_energy?.interpretation || '组合能量分析'}
{analysisData.detailed_analysis.numerology_analysis?.combined_energy?.harmony_analysis?.description || analysisData.detailed_analysis.numerology_analysis?.combined_energy?.harmony || '和谐度分析'}

时间共振

{analysisData.detailed_analysis.numerology_analysis?.time_space_resonance?.number_time_harmony?.level || analysisData.detailed_analysis.numerology_analysis?.time_resonance?.resonance_number || '-'}
{analysisData.detailed_analysis.numerology_analysis?.time_space_resonance?.time_energy?.description || analysisData.detailed_analysis.numerology_analysis?.time_resonance?.meaning || '时间能量'}
{analysisData.detailed_analysis.numerology_analysis?.time_space_resonance?.optimal_action_time || analysisData.detailed_analysis.numerology_analysis?.time_resonance?.interpretation || '最佳时机'}
)} {/* 五行分析 */} {analysisData.detailed_analysis.hexagram_analysis.five_elements && ( 五行分析

五行属性

上卦五行: {analysisData.detailed_analysis.hexagram_analysis.five_elements.upper_element}
下卦五行: {analysisData.detailed_analysis.hexagram_analysis.five_elements.lower_element}

五行关系

相互作用:

{analysisData.detailed_analysis.hexagram_analysis.five_elements.relationship}

平衡状态:

{analysisData.detailed_analysis.hexagram_analysis.five_elements.balance}

)} {/* 时间分析 */} {analysisData.dynamic_guidance.time_analysis && ( 时间分析

天时地利人和的时机把握

🌸 季节

{analysisData.dynamic_guidance.time_analysis.season.name}
{analysisData.dynamic_guidance.time_analysis.season.energy}
{analysisData.dynamic_guidance.time_analysis.season.advice}

时辰

{analysisData.dynamic_guidance.time_analysis.time_of_day.name}
{analysisData.dynamic_guidance.time_analysis.time_of_day.energy}
{analysisData.dynamic_guidance.time_analysis.time_of_day.advice}

月相

{analysisData.dynamic_guidance.time_analysis.lunar_phase.name}
{analysisData.dynamic_guidance.time_analysis.lunar_phase.energy}
{analysisData.dynamic_guidance.time_analysis.lunar_phase.advice}

能量状态

{analysisData.dynamic_guidance.time_analysis.energy_state.overall}
{analysisData.dynamic_guidance.time_analysis.energy_state.recommendation}
)} {/* 专业指导 */}
{/* 针对性指导 */} 针对性指导

专业分析

{analysisData.dynamic_guidance.targeted_guidance}

实用建议

{analysisData.dynamic_guidance.practical_advice}

{/* 易经智慧 */} 易经智慧

核心信息

{analysisData.divination_wisdom.key_message}

行动建议

{analysisData.divination_wisdom.action_advice}

时机把握

{analysisData.divination_wisdom.timing_guidance}

{/* 哲学洞察 */} 哲学洞察

{analysisData.divination_wisdom.philosophical_insight}

{/* 免责声明 */}

本占卜分析基于传统易经理论,结合现代分析方法生成。 易经占卜是中华传统文化的重要组成部分,仅供参考,不可过分依赖。 人生的幸福需要通过自己的努力和智慧来创造。

占卜时间:{new Date().toLocaleString('zh-CN')}
{/* 返回顶部按钮 */} {/* AI配置模态框 */} setShowAIConfig(false)} onConfigSaved={() => { setShowAIConfig(false); // 可以在这里添加配置保存后的逻辑 }} />
); }; export default CompleteYijingAnalysis;