- 后端新增管理员、商品、分类聚合模型 - 实现积分规则、礼品、订单、会员等完整功能 - 添加管理员认证和权限管理 - 完善数据库迁移和实体配置 - 前端管理后台实现登录、仪表盘、积分规则、礼品、订单、会员等页面 - 集成shadcn-vue UI组件库 - 添加前后端功能文档和截图
327 lines
6.7 KiB
Markdown
327 lines
6.7 KiB
Markdown
# 一物一码会员营销系统 - C端功能文档
|
||
|
||
## 项目概述
|
||
|
||
这是一套基于Vue 3 + TypeScript + Vite + Tailwind CSS构建的一物一码会员营销系统C端应用,提供完整的移动端会员服务体验。
|
||
|
||
## 技术栈
|
||
|
||
- **框架**: Vue 3 Composition API
|
||
- **语言**: TypeScript
|
||
- **构建工具**: Vite
|
||
- **CSS框架**: Tailwind CSS
|
||
- **状态管理**: Pinia
|
||
- **路由**: Vue Router 4
|
||
- **HTTP客户端**: Axios
|
||
- **UI组件**: Lucide Vue Icons
|
||
- **通知**: Vue Sonner
|
||
|
||
## 功能模块
|
||
|
||
### 1. 用户认证系统
|
||
|
||
#### 登录注册
|
||
- 手机号验证码登录/注册
|
||
- JWT Token认证机制
|
||
- Token自动刷新和持久化
|
||
- 路由守卫保护
|
||
|
||
#### 相关文件
|
||
```
|
||
src/pages/auth/Login.vue
|
||
src/pages/auth/Register.vue
|
||
src/stores/member.ts
|
||
src/services/api.ts
|
||
```
|
||
|
||
### 2. 首页 (Home)
|
||
|
||
#### 功能特性
|
||
- 会员信息展示(积分、等级)
|
||
- 快捷功能入口
|
||
- 最近活动展示
|
||
- 响应式移动端设计
|
||
|
||
#### 页面结构
|
||
```vue
|
||
<UserLayout>
|
||
<Header />
|
||
<div class="px-4 pt-4">
|
||
<!-- 会员欢迎区域 -->
|
||
<!-- 快捷功能网格 -->
|
||
<!-- 最近活动列表 -->
|
||
</div>
|
||
</UserLayout>
|
||
```
|
||
|
||
### 3. 积分商城 (Mall)
|
||
|
||
#### 商品浏览
|
||
- 商品分类筛选
|
||
- 商品搜索功能
|
||
- 商品详情展示
|
||
- 积分价格显示
|
||
|
||
#### 购物车功能
|
||
- 商品加入购物车
|
||
- 购物车商品管理
|
||
- 数量调整
|
||
- 商品选择/取消选择
|
||
- 全选功能
|
||
- 积分实时计算
|
||
|
||
#### 相关文件
|
||
```
|
||
src/pages/mall/GiftList.vue # 商品列表
|
||
src/pages/mall/GiftDetail.vue # 商品详情
|
||
src/pages/mall/Cart.vue # 购物车
|
||
src/pages/mall/Checkout.vue # 确认订单
|
||
```
|
||
|
||
### 4. 个人中心 (Profile)
|
||
|
||
#### 个人信息
|
||
- 会员基本信息展示
|
||
- 积分统计概览
|
||
- 会员等级显示
|
||
|
||
#### 功能菜单
|
||
- 积分明细查看
|
||
- 我的订单管理
|
||
- 账户设置
|
||
- 退出登录
|
||
|
||
#### 相关文件
|
||
```
|
||
src/pages/profile/Profile.vue # 个人中心主页
|
||
src/pages/profile/Points.vue # 积分明细
|
||
```
|
||
|
||
### 5. 订单管理 (Orders)
|
||
|
||
#### 订单列表
|
||
- 订单状态筛选(待发货、已发货、已完成、已取消)
|
||
- 订单基本信息展示
|
||
- 订单操作(取消、确认收货)
|
||
|
||
#### 订单详情
|
||
- 详细订单信息
|
||
- 物流跟踪信息
|
||
- 收货地址展示
|
||
|
||
#### 相关文件
|
||
```
|
||
src/pages/orders/OrderList.vue # 订单列表
|
||
src/pages/orders/OrderDetail.vue # 订单详情
|
||
```
|
||
|
||
### 6. 积分明细 (Points)
|
||
|
||
#### 功能特性
|
||
- 积分收支记录展示
|
||
- 按类型筛选(收入/支出)
|
||
- 时间维度统计
|
||
- 积分规则说明
|
||
|
||
### 7. 扫码积分 (Scan)
|
||
|
||
#### 功能特性
|
||
- 营销码扫描功能
|
||
- 积分奖励发放
|
||
- 扫描历史记录
|
||
|
||
## 组件架构
|
||
|
||
### 布局组件
|
||
```
|
||
src/components/layout/
|
||
├── UserLayout.vue # 用户页面通用布局
|
||
├── Header.vue # 顶部导航栏
|
||
└── BottomNav.vue # 底部导航栏
|
||
```
|
||
|
||
### UI组件
|
||
```
|
||
src/components/ui/
|
||
├── Button.vue # 按钮组件
|
||
├── Input.vue # 输入框组件
|
||
└── Toast.vue # 消息提示组件
|
||
```
|
||
|
||
## 路由配置
|
||
|
||
```typescript
|
||
const routes = [
|
||
{ path: '/', redirect: '/home' },
|
||
{ path: '/home', component: Home, meta: { requiresAuth: true } },
|
||
{ path: '/login', component: Login, meta: { guestOnly: true } },
|
||
{ path: '/register', component: Register, meta: { guestOnly: true } },
|
||
{ path: '/profile', component: Profile, meta: { requiresAuth: true } },
|
||
{ path: '/points', component: Points, meta: { requiresAuth: true } },
|
||
{ path: '/mall', component: GiftList, meta: { requiresAuth: true } },
|
||
{ path: '/cart', component: Cart, meta: { requiresAuth: true } },
|
||
{ path: '/checkout', component: Checkout, meta: { requiresAuth: true } },
|
||
{ path: '/orders', component: OrderList, meta: { requiresAuth: true } },
|
||
{ path: '/scan', component: Scan, meta: { requiresAuth: true } }
|
||
]
|
||
```
|
||
|
||
## 状态管理
|
||
|
||
### Member Store
|
||
```typescript
|
||
interface MemberState {
|
||
isAuthenticated: boolean
|
||
token: string | null
|
||
memberInfo: MemberInfo | null
|
||
}
|
||
|
||
// 主要方法
|
||
- login(credentials): Promise<void>
|
||
- register(data): Promise<void>
|
||
- logout(): void
|
||
- fetchMemberInfo(): Promise<void>
|
||
```
|
||
|
||
## API服务
|
||
|
||
### 认证相关
|
||
```typescript
|
||
// 登录
|
||
POST /api/members/login
|
||
// 注册
|
||
POST /api/members/register
|
||
// 获取当前会员信息
|
||
GET /api/members/me
|
||
```
|
||
|
||
### 商城相关
|
||
```typescript
|
||
// 获取商品列表
|
||
GET /api/gifts
|
||
// 获取商品详情
|
||
GET /api/gifts/{id}
|
||
// 创建订单
|
||
POST /api/orders
|
||
```
|
||
|
||
## 样式规范
|
||
|
||
### 响应式设计
|
||
- 移动优先的设计理念
|
||
- 使用Tailwind CSS的响应式工具类
|
||
- 适配各种移动设备屏幕尺寸
|
||
|
||
### 颜色主题
|
||
```css
|
||
/* 主色调 */
|
||
blue-500: #3b82f6 /* 主要按钮 */
|
||
yellow-500: #f59e0b /* 积分相关 */
|
||
green-500: #10b981 /* 成功状态 */
|
||
red-500: #ef4444 /* 错误/危险 */
|
||
|
||
/* 背景色 */
|
||
white: #ffffff /* 卡片背景 */
|
||
gray-50: #f9fafb /* 页面背景 */
|
||
```
|
||
|
||
### 组件间距
|
||
- 使用Tailwind的spacing scale (p-4, m-4, gap-4等)
|
||
- 保持一致的视觉节奏
|
||
|
||
## 开发规范
|
||
|
||
### 代码组织
|
||
```
|
||
src/
|
||
├── pages/ # 页面组件
|
||
├── components/ # 可复用组件
|
||
├── stores/ # 状态管理
|
||
├── services/ # API服务
|
||
├── router/ # 路由配置
|
||
├── composables/ # 组合式函数
|
||
└── types/ # TypeScript类型定义
|
||
```
|
||
|
||
### 命名约定
|
||
- 组件文件名:PascalCase (UserProfile.vue)
|
||
- 组合式函数:use开头 (useAuth.ts)
|
||
- 存储文件:描述性名称 (member.ts)
|
||
- 路由路径:kebab-case (/user-profile)
|
||
|
||
### TypeScript最佳实践
|
||
- 为所有props定义类型
|
||
- 使用接口定义复杂对象结构
|
||
- 合理使用泛型
|
||
- 启用严格模式
|
||
|
||
## 部署配置
|
||
|
||
### 环境变量
|
||
```bash
|
||
# .env.development
|
||
VITE_API_BASE_URL=http://localhost:5000
|
||
|
||
# .env.production
|
||
VITE_API_BASE_URL=https://api.yourdomain.com
|
||
```
|
||
|
||
### 构建命令
|
||
```bash
|
||
# 开发环境
|
||
pnpm dev
|
||
|
||
# 生产构建
|
||
pnpm build
|
||
|
||
# 预览构建结果
|
||
pnpm preview
|
||
```
|
||
|
||
## 测试要点
|
||
|
||
### 功能测试
|
||
1. 用户认证流程(登录/注册/退出)
|
||
2. 商品浏览和购物车操作
|
||
3. 订单创建和管理流程
|
||
4. 积分查询和明细查看
|
||
5. 个人中心功能完整性
|
||
|
||
### 兼容性测试
|
||
- iOS Safari
|
||
- Android Chrome
|
||
- 微信内置浏览器
|
||
- 各种屏幕尺寸适配
|
||
|
||
## 性能优化
|
||
|
||
### 加载优化
|
||
- 代码分割和懒加载
|
||
- 图片懒加载
|
||
- 骨架屏加载状态
|
||
- 缓存策略优化
|
||
|
||
### 用户体验
|
||
- 平滑的过渡动画
|
||
- 及时的操作反馈
|
||
- 合理的加载状态提示
|
||
- 错误处理和重试机制
|
||
|
||
## 安全考虑
|
||
|
||
### 认证安全
|
||
- JWT Token加密存储
|
||
- 请求拦截器添加Authorization头
|
||
- 敏感操作二次确认
|
||
- 会话超时处理
|
||
|
||
### 数据安全
|
||
- XSS防护
|
||
- CSRF保护
|
||
- 输入验证和过滤
|
||
- HTTPS强制使用
|
||
|
||
---
|
||
|
||
*文档最后更新:2024年*
|
||
*版本:1.0.0* |