feat: 看板优化——中文标题+Token消耗+时间段筛选+品牌名统一

- 学员端:LoginPanel/App.vue 描述文案优化,去掉生硬表述
- 后台品牌统一:index.html/App.vue 标题改为'大本营千问千答'
- 看板tab:Dashboard -> 数据看板
- 看板新增:输入Token、输出Token、总Token 统计
- 看板支持按时间段筛选:后端API增加start/end参数,前端加日期选择器
- stats-grid布局从5列调整为4列,响应式改为2列
This commit is contained in:
2026-07-09 14:58:45 +08:00
parent facb3a6a56
commit 0ea75dea1d
10 changed files with 84 additions and 20 deletions

View File

@@ -1,6 +1,8 @@
from __future__ import annotations
from fastapi import APIRouter, Depends
from datetime import datetime
from fastapi import APIRouter, Depends, Query
from sqlalchemy.orm import Session
from app.core.database import get_db
@@ -15,8 +17,16 @@ router = APIRouter()
@router.get("/dashboard")
def dashboard(
start: str = Query(default="", description="开始日期 YYYY-MM-DD"),
end: str = Query(default="", description="结束日期 YYYY-MM-DD"),
db: Session = Depends(get_db),
current_admin: Admin = Depends(get_current_admin),
) -> dict:
stats = AdminDashboardService.stats(db)
start_dt = datetime.strptime(start, "%Y-%m-%d") if start else None
if end:
end_dt = datetime.strptime(end, "%Y-%m-%d")
end_dt = end_dt.replace(hour=23, minute=59, second=59)
else:
end_dt = None
stats = AdminDashboardService.stats(db, start_dt, end_dt)
return api_success(DashboardStats.model_validate(stats).model_dump())