feat: 完整重构易经占卜系统 - 专业化升级和界面修复

🎯 主要更新:
- 重构易经分析器:增加多种起卦方法、高级分析、象数理论
- 创建专业前端组件:CompleteYijingAnalysis,参考八字分析样式
- 修复表单验证逻辑:易经占卜只需问题,无需个人信息
- 优化后端API接口:适配新的参数格式和验证逻辑

🚀 功能增强:
- 多种起卦方法:时间、梅花易数、金钱卦、数字起卦
- 高级分析:互卦、错卦、综卦四卦综合分析
- 象数理论:八卦数理、时间共振、五行分析
- 动态分析:问题类型识别、时间因素、针对性指导
- 专业展示:卦象符号、爻辞象传、哲学洞察

🔧 技术优化:
- 前端表单条件渲染:根据分析类型显示不同表单
- 后端参数验证:易经占卜验证问题而非姓名
- API接口统一:标准化数据传递格式
- 数据库适配:易经记录使用合理默认值

 问题修复:
- 解决'缺少姓名'错误
- 修复按钮无法点击问题
- 优化用户体验和界面响应
This commit is contained in:
patdelphi
2025-08-19 09:05:25 +08:00
parent 07de78c4a8
commit af0d6cd019
8 changed files with 1690 additions and 142 deletions

View File

@@ -1,6 +1,7 @@
import React from 'react';
import CompleteBaziAnalysis from './CompleteBaziAnalysis';
import CompleteZiweiAnalysis from './CompleteZiweiAnalysis';
import CompleteYijingAnalysis from './CompleteYijingAnalysis';
import BaziAnalysisDisplay from './BaziAnalysisDisplay';
interface AnalysisResultDisplayProps {
@@ -10,9 +11,19 @@ interface AnalysisResultDisplayProps {
date: string;
time: string;
};
question?: string;
userId?: string;
divinationMethod?: string;
}
const AnalysisResultDisplay: React.FC<AnalysisResultDisplayProps> = ({ analysisResult, analysisType, birthDate }) => {
const AnalysisResultDisplay: React.FC<AnalysisResultDisplayProps> = ({
analysisResult,
analysisType,
birthDate,
question,
userId,
divinationMethod
}) => {
// 安全地获取数据的辅助函数
const safeGet = (obj: any, path: string, defaultValue: any = '暂无数据') => {
const keys = path.split('.');
@@ -238,7 +249,32 @@ const AnalysisResultDisplay: React.FC<AnalysisResultDisplayProps> = ({ analysisR
// 渲染易经占卜分析
const renderYijingAnalysis = () => {
// 处理新的数据结构: { type: 'yijing', data: analysisResult }
// 如果有问题参数,使用新的 CompleteYijingAnalysis 组件
if (question) {
return (
<CompleteYijingAnalysis
question={question}
userId={userId}
divinationMethod={divinationMethod}
/>
);
}
// 如果有分析结果但没有问题参数,尝试从结果中提取问题信息
if (analysisResult && analysisResult.data) {
const basicInfo = analysisResult.data.basic_info;
if (basicInfo && basicInfo.divination_data) {
return (
<CompleteYijingAnalysis
question={basicInfo.divination_data.question || '综合运势如何?'}
userId={userId || 'user123'}
divinationMethod={divinationMethod || 'time'}
/>
);
}
}
// 回退到旧的渲染方式(向后兼容)
const data = analysisResult?.data || analysisResult;
return (