Files
solosw 99b11b04e4 1.0
2026-01-05 14:11:34 +08:00

206 lines
4.9 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.
# 管理员端前端项目
## 项目概述
这是一个基于Vue 3 + Element Plus的管理员端前端项目,用于管理虚拟商品交易平台。
## 技术栈
- **框架**: Vue 3 (Composition API)
- **UI库**: Element Plus
- **状态管理**: Pinia
- **路由**: Vue Router 4
- **HTTP客户端**: Axios
- **图表**: ECharts
- **构建工具**: Vite
- **样式**: CSS3 + Tailwind CSS
## 项目结构
```
src/
├── layouts/ # 布局组件
│ └── AdminLayout.vue # 管理端主布局
├── views/ # 页面组件
│ ├── Login.vue # 登录页面
│ └── admin/ # 管理端页面
│ ├── Dashboard.vue # 仪表盘
│ ├── Users.vue # 用户管理
│ ├── Scores.vue # 积分管理
│ └── orders/ # 订单管理
│ ├── PurchaseOrders.vue # 买单管理
│ └── SalesOrders.vue # 卖单管理
├── stores/ # Pinia状态管理
│ └── auth.js # 认证状态
├── router/ # 路由配置
│ └── index.js # 主路由文件
└── main.js # 应用入口
```
## 功能特性
### 🔐 认证系统
- 支持管理员和代理商登录
- JWT Token认证
- 自动路由守卫
- 权限控制
### 👥 用户管理
- 用户列表查看(支持搜索、筛选、分页)
- 用户详情查看
- 用户创建、编辑、删除(仅管理员)
- 用户状态管理
- 权限级别显示
### 📋 订单管理
- 买单管理(查看、处理订单状态)
- 卖单管理(查看、处理订单状态)
- 订单详情查看
- 支持多条件筛选
- 订单状态流转
### ⭐ 积分管理
- 积分记录查看(支持搜索、筛选)
- 积分记录创建、编辑、删除(仅管理员)
- 积分变化统计
- 用户积分查询
### 📊 数据统计
- 仪表盘数据概览
- 用户角色分布图表
- 订单趋势图表
- 实时统计数据
### 🎨 界面特性
- 响应式设计,支持移动端
- 现代化UI设计
- 暗色侧边栏
- 面包屑导航
- 页面切换动画
- 数据加载状态
## 权限说明
### 管理员权限(system_role=0
- ✅ 访问所有功能模块
- ✅ 用户管理(查看、创建、编辑、删除)
- ✅ 订单管理(查看、处理)
- ✅ 积分管理(查看、创建、编辑、删除)
- ✅ 商品管理(计划中)
- ✅ 系统配置(计划中)
### 代理商权限(system_role=1
- ✅ 仪表盘查看(仅自己邀请的用户数据)
- ✅ 用户管理(仅查看自己邀请的用户)
- ✅ 订单管理(仅查看相关用户的订单)
- ✅ 积分管理(仅查看相关用户的积分记录)
- ❌ 无创建、编辑、删除权限
- ❌ 无商品管理权限
- ❌ 无系统配置权限
## 安装和运行
### 1. 安装依赖
```bash
cd front
npm install
```
### 2. 启动开发服务器
```bash
npm run dev
```
### 3. 构建生产版本
```bash
npm run build
```
## 默认测试账户
### 管理员账户
- 手机号:`13800138000`
- 密码:`admin123`
- 权限:全部功能
### 代理商账户
- 手机号:`13800138001`
- 密码:`agent123`
- 权限:受限查看
## API配置
项目已配置axios默认baseURL为`/back`,确保后端API正确运行在对应端口。
请求拦截器会自动添加token到请求头:
```javascript
headers: {
token: localStorage.getItem('token')
}
```
响应拦截器会自动处理401未授权错误,跳转到登录页面。
## 开发规范
### 组件命名
- 页面组件:PascalCase(如:`Users.vue`
- 布局组件:PascalCase + Layout后缀(如:`AdminLayout.vue`
- 通用组件:PascalCase(如:`DataTable.vue`
### 状态管理
- 使用Pinia进行状态管理
- 按功能模块划分store
- 使用Composition API风格
### 样式规范
- 优先使用Element Plus组件样式
- 使用scoped CSS避免样式污染
- 响应式设计,移动端适配
- 使用CSS变量统一主题色彩
### 代码规范
- 使用Composition API
- 使用TypeScript类型注解(计划中)
- 函数和变量使用camelCase命名
- 常量使用UPPER_SNAKE_CASE命名
## 待开发功能
- [ ] 商品管理页面
- [ ] 系统配置管理
- [ ] 数据导出功能
- [ ] 批量操作功能
- [ ] 个人信息管理
- [ ] 操作日志记录
- [ ] 系统通知功能
- [ ] 文件上传组件
- [ ] 富文本编辑器
- [ ] 国际化支持
## 注意事项
1. **权限控制**:代理商只能看到自己邀请的用户相关数据
2. **数据过滤**:前端路由守卫 + 后端API权限双重保护
3. **错误处理**:统一的错误提示和处理机制
4. **性能优化**:按需加载、虚拟滚动等优化措施
5. **安全性**Token自动过期处理、XSS防护
## 浏览器支持
- Chrome >= 87
- Firefox >= 78
- Safari >= 14
- Edge >= 88
## 贡献指南
1. Fork项目
2. 创建特性分支
3. 提交更改
4. 推送到分支
5. 创建Pull Request
## 许可证
MIT License