# 车管家 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 许可证