Files
MeBox/.workbuddy/memory/2026-05-16.md
T

2.7 KiB
Raw Blame History

2026-05-16 工作日志

站点管理前端页面迁移

新增文件

  1. web/src/api/sites.ts — 站点管理 API 客户端(list/get/create/update/remove/test/types/authTypes),对接后端 8 个端点
  2. web/src/pages/SitesPage.tsx — 完整站点管理页面(~400 行)
    • 站点卡片网格布局(响应式 1/2/3 列)
    • 添加/编辑弹窗(类型选择、认证方式、Cookie/API Key/Auth Header)
    • 馒头 M-Team 专用配置提示
    • 启用/停用开关、默认站点开关
    • 高级选项折叠面板(Extra JSON)
    • 测试连接(异步+loading 状态)
    • 删除确认
    • 空状态提示
    • 暗色主题风格

修改文件

  1. web/src/types/index.ts — 新增 Site、SiteTypeInfo、AuthTypeInfo 接口
  2. web/src/App.tsx — 新增 /sites 路由(RequireAdmin)和 lazy import
  3. web/src/components/Layout.tsx — 侧边栏管理区新增「站点管理」链接(Globe 图标)
  4. web/src/pages/AdminPage.tsx — 新增「站点管理」Tab,默认激活,嵌入 SitesPage 组件

API 验证(8/8 通过)

  • GET /api/sites ✅
  • POST /api/sites ✅(创建成功)
  • GET /api/sites/:id ✅
  • PUT /api/sites/:id ✅(更新成功)
  • DELETE /api/sites/:id ✅(删除成功)
  • POST /api/sites/:id/test ✅
  • GET /api/sites/types ✅(6 种类型)
  • GET /api/sites/auth-types ✅(3 种认证方式)

构建状态

  • npm run build ✅(SitesPage-hRHsM4G0.js 14.21 kB)
  • go build ./cmd/server ✅
  • 服务器运行中(localhost:8080)

UI 修复与优化(第二阶段)

搜索页 & 收藏页空白问题修复

  • 收藏页根因:后端 GET /api/favourites 无数据时返回 {"items": null}(非空数组),前端 playbackAPI.listFavourites() 提取 null 后 items.length 抛出 TypeError → React 白屏
  • 修复:FavouritesPage.tsx 增加 data ?? [] 空值保护、.catch() 错误处理、重试按钮、空状态面板
  • 搜索页修复:SearchPage.tsx 增加错误处理、空查询不发请求、idle/empty/error 三态 UI

AdminPage 去重 & API 配置合并

  • AdminPage 新增「外部API」Tab,嵌入新组件 APIConfigsPanel
  • 原「设置」Tab 重命名「系统设置」,功能独立(key-value 存储)
  • 侧边栏移除「API 配置」独立链接
  • /api-configs 路由改为重定向到 /admin
  • APIConfigsPanel.tsx:紧凑表格布局(Provider | 密钥掩码 | 状态徽章 | 操作),点击编辑行内展开

修改文件

  • 新增:web/src/components/APIConfigsPanel.tsx
  • 修改:FavouritesPage.tsx、SearchPage.tsx、AdminPage.tsx、Layout.tsx、App.tsx
  • npm run build ✅(AdminPage 25.38 kB 含 APIConfigsPanel)