183 lines
4.3 KiB
Markdown
183 lines
4.3 KiB
Markdown
# 车管家 4S店车辆维保管理系统 - Android 客户端
|
||
|
||
基于 **Kotlin + Jetpack Compose** 开发的现代化 Android 应用。
|
||
|
||
## 技术栈
|
||
|
||
- **UI 框架**: Jetpack Compose (Material 3)
|
||
- **架构**: MVVM + Clean Architecture
|
||
- **依赖注入**: Hilt
|
||
- **网络请求**: Retrofit + OkHttp
|
||
- **异步处理**: Coroutines + Flow
|
||
- **本地存储**: DataStore (用于存储Token和用户信息)
|
||
- **导航**: Navigation Compose
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
app/
|
||
├── data/ # 数据层
|
||
│ ├── local/ # 本地数据
|
||
│ ├── model/ # 数据模型
|
||
│ ├── remote/ # 远程数据源
|
||
│ │ ├── ApiService.kt # API接口定义
|
||
│ │ └── ApiResponse.kt # API响应封装
|
||
│ ├── repository/ # 仓库层
|
||
│ └── manager/ # 数据管理器
|
||
├── di/ # 依赖注入模块
|
||
│ └── NetworkModule.kt # 网络模块配置
|
||
├── ui/ # UI层
|
||
│ ├── navigation/ # 导航配置
|
||
│ ├── screen/ # 页面
|
||
│ │ ├── customer/ # 客户模块
|
||
│ │ └── admin/ # 管理员模块
|
||
│ ├── theme/ # 主题配置
|
||
│ └── viewmodel/ # ViewModel
|
||
└── MainActivity.kt # 主Activity
|
||
```
|
||
|
||
## 功能模块
|
||
|
||
### 已实现功能
|
||
- ✅ 用户登录/登出
|
||
- ✅ 角色权限管理(管理员、工作人员、客户)
|
||
- ✅ 客户仪表板
|
||
- 查看我的车辆
|
||
- 查看维保记录
|
||
- 查看预约记录
|
||
- ✅ 管理员仪表板(基础版)
|
||
- ✅ 数据持久化(Token存储)
|
||
|
||
### 待完善功能
|
||
- ⏳ 在线预约表单
|
||
- ⏳ 管理员完整功能
|
||
- ⏳ 工作人员功能
|
||
- ⏳ 推送通知
|
||
- ⏳ 车辆详情查看
|
||
- ⏳ 工单详情查看
|
||
|
||
## 开发环境要求
|
||
|
||
- Android Studio Hedgehog (2023.1.1) 或更高版本
|
||
- JDK 17
|
||
- Android SDK 34
|
||
- Gradle 8.2
|
||
|
||
## 配置说明
|
||
|
||
### API 地址配置
|
||
|
||
在 `app/build.gradle.kts` 中修改 API_BASE_URL:
|
||
|
||
```kotlin
|
||
// 模拟器测试(访问宿主机localhost)
|
||
buildConfigField("String", "API_BASE_URL", "\"http://10.0.2.2:8080/api/\"")
|
||
|
||
// 真机测试(改为实际IP)
|
||
buildConfigField("String", "API_BASE_URL", "\"http://192.168.1.100:8080/api/\"")
|
||
```
|
||
|
||
### 测试账号
|
||
|
||
- **管理员**: admin / 123456
|
||
- **工作人员**: staff001 / 123456
|
||
- **客户**: customer001 / 123456
|
||
|
||
## 构建和运行
|
||
|
||
### 使用 Android Studio
|
||
|
||
1. 打开 Android Studio
|
||
2. 选择 `File > Open`,选择 `android` 目录
|
||
3. 等待 Gradle 同步完成
|
||
4. 连接 Android 模拟器或真机
|
||
5. 点击 Run 按钮(或按 Shift+F10)
|
||
|
||
### 使用命令行
|
||
|
||
```bash
|
||
# 进入项目目录
|
||
cd android
|
||
|
||
# 构建 Debug 版本
|
||
./gradlew assembleDebug
|
||
|
||
# 安装到设备
|
||
./gradlew installDebug
|
||
|
||
# 或者直接运行
|
||
./gradlew installDebug
|
||
```
|
||
|
||
## 主要依赖
|
||
|
||
```kotlin
|
||
// Compose BOM
|
||
implementation(platform("androidx.compose:compose-bom:2023.10.01"))
|
||
|
||
// Hilt
|
||
implementation("com.google.dagger:hilt-android:2.48")
|
||
|
||
// Retrofit
|
||
implementation("com.squareup.retrofit2:retrofit:2.9.0")
|
||
|
||
// OkHttp
|
||
implementation("com.squareup.okhttp3:okhttp:4.12.0")
|
||
|
||
// DataStore
|
||
implementation("androidx.datastore:datastore-preferences:1.0.0")
|
||
```
|
||
|
||
## 开发注意事项
|
||
|
||
### 网络权限
|
||
已在 `AndroidManifest.xml` 中配置:
|
||
- `INTERNET` - 访问网络
|
||
- `ACCESS_NETWORK_STATE` - 检查网络状态
|
||
- `usesCleartextTraffic="true"` - 允许HTTP请求(仅用于开发)
|
||
|
||
### ProGuard 配置
|
||
已添加 Retrofit、OkHttp、Gson、Hilt 的混淆规则。
|
||
|
||
## 架构设计
|
||
|
||
### 分层架构
|
||
```
|
||
Presentation Layer (UI)
|
||
↓
|
||
Domain Layer (ViewModel)
|
||
↓
|
||
Data Layer (Repository)
|
||
↓
|
||
Remote Data Source (API)
|
||
```
|
||
|
||
### 数据流
|
||
```
|
||
UI Screen
|
||
↓ (用户操作)
|
||
ViewModel
|
||
↓ (调用方法)
|
||
Repository
|
||
↓ (网络请求)
|
||
API Service
|
||
↓ (返回数据)
|
||
Repository (处理数据)
|
||
↓ (StateFlow)
|
||
ViewModel (状态更新)
|
||
↓ (collectAsState)
|
||
UI Screen (自动更新)
|
||
```
|
||
|
||
## 贡献指南
|
||
|
||
1. Fork 项目
|
||
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
||
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
||
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
||
5. 开启 Pull Request
|
||
|
||
## 许可证
|
||
|
||
本项目采用 MIT 许可证
|