1
0
Files
nex/frontend/README.md
lanyuanxiaoyao 9359ca7f62 feat: 完成前端重构,采用 Ant Design 5 和完整测试体系
- 采用 Ant Design 5 作为 UI 组件库,替换自定义组件
- 集成 React Router v7 提供路由导航
- 使用 TanStack Query v5 管理数据获取和缓存
- 建立 Vitest + React Testing Library 测试体系
- 添加 Playwright E2E 测试覆盖
- 使用 MSW mock API 响应
- 配置 TypeScript strict 模式
- 采用 SCSS Modules 组织样式
- 更新 OpenSpec 规格以反映前端架构变更
- 归档 frontend-refactor 变更记录
2026-04-16 11:21:48 +08:00

144 lines
3.4 KiB
Markdown
Raw Permalink 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.
# AI Gateway Frontend
AI 网关管理前端,提供供应商配置和用量统计界面。
## 技术栈
- **运行时**: Bun
- **构建工具**: Vite
- **语言**: TypeScript (strict mode)
- **框架**: React
- **UI 组件库**: Ant Design 5
- **路由**: React Router v7
- **数据获取**: TanStack Query v5
- **样式**: SCSS Modules禁止使用纯 CSS
- **测试**: Vitest + React Testing Library + Playwright
## 项目结构
```
frontend/
├── src/
│ ├── api/ # API 层
│ │ ├── client.ts # 统一 request<T>() + 字段转换
│ │ ├── providers.ts # Provider CRUD
│ │ ├── models.ts # Model CRUD
│ │ └── stats.ts # Stats 查询
│ ├── components/
│ │ └── AppLayout/ # 顶部导航布局
│ ├── hooks/ # TanStack Query hooks
│ │ ├── useProviders.ts
│ │ ├── useModels.ts
│ │ └── useStats.ts
│ ├── pages/
│ │ ├── Providers/ # 供应商管理(含内嵌模型管理)
│ │ ├── Stats/ # 用量统计
│ │ └── NotFound.tsx
│ ├── routes/
│ │ └── index.tsx # 路由配置
│ ├── types/
│ │ └── index.ts # 类型定义
│ ├── __tests__/ # 测试
│ │ ├── setup.ts
│ │ ├── api/
│ │ ├── hooks/
│ │ └── components/
│ ├── App.tsx
│ ├── main.tsx
│ └── index.scss
├── e2e/ # Playwright E2E 测试
├── vitest.config.ts
├── playwright.config.ts
├── tsconfig.json
├── vite.config.ts
└── package.json
```
## 运行方式
### 安装依赖
```bash
bun install
```
### 开发模式
```bash
bun run dev
```
前端将在端口 5173 启动API 请求通过 Vite proxy 转发到后端localhost:9826
### 构建生产版本
```bash
bun run build
```
### 代码检查
```bash
bun run lint
```
## 测试
### 单元测试 + 组件测试
```bash
bun run test # 运行所有测试
bun run test:watch # 监听模式
bun run test:coverage # 生成覆盖率报告
```
### E2E 测试
```bash
bun run test:e2e
```
## 功能
### 供应商管理
- 查看供应商列表Ant Design Table
- 添加新供应商Modal Form
- 编辑供应商配置
- 删除供应商Popconfirm 确认)
- API Key 脱敏显示
- 启用/禁用状态标签
### 模型管理
- 展开供应商行查看关联模型
- 添加/编辑/删除模型
- 按供应商筛选模型
### 用量统计
- 查看统计数据
- 按供应商筛选
- 按模型筛选
- 按日期范围筛选DatePicker.RangePicker
## 开发规范
- 所有样式使用 SCSS禁止使用纯 CSS 文件
- 组件级样式使用 SCSS Modules*.module.scss
- 图标优先使用 @ant-design/icons
- TypeScript strict 模式,禁止 any 类型
- API 层自动处理 snake_case ↔ camelCase 字段转换
- 使用路径别名 `@/` 引用 src 目录
### 环境要求
- Bun 1.0 或更高版本
### 添加新页面
1.`src/pages/` 创建页面目录和组件
2.`src/hooks/` 创建对应的 TanStack Query hook
3.`src/routes/index.tsx` 添加路由
4.`src/components/AppLayout/index.tsx` 的 menuItems 添加导航项