banxiang/docs/CODE-MAP.md
2026-02-18 18:06:31 +00:00

101 lines
4.7 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.

# CODE MAPFlutter 项目)
> 版本v1.1.0+2 | 更新2026-02-17
## 1) 目录树(文件级,聚焦 lib/
```
banxiang_app/
├── lib/
│ ├── main.dart
│ ├── theme.dart
│ ├── models/
│ │ ├── activity.dart
│ │ ├── hospital.dart
│ │ ├── message.dart
│ │ └── user.dart
│ ├── screens/
│ │ ├── activity_detail_screen.dart
│ │ ├── activity_list_screen.dart
│ │ ├── ai_chat_screen.dart
│ │ ├── booking_screen.dart
│ │ ├── create_activity_screen.dart
│ │ ├── department_screen.dart
│ │ ├── doctor_list_screen.dart
│ │ ├── home_screen.dart
│ │ ├── hospital_list_screen.dart
│ │ ├── login_screen.dart
│ │ ├── main_screen.dart
│ │ ├── medical_screen.dart
│ │ ├── messages_screen.dart
│ │ ├── order_list_screen.dart
│ │ ├── payment_screen.dart
│ │ ├── profile_screen.dart
│ │ ├── profile_setup_screen.dart
│ │ ├── publish_screen.dart
│ │ └── services_screen.dart
│ ├── services/
│ │ ├── activity_service.dart
│ │ ├── ai_service.dart
│ │ ├── auth_service.dart
│ │ └── medical_service.dart
│ └── utils/
│ └── constants.dart
```
## 2) 文件说明
| 文件 | 说明 |
|---|---|
| main.dart | 应用入口读取本地token后决定进入登录页或活动广场页 |
| theme.dart | 定义全局浅色主题 AppTheme.lightTheme |
| models/activity.dart | 活动实体模型,承载标题、分类、时间、地点、人数等基础字段 |
| models/hospital.dart | 医疗相关实体,含 Hospital、Doctor、Appointment 三类模型 |
| models/message.dart | 聊天消息模型,含文本、发送方与时间 |
| models/user.dart | 用户资料模型,含手机号、昵称、性别、兴趣等 |
| screens/activity_list_screen.dart | 活动广场页,瀑布流展示活动卡片+底部导航+发布入口 |
| screens/activity_detail_screen.dart | 活动详情页,含图片轮播、评论区、点赞与报名底栏 |
| screens/login_screen.dart | 手机验证码模拟登录页,登录后按新老用户分流 |
| screens/profile_setup_screen.dart | 新用户三步资料完善流程 |
| screens/profile_screen.dart | 个人资料编辑页 |
| screens/publish_screen.dart | 发布页,支持图片/视频上传 |
| screens/ai_chat_screen.dart | AI聊天页支持快捷提问和消息渲染 |
| screens/services_screen.dart | 生活服务总入口页 |
| screens/medical_screen.dart | 医疗健康服务聚合页 |
| screens/messages_screen.dart | 消息通知页(空壳) |
| screens/main_screen.dart | 底部Tab主容器旧版已不作入口 |
| services/auth_service.dart | 认证与用户资料服务,管理登录态与资料更新 |
| services/activity_service.dart | 活动 mock 数据服务 |
| services/ai_service.dart | AI回复 mock 服务,基于关键词规则 |
| services/medical_service.dart | 医疗 mock 数据服务 |
| utils/constants.dart | 应用常量(应用名、活动分类、兴趣标签等) |
## 3) 核心方法索引
| 文件 | 方法 | 说明 |
|---|---|---|
| main.dart | main | 读取token决定首屏 |
| login_screen.dart | _login | 校验验证码+写token+登录分流 |
| profile_setup_screen.dart | _finishSetup | 提交资料跳转活动页 |
| activity_list_screen.dart | _buildBody | 构建瀑布流活动列表 |
| activity_list_screen.dart | _buildFloatingActionButton | 构建中心悬浮发布按钮 |
| activity_detail_screen.dart | _toggleLike | 切换点赞状态 |
| activity_detail_screen.dart | _postComment | 发布评论 |
| publish_screen.dart | _publish | 校验并发布 |
| publish_screen.dart | _pickImages | 多选图片最多9张 |
| auth_service.dart | checkLoginStatus | 读取token恢复登录态 |
| auth_service.dart | updateProfile | 更新用户资料 |
| activity_service.dart | getActivities | 按分类筛选活动 |
| ai_service.dart | mockChat | 基于关键词返回AI回复 |
## 4) 数据模型汇总
| 模型 | 主要字段 | 用途 |
|---|---|---|
| Activity | id, title, category, time, location, maxParticipants, currentParticipants | 社区活动核心实体 |
| User | id, phone, nickname, avatar, birthYear, gender, city, interests | 用户画像 |
| Hospital | id, name, address, departments | 医院实体 |
| Doctor | id, name, department, title, fee | 医生实体 |
| Appointment | id, hospitalName, doctorName, time, status, fee | 预约订单 |
| Message | text, isUser, time | AI聊天消息 |