206 lines
4.9 KiB
Markdown
206 lines
4.9 KiB
Markdown
# 管理员端前端项目
|
||
|
||
## 项目概述
|
||
|
||
这是一个基于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 |