双人年度报告后端实现

This commit is contained in:
xuncha
2026-02-01 01:13:17 +08:00
parent 53f0e299e0
commit 5413d7e2c8
14 changed files with 1572 additions and 19 deletions

View File

@@ -39,10 +39,11 @@ function AnnualReportPage() {
}
const handleGenerateReport = async () => {
if (!selectedYear || selectedYear === 'all') return
if (selectedYear === null) return
setIsGenerating(true)
try {
navigate(`/annual-report/view?year=${selectedYear}`)
const yearParam = selectedYear === 'all' ? 0 : selectedYear
navigate(`/annual-report/view?year=${yearParam}`)
} catch (e) {
console.error('生成报告失败:', e)
} finally {
@@ -50,6 +51,12 @@ function AnnualReportPage() {
}
}
const handleGenerateDualReport = () => {
if (selectedPairYear === null) return
const yearParam = selectedPairYear === 'all' ? 0 : selectedPairYear
navigate(`/dual-report?year=${yearParam}`)
}
if (isLoading) {
return (
<div className="annual-report-page">
@@ -111,7 +118,7 @@ function AnnualReportPage() {
<button
className="generate-btn"
onClick={handleGenerateReport}
disabled={!selectedYear || selectedYear === 'all' || isGenerating}
disabled={!selectedYear || isGenerating}
>
{isGenerating ? (
<>
@@ -125,9 +132,6 @@ function AnnualReportPage() {
</>
)}
</button>
{selectedYear === 'all' ? (
<p className="section-hint"></p>
) : null}
</section>
<section className="report-section">
@@ -155,11 +159,15 @@ function AnnualReportPage() {
))}
</div>
<button className="generate-btn secondary" disabled>
<button
className="generate-btn secondary"
onClick={handleGenerateDualReport}
disabled={!selectedPairYear}
>
<Users size={20} />
<span></span>
</button>
<p className="section-hint"></p>
<p className="section-hint"></p>
</section>
</div>
</div>