222 lines
3.8 KiB
Markdown
222 lines
3.8 KiB
Markdown
|
|
# Sales Chat Flutter App
|
||
|
|
|
||
|
|
销售聊天系统 Flutter 移动端应用
|
||
|
|
|
||
|
|
## 项目说明
|
||
|
|
|
||
|
|
这是一个独立的 Flutter 应用,用于销售邀请追踪和数据统计。
|
||
|
|
|
||
|
|
**技术栈**: Flutter + Provider + Dio
|
||
|
|
|
||
|
|
## 功能特性
|
||
|
|
|
||
|
|
- 📱 群组聊天
|
||
|
|
- 🎫 邀请码管理
|
||
|
|
- 📊 销售数据统计
|
||
|
|
- 📈 个人/团队排行榜
|
||
|
|
- 🔍 消息搜索
|
||
|
|
|
||
|
|
## 快速开始
|
||
|
|
|
||
|
|
### 1. 环境要求
|
||
|
|
|
||
|
|
- Flutter SDK >= 3.0.0
|
||
|
|
- Dart >= 3.0.0
|
||
|
|
- iOS: Xcode >= 14 (macOS only)
|
||
|
|
- Android: Android Studio / SDK
|
||
|
|
|
||
|
|
### 2. 安装依赖
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd client/flutter
|
||
|
|
flutter pub get
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3. 配置后端地址
|
||
|
|
|
||
|
|
编辑 `lib/services/api_service.dart`:
|
||
|
|
|
||
|
|
```dart
|
||
|
|
// 开发环境 - 连接独立后端
|
||
|
|
static const String _baseUrl = 'http://localhost:3001/api';
|
||
|
|
|
||
|
|
// 或者连接 Tailchat 插件 API
|
||
|
|
// static const String _baseUrl = 'http://localhost:11000/api/plugin/com.msgbyte.saleschat';
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4. 运行应用
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 开发模式
|
||
|
|
flutter run
|
||
|
|
|
||
|
|
# 指定设备
|
||
|
|
flutter run -d chrome # Web
|
||
|
|
flutter run -d iphone # iOS
|
||
|
|
flutter run -d android # Android
|
||
|
|
|
||
|
|
# 生产构建
|
||
|
|
flutter build apk # Android APK
|
||
|
|
flutter build ios # iOS (需要 Xcode)
|
||
|
|
flutter build web # Web
|
||
|
|
```
|
||
|
|
|
||
|
|
## 项目结构
|
||
|
|
|
||
|
|
```
|
||
|
|
lib/
|
||
|
|
├── main.dart # 应用入口
|
||
|
|
├── models/ # 数据模型
|
||
|
|
│ ├── invite.dart
|
||
|
|
│ ├── message.dart
|
||
|
|
│ └── stats.dart
|
||
|
|
├── screens/ # 页面
|
||
|
|
│ ├── home/
|
||
|
|
│ ├── chat/
|
||
|
|
│ ├── invite/
|
||
|
|
│ └── stats/
|
||
|
|
├── services/ # 服务
|
||
|
|
│ ├── api_service.dart # API 调用
|
||
|
|
│ ├── auth_service.dart # 认证
|
||
|
|
│ └── storage_service.dart # 本地存储
|
||
|
|
├── providers/ # 状态管理
|
||
|
|
│ ├── auth_provider.dart
|
||
|
|
│ ├── chat_provider.dart
|
||
|
|
│ └── stats_provider.dart
|
||
|
|
└── widgets/ # 通用组件
|
||
|
|
├── invite_card.dart
|
||
|
|
├── message_bubble.dart
|
||
|
|
└── stats_chart.dart
|
||
|
|
```
|
||
|
|
|
||
|
|
## API 配置
|
||
|
|
|
||
|
|
### 独立后端模式
|
||
|
|
|
||
|
|
连接 `sales-chat-backend` (端口 3001):
|
||
|
|
|
||
|
|
```dart
|
||
|
|
static const String _baseUrl = 'http://localhost:3001/api';
|
||
|
|
```
|
||
|
|
|
||
|
|
API 路径:
|
||
|
|
- `/auth/login` - 登录
|
||
|
|
- `/invites` - 邀请管理
|
||
|
|
- `/stats/my` - 个人统计
|
||
|
|
- `/groups` - 群组管理
|
||
|
|
|
||
|
|
### Tailchat 插件模式
|
||
|
|
|
||
|
|
连接 Tailchat (端口 11000):
|
||
|
|
|
||
|
|
```dart
|
||
|
|
static const String _baseUrl = 'http://localhost:11000/api/plugin/com.msgbyte.saleschat';
|
||
|
|
```
|
||
|
|
|
||
|
|
API 路径:
|
||
|
|
- `/invite/create` - 创建邀请
|
||
|
|
- `/invite/my` - 我的邀请
|
||
|
|
- `/stats/my` - 个人统计
|
||
|
|
|
||
|
|
## 开发
|
||
|
|
|
||
|
|
### 代码规范
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 格式化代码
|
||
|
|
dart format .
|
||
|
|
|
||
|
|
# 静态分析
|
||
|
|
flutter analyze
|
||
|
|
|
||
|
|
# 运行测试
|
||
|
|
flutter test
|
||
|
|
```
|
||
|
|
|
||
|
|
### 环境配置
|
||
|
|
|
||
|
|
创建 `.env` 文件:
|
||
|
|
|
||
|
|
```env
|
||
|
|
API_BASE_URL=http://localhost:3001/api
|
||
|
|
ENABLE_LOGGING=true
|
||
|
|
```
|
||
|
|
|
||
|
|
## 部署
|
||
|
|
|
||
|
|
### Android
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 构建 APK
|
||
|
|
flutter build apk --release
|
||
|
|
|
||
|
|
# 构建 App Bundle (Google Play)
|
||
|
|
flutter build appbundle --release
|
||
|
|
|
||
|
|
# 输出位置
|
||
|
|
# build/app/outputs/flutter-apk/app-release.apk
|
||
|
|
```
|
||
|
|
|
||
|
|
### iOS
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 构建 iOS
|
||
|
|
flutter build ios --release
|
||
|
|
|
||
|
|
# 在 Xcode 中打开
|
||
|
|
open ios/Runner.xcworkspace
|
||
|
|
|
||
|
|
# 上传到 App Store Connect
|
||
|
|
# 使用 Xcode 或 Transporter
|
||
|
|
```
|
||
|
|
|
||
|
|
### Web
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 构建 Web
|
||
|
|
flutter build web --release
|
||
|
|
|
||
|
|
# 输出位置
|
||
|
|
# build/web/
|
||
|
|
|
||
|
|
# 本地预览
|
||
|
|
cd build/web
|
||
|
|
python3 -m http.server 8080
|
||
|
|
```
|
||
|
|
|
||
|
|
## 故障排除
|
||
|
|
|
||
|
|
### 依赖问题
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 清理并重新获取依赖
|
||
|
|
flutter clean
|
||
|
|
flutter pub get
|
||
|
|
```
|
||
|
|
|
||
|
|
### iOS 构建失败
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 更新 CocoaPods
|
||
|
|
cd ios
|
||
|
|
pod install --repo-update
|
||
|
|
```
|
||
|
|
|
||
|
|
### Android 构建失败
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 清理 Gradle 缓存
|
||
|
|
cd android
|
||
|
|
./gradlew clean
|
||
|
|
```
|
||
|
|
|
||
|
|
## 相关项目
|
||
|
|
|
||
|
|
- **后端插件**: `server/plugins/com.msgbyte.saleschat/`
|
||
|
|
- **原项目**: `/Users/sion/Desktop/projects/sales-chat/`
|
||
|
|
- **Tailchat**: https://github.com/msgbyte/tailchat
|
||
|
|
|
||
|
|
## 许可证
|
||
|
|
|
||
|
|
MIT
|