fix: 修复前端空白页与API调用错误,统一创作流程

- 前端
  - topics.html: 恢复结构并修复Vue初始化问题
  - 调整创作按钮逻辑:仅已发布选题禁用
  - 修正API端点与payload格式(generate/optimizer/publishing使用topic_ids数组)
  - 移除ElementPlus图标模块依赖,使用全局构建
  - admin.html: 回退至Options API版本,解决this上下文错误
- 后端
  - 注册/api/generate/run路由
  - 简化generate逻辑:允许非已发布选题重创作,更新状态为“待审查”
  - 统一logs查询接口支持query参数
  - 修复admin用户管理字段引用
  - 系统概览返回{ stats }结构
- 静态资源整理
  - 删除冗余element-plus-icons、重复CSS/JS、图标文件
  - 正确放置Vue和ElementPlus全局文件
- 数据库与数据
  - 补充30个案例
  - 更新选题状态与初始数据

验证:所有页面可访问,API认证与端点正常工作。
This commit is contained in:
lt
2026-05-06 21:44:56 +08:00
parent bd381ff65a
commit 8920a337e0
29 changed files with 159 additions and 138169 deletions
+16 -1
View File
@@ -11,7 +11,8 @@ from starlette.staticfiles import StaticFiles
from app.database import init_db
from core.security import SECRET_KEY
from api import auth, topics, system, publishing, articles, logs, admin
from api import auth, topics, system, publishing, articles, logs, admin, generate
from app.api import cases, task_logs, llm_configs, system_configs
@asynccontextmanager
async def lifespan(app: FastAPI):
@@ -46,6 +47,11 @@ app.include_router(publishing.router, prefix="/api/publishing", tags=["文章发
app.include_router(articles.router, prefix="/api/articles", tags=["文章预览"])
app.include_router(logs.router, prefix="/api/logs", tags=["日志系统"])
app.include_router(admin.router, prefix="/api/admin", tags=["管理员"])
app.include_router(generate.router, prefix="/api/generate", tags=["文章生成"])
app.include_router(cases.router)
app.include_router(task_logs.router)
app.include_router(llm_configs.router)
app.include_router(system_configs.router)
# 健康检查
@app.get("/health")
@@ -65,6 +71,15 @@ async def logs_page():
async def users_page():
return FileResponse("static/users.html")
@app.get("/login.html")
async def login_page():
return FileResponse("static/login.html")
@app.get("/admin.html")
async def admin_page():
return FileResponse("static/admin.html")
# 静态文件(不干扰API
app.mount("/static", StaticFiles(directory="static"), name="static")