diff --git a/frontend/app/analysis/results/page.tsx b/frontend/app/analysis/results/page.tsx
index e557c05e..21f8a712 100644
--- a/frontend/app/analysis/results/page.tsx
+++ b/frontend/app/analysis/results/page.tsx
@@ -151,17 +151,6 @@ export default function AnalysisResultsPage() {
- {/* Download Reports Section */}
- {taskId && analysisResult.reports && (
-
- )}
-
{/* 分析師選擇 Tabs */}
@@ -219,6 +208,17 @@ export default function AnalysisResultsPage() {
))}
+
+ {/* Download Reports Section - 放在分析報告下方 */}
+ {taskId && analysisResult.reports && (
+
+ )}
);
diff --git a/frontend/components/analysis/DownloadReports.tsx b/frontend/components/analysis/DownloadReports.tsx
index 40153df0..00272d27 100644
--- a/frontend/components/analysis/DownloadReports.tsx
+++ b/frontend/components/analysis/DownloadReports.tsx
@@ -73,7 +73,7 @@ export function DownloadReports({
setIsDownloading(true);
try {
- const response = await fetch(`${process.env.NEXT_PUBLIC_API_URL || 'http://localhost:8000'}/api/download/reports`, {
+ const response = await fetch('/api/download/reports', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
@@ -87,7 +87,9 @@ export function DownloadReports({
});
if (!response.ok) {
- throw new Error('Download failed');
+ const errorData = await response.json().catch(() => ({}));
+ const errorMessage = errorData.detail || `下載失敗 (${response.status})`;
+ throw new Error(errorMessage);
}
// Get the blob
@@ -117,9 +119,9 @@ export function DownloadReports({
// Cleanup
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
- } catch (error) {
+ } catch (error: any) {
console.error('Download error:', error);
- alert('下載失敗,請稍後再試');
+ alert(error.message || '下載失敗,請稍後再試');
} finally {
setIsDownloading(false);
}