Files
MonkeyCode/ui/README.md
2025-06-26 16:39:17 +08:00

227 lines
6.8 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.
# Monkey Code UI
> 一个现代化的代码开发平台前端应用,基于 React 19 和 TypeScript 构建提供智能代码统计、用户管理、AI模型管理等核心功能。
[![React](https://img.shields.io/badge/React-19.1.0-blue.svg)](https://reactjs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.8.3-blue.svg)](https://www.typescriptlang.org/)
[![Vite](https://img.shields.io/badge/Vite-6.3.5-646CFF.svg)](https://vitejs.dev/)
[![Material-UI](https://img.shields.io/badge/Material--UI-6.4.12-0081CB.svg)](https://mui.com/)
## ✨ 功能特性
### 📊 数据统计
- **全局统计**: 系统整体数据分析和可视化展示
- **成员统计**: 用户个人数据统计和活动分析
- **多维度图表**: 柱状图、折线图、饼图等多种数据展示方式
### 💬 智能交互
- **聊天功能**: 实时消息交流和会话管理
- **完成状态**: 任务完成情况跟踪和结果展示
### 🤖 模型管理
- **模型配置**: AI模型参数设置和管理
- **使用统计**: 模型调用次数和Token使用量统计
- **性能监控**: 模型响应时间和成功率监控
### 👥 用户管理
- **用户注册**: 完整的用户注册和认证流程
- **权限管理**: 基于角色的访问控制(RBAC)
- **邀请系统**: 用户邀请和团队管理
- **登录历史**: 用户登录记录和安全审计
### 🛡️ 管理后台
- **系统管理**: 全面的系统配置和监控
- **用户管理**: 管理员用户操作和权限分配
- **数据分析**: 深度业务数据分析和报表
## 🛠️ 技术栈
### 前端框架
- **React 19** - 最新的React框架支持Concurrent Features
- **TypeScript** - 类型安全的JavaScript超集
- **Vite** - 现代化的前端构建工具
### UI框架与样式
- **Material-UI (@mui)** - Google Material Design组件库
- **Emotion** - CSS-in-JS样式库
- **@c-x/ui** - 自定义组件库
### 状态管理与数据
- **ahooks** - React Hooks工具库
- **react-hook-form** - 高性能表单管理
- **axios** - HTTP客户端库
### 路由与导航
- **react-router-dom v7** - 声明式路由管理
### 数据可视化
- **ECharts** - 功能强大的图表库
- **react-activity-calendar** - 活动日历组件
### 工具库
- **dayjs** - 轻量级日期处理库
- **decimal.js** - 精确数值计算
- **lottie-react** - 动画效果库
- **react-markdown** - Markdown渲染器
- **react-syntax-highlighter** - 代码高亮显示
## 📁 项目结构
```
ui/
├── src/
│ ├── api/ # API请求层
│ │ ├── Billing.ts # 计费相关API
│ │ ├── Dashboard.ts # 仪表盘API
│ │ ├── Model.ts # 模型管理API
│ │ ├── OpenAiv1.ts # OpenAI接口
│ │ ├── User.ts # 用户管理API
│ │ ├── httpClient.ts # HTTP客户端配置
│ │ └── types.ts # API类型定义
│ ├── assets/ # 静态资源
│ │ ├── fonts/ # 字体文件
│ │ ├── images/ # 图片资源
│ │ ├── json/ # JSON配置文件
│ │ └── styles/ # 全局样式
│ ├── components/ # 公共组件
│ │ ├── avatar/ # 头像组件
│ │ ├── card/ # 卡片组件
│ │ ├── form/ # 表单组件
│ │ ├── header/ # 头部组件
│ │ ├── lottieIcon/ # 动画图标
│ │ ├── markDown/ # Markdown渲染
│ │ └── sidebar/ # 侧边栏组件
│ ├── layouts/ # 布局组件
│ │ └── mainLayout/ # 主布局
│ ├── pages/ # 页面组件
│ │ ├── admin/ # 管理员页面
│ │ ├── auth/ # 认证页面
│ │ ├── chat/ # 聊天页面
│ │ ├── completion/ # 完成页面
│ │ ├── dashboard/ # 仪表盘页面
│ │ ├── expectation/ # 期望页面
│ │ ├── invite/ # 邀请页面
│ │ ├── login/ # 登录页面
│ │ ├── model/ # 模型管理页面
│ │ └── user/ # 用户管理页面
│ ├── utils/ # 工具函数
│ ├── router.tsx # 路由配置
│ ├── theme.ts # 主题配置
│ └── main.tsx # 应用入口
├── public/ # 公共资源
├── api-templates/ # API模板
├── scripts/ # 构建脚本
├── vite.config.ts # Vite配置
├── tsconfig.json # TypeScript配置
├── eslint.config.js # ESLint配置
└── package.json # 项目依赖
```
## 🚀 快速开始
### 环境要求
- **Node.js** >= 18.0.0
- **pnpm** >= 7.0.0 (推荐使用pnpm作为包管理器)
### 安装步骤
1. **克隆项目**
```bash
git clone <repository-url>
cd monkey-code-ui
```
2. **安装依赖**
```bash
pnpm install
```
3. **启动开发服务器**
```bash
pnpm dev
```
4. **访问应用**
打开浏览器访问: `http://localhost:3300`
### 环境配置
创建 `.env` 文件配置环境变量:
```bash
# API服务地址
VITE_API_BASE_URL=http://localhost:8080/
# 其他环境变量...
```
## 📝 可用脚本
| 命令 | 说明 |
|------|------|
| `pnpm dev` | 启动开发服务器 (端口: 3300) |
| `pnpm build` | 构建生产版本 |
| `pnpm preview` | 预览生产构建结果 |
| `pnpm lint` | 运行ESLint代码检查 |
| `pnpm api` | 生成API接口代码 |
| `pnpm icon` | 下载图标资源 |
## 🏗️ 构建部署
### 生产构建
```bash
pnpm build
```
构建产物将生成在 `dist/` 目录中。
### Docker 部署
项目包含 `nginx.conf` 配置文件,可用于 Docker 容器化部署:
```bash
# 构建Docker镜像
docker build -t monkey-code-ui .
# 运行容器
docker run -p 80:80 monkey-code-ui
```
## 🔧 开发指南
### 代码规范
- 使用 **TypeScript** 进行类型检查
- 遵循 **ESLint** 代码规范
- 使用 **Prettier** 格式化代码
- 采用 **函数式组件** + **Hooks** 开发模式
### API 集成
项目使用统一的API客户端配置支持
- 请求/响应拦截器
- 错误处理
- 类型安全的接口定义
### 主题定制
`src/theme.ts` 中配置Material-UI主题
- 颜色方案
- 字体设置
- 组件样式覆盖
## 🤝 贡献指南
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
## 📞 联系方式
如有问题或建议,请联系开发团队。