Flutter 框架跨平台鸿蒙开发 - 互助服务
运行效果图邻里互助服务平台是一款面向社区居民的互助服务应用,旨在促进邻里之间的互帮互助,构建和谐社区。居民可以在平台上发布求助信息、提供帮助服务、分享闲置物品、组织社区活动等。通过积分激励机制,鼓励居民积极参与社区建设,实现资源共享、互帮互助的社区生态。应用以清新的青色为主色调,象征邻里之间的信任与和谐。涵盖首页大厅、互助大厅、我的互助、个人中心四大模块。用户可以发布求助、接单帮助、查看记录、管理
互助服务平台
欢迎加入开源鸿蒙跨平台社区:
https://openharmonycrossplatform.csdn.net
一、项目概述
运行效果图




1.1 应用简介
邻里互助服务平台是一款面向社区居民的互助服务应用,旨在促进邻里之间的互帮互助,构建和谐社区。居民可以在平台上发布求助信息、提供帮助服务、分享闲置物品、组织社区活动等。通过积分激励机制,鼓励居民积极参与社区建设,实现资源共享、互帮互助的社区生态。
应用以清新的青色为主色调,象征邻里之间的信任与和谐。涵盖首页大厅、互助大厅、我的互助、个人中心四大模块。用户可以发布求助、接单帮助、查看记录、管理积分,快速参与社区互助。
1.2 核心功能
| 功能模块 | 功能描述 | 实现方式 |
|---|---|---|
| 求助发布 | 发布求助信息 | 表单提交 |
| 接单帮助 | 接受他人求助 | 状态流转 |
| 服务提供 | 提供技能服务 | 服务卡片 |
| 积分系统 | 帮助获积分 | 积分计算 |
| 等级体系 | 6级成长体系 | 积分累计 |
| 位置距离 | 显示距离信息 | 模拟定位 |
1.3 求助类型定义
| 序号 | 类型名称 | Emoji | 描述 |
|---|---|---|---|
| 1 | 生活帮助 | 🛒 | 代购跑腿、照看宠物 |
| 2 | 技能服务 | 🔧 | 家电维修、辅导家教 |
| 3 | 物品借用 | 📦 | 工具借用、物品借用 |
| 4 | 紧急求助 | 🆘 | 紧急联系、医疗求助 |
1.4 求助状态定义
| 序号 | 状态名称 | Emoji | 描述 |
|---|---|---|---|
| 1 | 待接单 | ⏳ | 等待邻居接单 |
| 2 | 进行中 | 🔄 | 正在帮助中 |
| 3 | 已完成 | ✅ | 帮助已完成 |
| 4 | 已取消 | ❌ | 求助已取消 |
1.5 用户等级定义
| 序号 | 等级名称 | Emoji | 所需积分 | 特权 |
|---|---|---|---|---|
| 1 | 新邻居 | 🏠 | 0 | 基础功能 |
| 2 | 热心邻居 | 💝 | 100 | 优先展示服务 |
| 3 | 邻里达人 | ⭐ | 300 | 专属标识 |
| 4 | 社区之星 | 🌟 | 600 | 活动优先报名 |
| 5 | 模范邻居 | 💎 | 1000 | 积分双倍奖励 |
| 6 | 社区榜样 | 👑 | 2000 | 社区推荐展示 |
1.6 积分规则定义
| 序号 | 行为 | 积分变化 | 说明 |
|---|---|---|---|
| 1 | 发布求助 | 0 | 免费发布求助 |
| 2 | 接受帮助 | -10 | 感谢帮助者 |
| 3 | 提供帮助 | +15 | 帮助他人 |
| 4 | 完成服务 | +20 | 完成服务订单 |
| 5 | 参与活动 | +10 | 参与社区活动 |
| 6 | 每日签到 | +2 | 连续签到奖励 |
1.7 技术栈
| 技术领域 | 技术选型 | 版本要求 |
|---|---|---|
| 开发框架 | Flutter | >= 3.0.0 |
| 编程语言 | Dart | >= 2.17.0 |
| 设计规范 | Material Design 3 | - |
| 状态管理 | setState | - |
| 数据存储 | 内存模拟 | - |
| 目标平台 | 鸿蒙OS / Web | API 21+ |
1.8 项目结构
lib/
└── main_neighbor_help.dart
├── NeighborHelpApp # 应用入口
├── HelpType # 求助类型枚举
├── HelpStatus # 求助状态枚举
├── UserLevel # 用户等级枚举
├── HelpRequest # 求助模型
├── Service # 服务模型
├── MainScreen # 主页面(底部导航)
├── HomePage # 首页
├── HelpListPage # 互助大厅
├── MyHelpPage # 我的互助
├── ProfilePage # 个人中心
├── HelpDetailSheet # 求助详情弹窗
└── PublishHelpSheet # 发布求助弹窗
二、系统架构
2.1 整体架构图
2.2 类图设计
2.3 页面导航流程
2.4 求助处理流程
三、核心模块设计
3.1 数据模型设计
3.1.1 求助类型枚举 (HelpType)
enum HelpType {
life('生活帮助', '🛒', Color(0xFF4CAF50)),
skill('技能服务', '🔧', Color(0xFF2196F3)),
borrow('物品借用', '📦', Color(0xFFFF9800)),
emergency('紧急求助', '🆘', Color(0xFFE91E63));
final String label;
final String emoji;
final Color color;
}
3.1.2 求助状态枚举 (HelpStatus)
enum HelpStatus {
pending('待接单', '⏳', Colors.orange),
inProgress('进行中', '🔄', Colors.blue),
completed('已完成', '✅', Colors.green),
cancelled('已取消', '❌', Colors.grey);
final String label;
final String emoji;
final Color color;
}
3.1.3 求助模型 (HelpRequest)
class HelpRequest {
final String id; // 求助ID
final String title; // 求助标题
final String content; // 求助内容
final HelpType type; // 求助类型
final String publisherId; // 发布者ID
final String publisherName; // 发布者昵称
final String publisherAvatar; // 发布者头像
final String address; // 地址
final double distance; // 距离(km)
final int rewardPoints; // 悬赏积分
final HelpStatus status; // 求助状态
final DateTime createTime; // 创建时间
final String? helperName; // 帮助者昵称
}
3.1.4 服务模型 (Service)
class Service {
final String id; // 服务ID
final String title; // 服务标题
final String description; // 服务描述
final String providerId; // 提供者ID
final String providerName; // 提供者昵称
final String providerAvatar; // 提供者头像
final int providerPoints; // 提供者积分
final double rating; // 服务评分
final int orderCount; // 订单数
final double price; // 服务价格
}
3.1.5 求助类型分布
3.2 页面结构设计
3.2.1 主页面布局
3.2.2 首页结构
3.2.3 求助卡片结构
3.2.4 互助大厅结构
3.3 接单处理逻辑
3.4 积分计算逻辑
四、UI设计规范
4.1 配色方案
应用以清新的青色为主色调,象征邻里之间的信任与和谐:
| 颜色类型 | 色值 | 用途 |
|---|---|---|
| 主色 | #00BCD4 (Cyan) | 导航、主题元素 |
| 辅助色 | #4CAF50 | 生活帮助 |
| 第三色 | #2196F3 | 技能服务 |
| 强调色 | #FF9800 | 物品借用 |
| 警示色 | #E91E63 | 紧急求助 |
| 背景色 | #FAFAFA | 页面背景 |
| 卡片背景 | #FFFFFF | 求助卡片 |
4.2 求助类型颜色
| 类型 | 色值 | 视觉效果 |
|---|---|---|
| 生活帮助 | #4CAF50 | 清新绿色 |
| 技能服务 | #2196F3 | 专业蓝色 |
| 物品借用 | #FF9800 | 温暖橙色 |
| 紧急求助 | #E91E63 | 警示粉色 |
4.3 字体规范
| 元素 | 字号 | 字重 | 颜色 |
|---|---|---|---|
| 页面标题 | 20px | Bold | 主色 |
| 求助标题 | 16px | Medium | #000000 |
| 类型标签 | 12px | Regular | 类型色 |
| 状态标签 | 11px | Regular | 状态色 |
| 积分数字 | 20px | Bold | #FFC107 |
4.4 组件规范
4.4.1 快捷入口
┌─────────────────────────────────────┐
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐│
│ │ 🛒 │ │ 🔧 │ │ 📦 │ │ 🎉 ││
│ │发布 │ │提供 │ │闲置 │ │社区 ││
│ │求助 │ │服务 │ │共享 │ │活动 ││
│ └──────┘ └──────┘ └──────┘ └──────┘│
└─────────────────────────────────────┘
4.4.2 用户信息卡
┌─────────────────────────────────────┐
│ 👤 社区居民 ⭐ │
│ 阳光小区 3栋 │
│ ⭐ 380积分 │
│ [签到 +2] │
└─────────────────────────────────────┘
4.4.3 求助卡片
┌─────────────────────────────────────┐
│ ┌────┐ 帮忙代购蔬菜水果 💰10 │
│ │ 🛒 │ 家里老人腿脚不便... │
│ └────┘ │
│ 📍 0.2km ⏰ 2小时前 [⏳ 待接单] │
└─────────────────────────────────────┘
4.4.4 服务卡片
┌─────────────────────────────────────┐
│ 👤 刘师傅 ⭐ 4.9 │
│ 家电维修服务 │
│ 空调、冰箱、洗衣机等家电维修 │
│ ¥50 156单 │
└─────────────────────────────────────┘
4.4.5 发布表单
┌─────────────────────────────────────┐
│ 发布求助 │
│ │
│ 选择类型 │
│ [🛒 生活帮助] [🔧 技能服务] │
│ [📦 物品借用] [🆘 紧急求助] │
│ │
│ 求助标题 │
│ [请简要描述您的需求 ] │
│ │
│ 详细描述 │
│ [请详细描述您的需求... ] │
│ │
│ 悬赏积分 [-] 10 [+] │
│ │
│ [ 发布求助 ] │
└─────────────────────────────────────┘
五、核心功能实现
5.1 求助列表筛选实现
class HelpListPage extends StatefulWidget {
const HelpListPage({super.key});
State<HelpListPage> createState() => _HelpListPageState();
}
class _HelpListPageState extends State<HelpListPage> {
HelpType? _selectedType;
String _sortBy = 'distance';
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
_buildFilterBar(context),
Expanded(child: _buildHelpList(context)),
],
),
);
}
}
5.2 接单功能实现
void _acceptHelp(HelpRequest help, BuildContext context) {
if (help.status != HelpStatus.pending) {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('该求助已被接单')),
);
return;
}
Navigator.pop(context);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('接单成功!')),
);
}
5.3 积分计算实现
int calculatePoints(UserAction action, {int? reward}) {
switch (action) {
case UserAction.publishHelp:
return 0;
case UserAction.acceptHelp:
return -(reward ?? 10);
case UserAction.provideHelp:
return reward ?? 15;
case UserAction.completeService:
return 20;
case UserAction.joinActivity:
return 10;
case UserAction.dailySignIn:
return 2;
default:
return 0;
}
}
5.4 等级计算实现
enum UserLevel {
newbie('新邻居', '🏠', 0),
warm('热心邻居', '💝', 100),
expert('邻里达人', '⭐', 300),
star('社区之星', '🌟', 600),
model('模范邻居', '💎', 1000),
leader('社区榜样', '👑', 2000);
final String label;
final String emoji;
final int minPoints;
static UserLevel fromPoints(int points) {
return UserLevel.values.lastWhere(
(level) => points >= level.minPoints,
orElse: () => UserLevel.newbie,
);
}
}
5.5 发布求助实现
class PublishHelpSheet extends StatefulWidget {
const PublishHelpSheet({super.key});
State<PublishHelpSheet> createState() => _PublishHelpSheetState();
}
class _PublishHelpSheetState extends State<PublishHelpSheet> {
final _titleController = TextEditingController();
final _contentController = TextEditingController();
HelpType _selectedType = HelpType.life;
int _rewardPoints = 10;
void _submit() {
Navigator.pop(context);
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('发布成功!等待邻居接单')),
);
}
}
六、交互设计
6.1 发布求助流程
6.2 接单帮助流程
6.3 积分变动流程
七、扩展功能规划
7.1 后续版本规划
7.2 功能扩展建议
7.2.1 实时聊天功能
聊天功能:
- 即时消息发送
- 图片语音消息
- 消息已读状态
- 历史消息记录
7.2.2 地图定位功能
定位功能:
- 实时位置共享
- 距离精确计算
- 导航路线规划
- 位置隐私保护
7.2.3 评价系统完善
评价功能:
- 多维度评价
- 评价内容审核
- 评价统计分析
- 信用评分体系
八、注意事项
8.1 开发注意事项
-
隐私保护:用户位置信息需加密处理
-
安全验证:接单前需验证用户身份
-
积分安全:积分变动需记录日志
-
状态同步:求助状态变更需及时通知
-
异常处理:网络异常需友好提示
8.2 常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 接单失败 | 状态已变更 | 刷新列表 |
| 积分未到账 | 网络延迟 | 稍后刷新 |
| 位置不准 | 定位权限 | 开启定位 |
| 无法发布 | 内容违规 | 修改内容 |
| 通知未收到 | 权限未开启 | 开启通知 |
8.3 使用技巧
🤝 邻里互助使用技巧 🤝
发布求助技巧
- 标题简洁明了,突出需求
- 详细描述具体要求
- 合理设置悬赏积分
- 留下有效联系方式
接单帮助技巧
- 选择力所能及的求助
- 及时与发布者沟通
- 按时完成帮助任务
- 友好礼貌待人
积分获取技巧
- 每日签到获取积分
- 积极帮助他人
- 参与社区活动
- 提供优质服务
九、运行说明
9.1 环境要求
| 环境 | 版本要求 |
|---|---|
| Flutter SDK | >= 3.0.0 |
| Dart SDK | >= 2.17.0 |
| 鸿蒙OS | API 21+ |
| Web浏览器 | Chrome 90+ |
9.2 运行命令
# 查看可用设备
flutter devices
# 运行到Web服务器
flutter run -d web-server -t lib/main_neighbor_help.dart --web-port 8159
# 运行到鸿蒙设备
flutter run -d 127.0.0.1:5555 lib/main_neighbor_help.dart
# 代码分析
flutter analyze lib/main_neighbor_help.dart
十、总结
邻里互助服务平台通过首页大厅、互助大厅、我的互助、个人中心四大模块,为社区居民提供了一个便捷的互助服务平台。应用支持4种求助类型、4种求助状态、6级用户等级,让居民轻松参与社区互助,构建和谐邻里关系。
核心功能涵盖求助发布、接单帮助、服务提供、积分系统四大模块。求助类型包括生活帮助、技能服务、物品借用、紧急求助;求助状态从待接单到已完成,完整覆盖互助流程;用户等级从新邻居到社区榜样,激励居民积极参与;积分系统通过多种方式获取积分,促进社区良性循环。
应用采用 Material Design 3 设计规范,以清新的青色为主色调,象征邻里之间的信任与和谐。通过本应用,希望能够帮助社区居民建立互帮互助的良好关系,共同构建温馨和谐的社区环境。
邻里互助服务平台——共建和谐社区
更多推荐

所有评论(0)