Files
OCR/openspec/changes/simplify-frontend-add-billing/proposal.md
egg 65abd51d60 feat: add translation billing stats and remove Export/Settings pages
- 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>
2025-12-12 17:38:12 +08:00

2.5 KiB
Raw Blame History

Change: 簡化前端頁面並新增翻譯計費功能

Why

目前前端存在多個冗餘的頁面和功能,需要精簡以改善使用者體驗和維護性:

  1. Tasks 頁面的 JSON/MD 下載功能已不再需要(僅保留 PDF 下載)
  2. Export 頁面功能與 Tasks 頁面重疊,且複雜度不符實際需求
  3. 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.tsx
      • frontend/src/pages/SettingsPage.tsx
      • frontend/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 (新類型)