feat: Enhanced lunar calendar display and Zi Shi calculation improvements

- Added full Chinese year display (农历一九七六年)
- Implemented detailed solar term intervals (惊蛰后至春分前)
- Enhanced Zi Shi calculation with professional explanations
- Added lunar information display in frontend components
- Improved accuracy of lunar date calculations
- Removed redundant note texts for cleaner UI
- Fixed syntax errors in analyzer modules
This commit is contained in:
patdelphi
2025-08-23 10:26:51 +08:00
parent b5011988fb
commit 865d4c7a15
13 changed files with 1018 additions and 259 deletions

View File

@@ -327,6 +327,65 @@ const CompleteBaziAnalysis: React.FC<CompleteBaziAnalysisProps> = ({ birthDate,
{analysisData.basic_info?.bazi_chart?.complete_chart}
</div>
{/* 农历信息显示 */}
{analysisData.basic_info?.lunar_info && (
<div className="mb-4 p-4 bg-gradient-to-r from-purple-50 to-pink-50 rounded-lg border border-purple-200">
<h4 className="font-bold text-purple-800 mb-3 flex items-center">
<span className="mr-2">🌙</span>
</h4>
<div className="grid grid-cols-2 md:grid-cols-4 gap-3 text-sm">
<div className="text-center">
<div className="text-purple-700 font-semibold mb-1"></div>
<div className="text-purple-800 font-bold">{analysisData.basic_info.lunar_info.lunar_date}</div>
</div>
<div className="text-center">
<div className="text-purple-700 font-semibold mb-1"></div>
<div className="text-purple-800 font-bold">{analysisData.basic_info.lunar_info.ganzhi_year}</div>
</div>
<div className="text-center">
<div className="text-purple-700 font-semibold mb-1"></div>
<div className="text-purple-800 font-bold">{analysisData.basic_info.lunar_info.zodiac}</div>
</div>
<div className="text-center">
<div className="text-purple-700 font-semibold mb-1"></div>
<div className="text-purple-800 font-bold">{analysisData.basic_info.lunar_info.solar_term}</div>
</div>
</div>
{analysisData.basic_info.lunar_info.note && (
<p className="text-purple-600 text-xs mt-3 text-center">
{analysisData.basic_info.lunar_info.note}
</p>
)}
</div>
)}
{/* 子时计算说明 */}
{analysisData.basic_info?.zishi_calculation_note && (
<div className="mb-4 p-4 bg-gradient-to-r from-blue-50 to-indigo-50 rounded-lg border border-blue-200">
<h4 className="font-bold text-blue-800 mb-3 flex items-center">
<span className="mr-2"></span>
</h4>
<div className="space-y-3">
<div className="bg-white p-3 rounded-lg border border-blue-100">
<div className="flex items-center justify-between mb-2">
<span className="text-blue-700 font-semibold"></span>
<span className="text-blue-800 font-bold px-2 py-1 bg-blue-100 rounded">
{analysisData.basic_info.zishi_calculation_note.zishi_type}
</span>
</div>
<div className="text-blue-700 text-sm mb-2">
<strong></strong>{analysisData.basic_info.zishi_calculation_note.calculation_method}
</div>
<div className="text-blue-600 text-sm">
{analysisData.basic_info.zishi_calculation_note.explanation}
</div>
</div>
</div>
</div>
)}
{/* 节气调整提示 */}
{analysisData.basic_info?.solar_term_adjustment?.shouldAdjust && (
<div className="mb-4 p-3 bg-yellow-50 border border-yellow-200 rounded-lg">

View File

@@ -643,6 +643,70 @@ const CompleteZiweiAnalysis: React.FC<CompleteZiweiAnalysisProps> = ({ birthDate
</div>
</div>
{/* 农历信息显示 */}
{analysisData.basic_info?.lunar_info && (
<div className="bg-gradient-to-r from-pink-50 to-rose-50 p-4 rounded-lg border border-pink-200">
<h4 className="font-bold text-pink-800 mb-3 flex items-center">
<Moon className="h-5 w-5 mr-2" />
</h4>
<div className="grid grid-cols-2 md:grid-cols-4 gap-3 text-sm">
<div className="text-center">
<div className="text-pink-700 font-semibold mb-1"></div>
<div className="text-pink-800 font-bold">{analysisData.basic_info.lunar_info.lunar_date}</div>
</div>
<div className="text-center">
<div className="text-pink-700 font-semibold mb-1"></div>
<div className="text-pink-800 font-bold">{analysisData.basic_info.lunar_info.ganzhi_year}</div>
</div>
<div className="text-center">
<div className="text-pink-700 font-semibold mb-1"></div>
<div className="text-pink-800 font-bold">{analysisData.basic_info.lunar_info.zodiac}</div>
</div>
<div className="text-center">
<div className="text-pink-700 font-semibold mb-1"></div>
<div className="text-pink-800 font-bold">{analysisData.basic_info.lunar_info.solar_term}</div>
</div>
</div>
{analysisData.basic_info.lunar_info.note && (
<p className="text-pink-600 text-xs mt-3 text-center">
{analysisData.basic_info.lunar_info.note}
</p>
)}
</div>
)}
{/* 子时计算说明 */}
{analysisData.basic_info?.zishi_calculation_note && (
<div className="bg-gradient-to-r from-cyan-50 to-blue-50 p-4 rounded-lg border border-cyan-200">
<h4 className="font-bold text-cyan-800 mb-3 flex items-center">
<Clock className="h-5 w-5 mr-2" />
</h4>
<div className="space-y-3">
<div className="bg-white p-3 rounded-lg border border-cyan-100">
<div className="flex items-center justify-between mb-2">
<span className="text-cyan-700 font-semibold"></span>
<span className="text-cyan-800 font-bold px-2 py-1 bg-cyan-100 rounded">
{analysisData.basic_info.zishi_calculation_note.zishi_type}
</span>
</div>
<div className="text-cyan-700 text-sm mb-2">
<strong></strong>{analysisData.basic_info.zishi_calculation_note.calculation_method}
</div>
<div className="text-cyan-600 text-sm mb-2">
{analysisData.basic_info.zishi_calculation_note.explanation}
</div>
{analysisData.basic_info.zishi_calculation_note.ziwei_impact && (
<div className="text-cyan-600 text-sm">
<strong></strong>{analysisData.basic_info.zishi_calculation_note.ziwei_impact}
</div>
)}
</div>
</div>
</div>
)}
{/* 五行局和命宫 */}
<div className="grid md:grid-cols-2 gap-4">
<div className="bg-white p-4 rounded-lg border-l-4 border-indigo-500">