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

59 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 状态)
- 删除确认
- 空状态提示
- 暗色主题风格
### 修改文件
3. **web/src/types/index.ts** — 新增 Site、SiteTypeInfo、AuthTypeInfo 接口
4. **web/src/App.tsx** — 新增 /sites 路由(RequireAdmin)和 lazy import
5. **web/src/components/Layout.tsx** — 侧边栏管理区新增「站点管理」链接(Globe 图标)
6. **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)