gameSeriveUniapp/readme/项目功能清单.md
2026-01-12 16:48:28 +08:00

551 lines
17 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.

# 游戏服务交易平台 - uni-app 前端功能清单
## 📋 项目概述
**项目名称**: 游戏服务交易平台小程序(三端合一)
**技术栈**: uni-app + Vue3 + TypeScript + Pinia
**UI 框架**: uView UI
**角色支持**: 用户(顾客)、商家(工作室)、代练(执行者)
**数据方式**: 静态数据模拟Mock Data
---
## 一、核心功能模块
### 1.1 认证与角色管理
#### 登录认证
- [x] 微信模拟登录(静态 openid
- [x] 手机号授权登录(模拟授权)
- [x] 自动注册逻辑(首次登录)
- [x] Token 存储与管理
#### 角色管理
- [x] 角色切换功能(用户/商家/代练)
- [x] 角色权限控制
- [x] 不同角色首页跳转
- [x] 角色标识显示
### 1.2 用户端功能(顾客)
#### 核心功能
- [x] 浏览游戏服务
- [x] 挑选代练下单
- [x] 支付(模拟)
- [x] 订单跟踪
- [x] 评价反馈
### 1.3 商家端功能(工作室)
#### 核心功能
- [x] 订单管理
- [x] 派单操作
- [x] 代练管理
- [x] 数据统计
- [x] 收款管理
### 1.4 代练端功能(执行者)
#### 核心功能
- [x] 接收派单
- [x] 订单执行
- [x] 完成确认
- [x] 收益查看
---
## 二、页面结构清单
### 2.1 公共页面(所有角色)
#### 启动与登录
| 页面路径 | 页面名称 | 功能说明 |
|---------|---------|---------|
| `/pages/index/index` | 启动页/首页 | 根据角色跳转到对应首页 |
| `/pages/auth/login` | 登录页 | 手机号授权登录、协议勾选 |
| `/pages/auth/role-switch` | 角色切换页 | 切换用户/商家/代练角色 |
#### 个人中心
| 页面路径 | 页面名称 | 功能说明 |
|---------|---------|---------|
| `/pages/user/index` | 个人中心 | 根据角色显示不同菜单和功能 |
| `/pages/user/profile` | 个人信息管理 | 编辑昵称、头像、真实姓名等 |
| `/pages/user/privacy` | 隐私设置 | 控制信息公开范围 |
| `/pages/user/notification` | 通知设置 | 控制接收通知类型 |
| `/pages/user/setting` | 设置页面 | 通用设置、关于我们、退出登录 |
#### 消息与客服
| 页面路径 | 页面名称 | 功能说明 |
|---------|---------|---------|
| `/pages/message/list` | 消息列表 | 系统消息、订单消息 |
| `/pages/message/chat` | 聊天页面 | IM 聊天(用户-代练) |
#### 协议与帮助
| 页面路径 | 页面名称 | 功能说明 |
|---------|---------|---------|
| `/pages/agreement/user` | 用户协议 | 用户服务协议 |
| `/pages/agreement/privacy` | 隐私政策 | 隐私保护政策 |
| `/pages/help/index` | 帮助中心 | 常见问题、使用指南 |
---
### 2.2 用户端页面(顾客)
#### 首页与浏览
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-user/home/index` | 用户首页 | 游戏分类、热门代练、推荐服务 | 游戏列表、轮播图、热门代练 |
| `/pages-user/category/list` | 分类列表 | 按游戏分类浏览服务 | 游戏分类、服务列表 |
| `/pages-user/search/index` | 搜索页面 | 搜索代练、服务 | 搜索历史、热门搜索 |
#### 代练浏览
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-user/player/list` | 代练列表 | 浏览所有代练、筛选排序 | 代练列表(含评分、段位、价格) |
| `/pages-user/player/detail` | 代练详情 | 代练信息、评价、服务项目 | 代练详细信息、评价列表 |
#### 服务浏览
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-user/service/list` | 服务列表 | 浏览服务套餐 | 服务套餐列表 |
| `/pages-user/service/detail` | 服务详情 | 服务详情、价格、选择代练 | 服务详情、代练推荐 |
#### 订单流程
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-user/order/create` | 创建订单 | 填写订单信息、选择代练 | 服务信息、代练列表 |
| `/pages-user/order/list` | 我的订单 | 订单列表(全部/待支付/进行中/已完成) | 订单列表(各种状态) |
| `/pages-user/order/detail` | 订单详情 | 订单详情、进度跟踪、操作 | 订单详情、流转记录 |
| `/pages-user/order/evaluate` | 评价页面 | 评价代练服务 | - |
#### 支付
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-user/payment/pay` | 支付确认 | 确认支付信息、选择支付方式 | 订单金额、支付方式 |
| `/pages-user/payment/result` | 支付结果 | 支付成功/失败页面 | - |
---
### 2.3 商家端页面(工作室管理者)
#### 商家工作台
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-merchant/home/index` | 商家首页 | 数据概览、今日订单、待处理事项 | 统计数据、订单概览 |
| `/pages-merchant/dashboard/index` | 数据看板 | 收入趋势、订单统计、代练排行 | 图表数据、统计信息 |
#### 订单管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-merchant/order/list` | 订单列表 | 所有订单(待派单/进行中/已完成) | 订单列表(各状态) |
| `/pages-merchant/order/detail` | 订单详情 | 订单详情、派单操作 | 订单详情、代练列表 |
| `/pages-merchant/order/dispatch` | 派单页面 | 选择代练进行派单 | 可用代练列表 |
#### 代练管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-merchant/player/list` | 代练列表 | 管理所有代练 | 代练列表(含状态、接单数) |
| `/pages-merchant/player/detail` | 代练详情 | 代练信息、订单记录、收益统计 | 代练详情、历史订单 |
| `/pages-merchant/player/audit` | 代练审核 | 审核代练注册申请 | 申请列表、申请详情 |
#### 邀请管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-merchant/invite/index` | 邀请代练 | 生成邀请链接/二维码 | 邀请记录、邀请统计 |
| `/pages-merchant/invite/list` | 邀请记录 | 查看邀请记录、使用情况 | 邀请列表、使用详情 |
#### 服务管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-merchant/service/list` | 服务管理 | 管理服务套餐(上架/下架/编辑) | 服务套餐列表 |
| `/pages-merchant/service/edit` | 编辑服务 | 新增/编辑服务套餐 | 服务分类、服务信息 |
#### 财务管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-merchant/finance/income` | 收入统计 | 收入明细、收入趋势 | 收入数据、趋势图表 |
| `/pages-merchant/finance/withdraw` | 提现管理 | 申请提现、提现记录 | 提现记录、账户余额 |
| `/pages-merchant/finance/bill` | 账单明细 | 收支明细、对账 | 账单列表、交易详情 |
---
### 2.4 代练端页面(执行者)
#### 代练工作台
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-player/home/index` | 代练首页 | 待接单订单、今日收益、接单统计 | 订单列表、收益数据 |
#### 代练注册
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-player/register/index` | 代练注册 | 通过邀请链接注册 | 邀请码、注册表单 |
| `/pages-player/register/result` | 注册结果 | 注册成功/待审核提示 | - |
#### 订单管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-player/order/list` | 我的订单 | 订单列表(待接单/进行中/已完成) | 订单列表(各状态) |
| `/pages-player/order/detail` | 订单详情 | 订单详情、接单/拒单/完成操作 | 订单详情、用户信息 |
| `/pages-player/order/execute` | 执行订单 | 执行订单、上传进度/截图 | 订单信息、上传记录 |
#### 收益管理
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-player/income/index` | 收益中心 | 总收益、收益趋势、明细 | 收益数据、趋势图表 |
| `/pages-player/income/detail` | 收益明细 | 收益明细列表、筛选 | 收益记录列表 |
| `/pages-player/income/withdraw` | 提现申请 | 申请提现、提现记录 | 提现记录、账户余额 |
#### 个人中心(代练专属)
| 页面路径 | 页面名称 | 功能说明 | 静态数据 |
|---------|---------|---------|---------|
| `/pages-player/profile/index` | 代练资料 | 编辑代练信息、技能、段位 | 代练信息、技能列表 |
| `/pages-player/profile/skill` | 技能设置 | 设置擅长游戏、段位 | 游戏列表、段位选项 |
---
## 三、组件清单
### 3.1 公共组件
| 组件名称 | 路径 | 功能说明 |
|---------|------|---------|
| Navbar | `/components/navbar/index.vue` | 自定义导航栏 |
| Tabbar | `/components/tabbar/index.vue` | 自定义底部导航(根据角色切换) |
| Empty | `/components/empty/index.vue` | 空状态组件 |
| LoadingMore | `/components/loading-more/index.vue` | 加载更多组件 |
| Avatar | `/components/avatar/index.vue` | 头像组件 |
| ImageUpload | `/components/image-upload/index.vue` | 图片上传组件 |
### 3.2 业务组件
| 组件名称 | 路径 | 功能说明 |
|---------|------|---------|
| ServiceCard | `/components/service-card/index.vue` | 服务卡片 |
| PlayerCard | `/components/player-card/index.vue` | 代练卡片 |
| OrderItem | `/components/order-item/index.vue` | 订单项(根据角色显示不同操作) |
| DispatchDialog | `/components/dispatch-dialog/index.vue` | 派单弹窗 |
| ReviewItem | `/components/review-item/index.vue` | 评价项 |
| GameTag | `/components/game-tag/index.vue` | 游戏标签 |
| StatusBadge | `/components/status-badge/index.vue` | 状态徽章 |
| RoleSwitch | `/components/role-switch/index.vue` | 角色切换组件 |
---
## 四、静态数据结构
### 4.1 用户数据
```typescript
interface User {
id: number
openid: string
phone: string
nickname: string
avatar: string
userType: 'customer' | 'merchant' | 'player'
customerId?: number
merchantId?: number
playerId?: number
tenantId?: number
}
```
### 4.2 代练数据
```typescript
interface Player {
id: number
name: string
avatar: string
phone: string
gameId: string
gameName: string
level: string
rating: number
orderCount: number
completeCount: number
completeRate: number
skills: string[]
intro: string
isOnline: boolean
status: '0' | '1' | '2' // 0正常 1禁用 2待审核
}
```
### 4.3 服务数据
```typescript
interface Service {
id: number
tenantId: number
categoryId: number
categoryName: string
name: string
coverImage: string
images: string[]
price: number
originalPrice: number
description: string
detail: string
serviceTime: number
status: '0' | '1' // 0上架 1下架
salesCount: number
rating: number
reviewCount: number
}
```
### 4.4 订单数据
```typescript
interface Order {
id: number
orderNo: string
tenantId: number
customerId: number
customerName: string
customerAvatar: string
serviceId: number
serviceName: string
serviceCover: string
price: number
actualPrice: number
status: number // 0待支付 1待派单 2已派单 3已接单 4进行中 5待确认 6已完成 7已评价 9已取消
selectedPlayerId?: number
playerId?: number
playerName?: string
playerAvatar?: string
gameInfo: any
contactInfo: any
remark: string
createTime: string
payTime?: string
dispatchTime?: string
acceptTime?: string
startTime?: string
finishTime?: string
confirmTime?: string
}
```
### 4.5 评价数据
```typescript
interface Evaluation {
id: number
orderId: number
customerId: number
customerName: string
customerAvatar: string
playerId: number
playerName: string
serviceId: number
serviceName: string
rating: number
content: string
images: string[]
isAnonymous: boolean
reply?: string
replyTime?: string
createTime: string
}
```
---
## 五、状态管理Pinia Stores
### 5.1 Store 清单
| Store 名称 | 路径 | 功能说明 |
|-----------|------|---------|
| user | `/store/modules/user.ts` | 用户信息、登录状态 |
| role | `/store/modules/role.ts` | 角色管理、角色切换 |
| tenant | `/store/modules/tenant.ts` | 租户信息 |
| order | `/store/modules/order.ts` | 订单数据 |
| service | `/store/modules/service.ts` | 服务数据 |
| player | `/store/modules/player.ts` | 代练数据 |
| message | `/store/modules/message.ts` | 消息数据 |
---
## 六、路由与权限
### 6.1 路由配置
**分包策略**:
- 主包: 启动页、登录、个人中心
- 用户端分包: `pages-user`
- 商家端分包: `pages-merchant`
- 代练端分包: `pages-player`
### 6.2 权限控制
**路由守卫**:
- 白名单: 启动页、登录页、协议页
- 需登录: 所有业务页面
- 角色权限: 不同角色只能访问对应分包
---
## 七、开发优先级
### 第一阶段基础框架Day 1-2
- [x] 项目初始化uni-app + Vue3 + TS
- [x] UI 框架集成uView UI
- [x] 目录结构搭建
- [x] Pinia 状态管理
- [x] 路由守卫
- [x] 静态数据准备
### 第二阶段公共功能Day 3-4
- [x] 登录页面
- [x] 角色切换
- [x] 个人中心
- [x] 个人信息管理
- [x] 公共组件开发
### 第三阶段用户端Day 5-7
- [x] 用户首页
- [x] 代练列表/详情
- [x] 服务列表/详情
- [x] 下单流程
- [x] 订单列表/详情
- [x] 评价功能
### 第四阶段商家端Day 8-10
- [x] 商家首页
- [x] 订单管理
- [x] 派单功能
- [x] 代练管理
- [x] 服务管理
- [x] 数据统计
### 第五阶段代练端Day 11-12
- [x] 代练首页
- [x] 代练注册
- [x] 订单管理
- [x] 订单执行
- [x] 收益管理
### 第六阶段优化与测试Day 13-14
- [x] 功能测试
- [x] 交互优化
- [x] 样式调整
- [x] 性能优化
---
## 八、技术要点
### 8.1 技术栈
```
uni-app
├── Vue 3 (Composition API)
├── TypeScript
├── Pinia (状态管理)
├── uView UI (UI组件库)
├── uni-scss (样式预处理)
└── dayjs (日期处理)
```
### 8.2 开发规范
**命名规范**:
- 页面文件: kebab-case (如: `user-profile.vue`)
- 组件文件: PascalCase (如: `ServiceCard.vue`)
- 方法/变量: camelCase (如: `getUserInfo`)
**目录规范**:
```
game-service-miniapp-v2/
├── pages/ # 主包页面
├── pages-user/ # 用户端分包
├── pages-merchant/ # 商家端分包
├── pages-player/ # 代练端分包
├── components/ # 公共组件
├── store/ # 状态管理
├── utils/ # 工具函数
├── static/ # 静态资源
├── mock/ # 模拟数据
└── types/ # TypeScript 类型定义
```
**代码规范**:
- 使用 Composition API
- 使用 TypeScript 类型定义
- 使用 ESLint + Prettier
- 使用 Git 提交规范
---
## 九、核心功能流程
### 9.1 用户下单流程
```
浏览服务 → 选择代练 → 创建订单 → 支付 → 等待派单 →
服务中 → 确认完成 → 评价
```
### 9.2 商家派单流程
```
接收订单 → 查看订单详情 → 选择代练 → 派单 →
监控进度 → 完成审核
```
### 9.3 代练接单流程
```
收到派单通知 → 查看订单 → 接单/拒单 → 开始服务 →
上传进度 → 完成订单 → 获得收益
```
---
## 十、注意事项
### 10.1 静态数据处理
- 所有数据存放在 `/mock` 目录
- 使用 `setTimeout` 模拟异步请求
- 保持数据结构与真实 API 一致
- 预留真实 API 接口位置
### 10.2 角色权限
- 不同角色显示不同 Tabbar
- 不同角色首页不同
- 路由守卫控制页面访问
- 操作权限根据角色判断
### 10.3 性能优化
- 使用分包加载
- 图片懒加载
- 列表虚拟滚动
- 合理使用缓存
---
## 十一、总结
本项目共需实现:
- **页面数量**: 约 60+ 页面
- **组件数量**: 约 15+ 组件
- **状态管理**: 7 个 Store
- **角色支持**: 3 种角色
- **核心流程**: 3 条主流程
**开发周期**: 预计 14 天
**开发模式**: 静态数据驱动
**交付标准**: 所有功能可演示,交互完整
---
**文档生成时间**: 2025-12-30
**文档版本**: v1.0