# 一物一码会员营销系统 - 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
```
### 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
- register(data): Promise
- logout(): void
- fetchMemberInfo(): Promise
```
## 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*