- Add TranslationLog model to track translation API usage per task - Integrate Dify API actual price (total_price) into translation stats - Display translation statistics in admin dashboard with per-task costs - Remove unused Export and Settings pages to simplify frontend - Add GET /api/v2/admin/translation-stats endpoint 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Change: 簡化前端頁面並新增翻譯計費功能
Why
目前前端存在多個冗餘的頁面和功能,需要精簡以改善使用者體驗和維護性:
- Tasks 頁面的 JSON/MD 下載功能已不再需要(僅保留 PDF 下載)
- Export 頁面功能與 Tasks 頁面重疊,且複雜度不符實際需求
- Settings 頁面僅管理導出規則,而導出功能即將移除
同時,系統已整合 Dify 翻譯服務,需要在管理員儀表板中新增翻譯計費追蹤功能,以便監控 API Token 使用量和成本。
What Changes
1. 移除 Tasks 頁面的 JSON/MD 下載按鈕(前端)
- 已在 TaskDetailPage 移除,確認 ExportPage 中的相關功能一併移除
- 保留 apiV2.ts 中的 API 方法(維持後端相容性)
2. 移除 Export 頁面(前端)
- 移除
frontend/src/pages/ExportPage.tsx - 從 App.tsx 路由配置移除
/export路由 - 從 Layout.tsx 導航選單移除 Export 連結
- 移除 i18n 中 export 相關翻譯(可選,不影響功能)
3. 移除 Settings 頁面(前端)
- 移除
frontend/src/pages/SettingsPage.tsx - 從 App.tsx 路由配置移除
/settings路由 - 從 Layout.tsx 導航選單移除 Settings 連結
- 後端 Export Rules API 保留(不影響現有資料)
4. 新增翻譯計費功能(前端 + 後端)
後端新增:
- 在
AdminService新增get_translation_statistics()方法 - 新增 API 端點
GET /api/v2/admin/translation-stats - 返回結構:
- 總翻譯任務數
- 總 Token 使用量(input_tokens, output_tokens)
- 各語言翻譯統計
- 預估成本(基於配置的 Token 價格)
前端新增:
- 在 AdminDashboardPage 新增「翻譯統計」卡片
- 顯示總 Token 使用量、翻譯次數、預估成本
- 顯示各目標語言的翻譯分佈
Impact
- Affected specs: frontend-ui (修改), backend-api (修改)
- Affected code:
- 前端移除:
frontend/src/pages/ExportPage.tsxfrontend/src/pages/SettingsPage.tsxfrontend/src/App.tsx(路由)frontend/src/components/Layout.tsx(導航)
- 後端新增:
backend/app/services/admin_service.py(翻譯統計方法)backend/app/routers/admin.py(新 API 端點)backend/app/schemas/admin.py(回應結構)
- 前端新增:
frontend/src/pages/AdminDashboardPage.tsx(翻譯統計元件)frontend/src/services/apiV2.ts(新 API 呼叫)frontend/src/types/apiV2.ts(新類型)
- 前端移除: