Files
frontend/README.md
Mikuisnotavailable a424d06731 feat: implement Redux store with slices for user, order, file, and printer management
- Added Redux store configuration in `src/store/index.ts`.
- Created slices for user, order, file, and printer with respective reducers and actions.
- Implemented custom hooks `useAppDispatch` and `useAppSelector` for typed Redux usage.
- Defined types for file, order, printer, and user in `src/types`.
- Added utility functions for formatting prices, file sizes, and dates in `src/utils`.
- Created common styles and animations in `src/styles` for consistent UI design.
- Integrated API request handling with token management in `src/utils/request.ts`.
- Implemented local storage management for user token and info in `src/utils/storage.ts`.
2026-03-30 23:19:43 +08:00

157 lines
4.3 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.
# 萝卜打印 - 微信小程序
付费打印服务微信小程序前端项目,基于 Taro + React + TypeScript。
## 技术栈
| 技术 | 说明 |
|------|------|
| 框架 | Taro 4.x + React |
| 语言 | TypeScript |
| 状态管理 | Redux Toolkit |
| 编译工具 | Vite |
| UI | 自定义组件 |
## 项目结构
```
src/
├── api/ # API 接口层
│ ├── auth.ts # 认证服务
│ ├── file.ts # 文件服务
│ ├── order.ts # 订单服务
│ ├── printer.ts # 打印机服务
│ ├── price.ts # 价目服务
│ └── pay.ts # 支付服务
├── config/ # 配置文件
│ └── api.ts # API 地址配置
├── store/ # Redux 状态管理
│ ├── index.ts # Store 入口
│ ├── hooks.ts # Hooks
│ └── slices/ # Slice 模块
│ ├── userSlice.ts
│ ├── orderSlice.ts
│ ├── fileSlice.ts
│ └── printerSlice.ts
├── pages/ # 页面
│ ├── index/ # 首页
│ ├── login/ # 登录页
│ ├── user/ # 用户中心
│ ├── file/ # 文件管理
│ └── order/ # 订单管理
├── components/ # 公共组件
│ ├── OrderCard/ # 订单卡片
│ └── PriceTable/ # 价目表
├── types/ # TypeScript 类型
│ ├── user.ts
│ ├── order.ts
│ ├── file.ts
│ ├── printer.ts
│ └── price.ts
├── utils/ # 工具函数
│ ├── format.ts # 格式化工具
│ └── storage.ts # 本地存储
└── hooks/ # 自定义 Hooks
└── useAuth.ts # 认证 Hook
```
## 环境配置
API 地址配置:`src/config/api.ts`
```typescript
const DEV_API_URL = 'http://localhost:8080';
const PROD_API_URL = 'http://localhost:8080';
export const API_BASE_URL = process.env.NODE_ENV === 'development' ? DEV_API_URL : PROD_API_URL;
```
## 开发命令
```bash
# 安装依赖
npm install
# 开发模式(微信小程序)
npm run dev:weapp
# 生产构建
npm run build:weapp
```
## 微信开发者工具配置
1. 导入项目目录:`dist/miniprogram`
2. AppID使用 `touristappid` 或自己申请的
3. 启动开发服务器后点击刷新
## 主要功能
### 用户模块
- 手机号 + 验证码登录
- 微信一键登录
- 用户信息管理
- 退出登录
### 文件模块
- 文件上传
- 文件列表
- 文件删除
- 打印功能
### 订单模块
- 创建订单
- 订单列表
- 订单详情
- 取消订单
### 打印模块
- 选择打印规格A4/A3/照片)
- 选择打印颜色(黑白/彩色)
- 选择份数
- 选择打印机
## 页面说明
| 页面 | 路径 | 说明 |
|------|------|------|
| 首页 | `/pages/index/index` | 主入口,显示快捷操作和价目表 |
| 登录 | `/pages/login/index` | 手机号登录/微信登录 |
| 用户中心 | `/pages/user/index` | 用户信息、余额、菜单 |
| 我的文件 | `/pages/file/index` | 文件列表管理 |
| 上传文件 | `/pages/file/upload/index` | 文件上传 |
| 我的订单 | `/pages/order/index` | 订单列表 |
| 订单详情 | `/pages/order/detail/index` | 订单详情 |
## 代码规范
### 导入规范
- Redux 类型从 `@reduxjs/toolkit` 导入
- API_BASE_URL 从 `../config/api` 导入
### 函数缓存
- 使用 `useCallback` 缓存事件处理函数
- 使用 `useMemo` 缓存计算结果
### 命名规范
- 组件使用 PascalCase`OrderCard`
- 样式类使用小写 + 连字符(如 `.order-card`
- 常量使用全大写(如 `BASE_URL`
## 更新日志
### 2026-03-30
- 项目初始化
- 完成首页、登录页、用户中心、文件管理、订单管理页面开发
- 实现 Redux Toolkit 状态管理
- 实现 API 接口层统一管理
- 优化手机号输入验证
- 美化界面样式(淡雅配色)
### 技术优化
- 使用 `useCallback` 缓存函数减少重复创建
- 使用 `useMemo` 缓存计算结果
- API URL 统一配置文件管理
- Redux 导入路径修正为 `@reduxjs/toolkit`
- 提取共享 request 函数消除代码重复(`src/utils/request.ts`