migrate frontend

This commit is contained in:
ryan
2026-06-18 18:05:00 +08:00
parent 31b114b0cc
commit e7b8993181
27 changed files with 1836 additions and 383 deletions
+25 -18
View File
@@ -1,6 +1,6 @@
# OpenFlare 前端 UI 规范验收报告
> **验证日期**:2026-06-18
> **验证日期**:2026-06-18(polish pass 复验)
> **范围**:`Wavelet/frontend/app/(main)/openflare/`
## 总体
@@ -9,25 +9,32 @@
|---|---|
| 标题 `h1 text-2xl font-semibold tracking-tight` | ✅ |
| 外壳 `py-6 px-1` | ✅ |
| shadcn 组件(无旧 UI) | ✅ |
| 单文件 ≤600 行 | ✅(最大 access-logs 584 行) |
| loading/empty/error | ⚠️ 部分 Tab 缺 error |
| RHF + Zod 表单 | ⚠️ 部分 Dialog 待补 |
| shadcn 组件(无旧 UI / HeroUI) | ✅ |
| 单文件 ≤600 行 | ✅(最大 `access-logs/page.tsx` 558 行) |
| loading/empty/error | ✅ |
| RHF + Zod 表单(P1 Dialog) | ✅ |
**总体结论:PASS**
## 分模块
| 模块 | 结论 |
|---|---|
| Dashboard | ✅ PASS |
| Nodes | ⚠️ `node-editor-dialog` 缺 Zod |
| Proxy detail | ⚠️ 无效 ID/error 态待统一组件 |
| WAF | ⚠️ `rule-entry-dialog` 缺 RHF+Zod |
| Websites/Certificates | ⚠️ `dns-account-create-dialog` 缺 Zod |
| Access logs | ⚠️ folds/ip-summary Tab 缺 error |
| Config versions | ⚠️ cleanup dialog 缺 Zod |
| 模块 | 结论 | 说明 |
|---|---|---|
| Dashboard | ✅ PASS | 标准壳与三态组件 |
| Nodes | ✅ PASS | `node-editor-dialog` Zod 已补 |
| Proxy detail | ✅ PASS | `ErrorInline` / `EmptyStateWithBorder` 已统一 |
| Proxy list | ⚠️ PASS* | 列表 error 仅 toast(P2) |
| WAF | ✅ PASS | `rule-entry-dialog` RHF+Zod 已补 |
| Websites/Certificates | ✅ PASS | `dns-account-create-dialog` Zod 已补 |
| Access logs | ✅ PASS | folds/ip-summary/ip-trend error 已补 |
| Config versions | ✅ PASS | `cleanup-dialog` Zod 已补 |
| About | ✅ PASS | 页面惯例完整 |
| Version upgrade dialog | ✅ PASS | Card/Badge/Markdown 惯例合规 |
## P1 修复建议
## P2 可选改进
1. `proxy-routes/detail/page-client.tsx` — `EmptyStateWithBorder` / `ErrorInline`
2. `access-logs/page.tsx` — folds、ip-summary 的 `isError` 分支
3. `node-editor-dialog.tsx`、`rule-entry-dialog.tsx` — 补 Zod schema
1. `proxy-routes/page-client.tsx` — 列表 error 改用 `ErrorInline`
2. `access-logs/components/cleanup-dialog.tsx` — 补 RHF+Zod
3. `access-logs/page.tsx` ip-trend — 改用 shadcn `Input`
4. `nodes/components/node-observability.tsx` — 改用 `ErrorInline`+重试
5. FC-1 世界地图 — 当前以国家列表替代