Home
Softono

GHMall

Open source MIT Dart
174
Stars
24
Forks
1
Issues
5
Watchers
4 months
Last Commit

 About GHMall

仿京东电商商城实战项目,功能会陆续更新,敬请关注

Platforms

Web Self-hosted iOS Android

Languages

Dart

Links

Need Help Installing GHMall?

We provide expert installation service for this software. Our team will install, configure, and secure GHMall on your server. plans start at just $30.

GHMall - Flutter 电商应用

GHMall

一个完整的 Flutter 电商应用,基于最新的 Flutter 3.41.7 构建,所有核心功能已完成并测试。

✨ 项目特性

  • 用户认证 - 手机号登录/注册
  • 商品浏览 - 轮播图、分类浏览、商品详情
  • 智能搜索 - 商品搜索和筛选
  • 购物车 - 添加、删除、修改数量
  • 订单系统 - 提交订单、订单管理、支付
  • 地址管理 - 收货地址的增删改查
  • 响应式设计 - 完美适配各种 iOS 设备

🛠️ 技术栈

技术 版本 说明
Flutter 3.41.7 跨平台框架
Dart 3.11.5 编程语言
null safety 完全支持空安全

📦 核心依赖

插件 用途
dio HTTP 网络请求
sqflite 本地数据库存储
flutter_screenutil 屏幕适配和响应式设计
fluttertoast 消息提示
transparent_image 图片加载动画
event_bus 事件通信
shared_preferences 本地轻量级存储

🚀 快速开始

环境要求

- Flutter SDK: 3.41.7 或更高
- Dart SDK: 3.11.5 或更高
- iOS: 12.0+ (使用 Xcode 构建)
- 或 Android: API 21+ (使用 Android Studio)

安装步骤

  1. 克隆项目
git clone https://github.com/shabake/GHMall.git
cd GHMall
  1. 获取依赖
flutter pub get
  1. 运行应用

iOS 模拟器:

flutter run -d "iPhone 16e"

Android 模拟器:

flutter run

真实设备(iOS):

# 需要先在 Xcode 中配置代码签名
open ios/Runner.xcworkspace
# 配置后运行
flutter run -d <device-name>

📁 项目结构

lib/
├── main.dart                 # 应用入口
├── pages/                    # 页面
│   ├── tabs/                # 底部导航页面
│   │   ├── GHHomePage.dart         # 首页 (轮播图、推荐商品)
│   │   ├── GHCategoryPage.dart     # 分类页面
│   │   ├── GHShopCartPage.dart     # 购物车
│   │   └── GHMePage.dart           # 个人中心
│   ├── GHLoginPage.dart          # 登录注册
│   ├── GHGoodsList.dart          # 商品列表
│   ├── GHGoodsDetails.dart       # 商品详情
│   ├── GHCheckOutPage.dart       # 订单确认
│   ├── GHOnlinePayments.dart     # 支付
│   ├── GHOrderList.dart          # 订单列表
│   ├── GHAddressList.dart        # 地址列表
│   └── GHAddressEdit.dart        # 地址编辑
├── model/                    # 数据模型
├── services/                 # 服务层
│   ├── httptool.dart             # HTTP 请求封装
│   ├── ScreenAdaper.dart         # 屏幕适配工具
│   ├── GHToast.dart              # 消息提示
│   └── gh_sqflite.dart           # 数据库服务
├── widget/                   # 自定义组件
├── routers/                  # 路由配置
└── res/                      # 资源文件
    └── images/               # 图片资源

🔑 API 配置

项目使用 LeanCloud 作为后端服务:

Base URL: https://api.leancloud.cn/1.1

关键端点:

  • /classes/shopCarousel - 轮播图
  • /classes/shopCategory - 商品分类
  • /classes/shopGoodsList - 商品列表
  • /classes/shopCartList - 购物车
  • /classes/shopOrderList - 订单
  • /classes/shopAddress - 收货地址

🎨 UI 亮点

  • 轮播图 - 支持手指滑动,底部圆点指示器
  • 响应式布局 - 自动适配各种屏幕尺寸
  • 图片加载动画 - FadeInImage 平滑加载效果
  • 加载状态 - 优雅的加载提示

✅ 已实现功能

  • 用户登录和注册(手机号 + 验证码)
  • 首页轮播图和推荐商品
  • 商品分类浏览
  • 商品搜索和多条件筛选
  • 商品详情页
  • 购物车(增删改)
  • 收货地址管理
  • 订单创建和查看
  • 支付方式选择
  • 屏幕适配(所有 iOS 设备)

📋 计划功能

  • 用户评价和评分
  • 优惠券管理
  • 订单物流追踪
  • 退货售后服务
  • 商品收藏
  • 推荐系统优化

🐛 常见问题

Q: 如何修复 "Waiting for another flutter command to release the startup lock" 错误?

A: 删除 Flutter SDK 中的 lockfile:

rm -f ~/flutter/bin/cache/lockfile
flutter pub get

Q: iOS 应用无法在真实设备上运行?

A: 需要在 Xcode 中配置开发者团队:

  1. 打开 ios/Runner.xcworkspace
  2. 选择 Runner 项目
  3. 进入 Signing & Capabilities
  4. 选择你的开发者团队

Q: 网络请求失败?

A: 确保:

  1. 设备连接到互联网
  2. LeanCloud 服务正常运行
  3. API 密钥配置正确(查看 lib/services/httptool.dart

📸 功能演示

首页 商品详情 购物车 订单
轮播图
分类导航
推荐商品
商品信息
属性选择
加入购物车
商品列表
数量修改
结算
订单确认
地址选择
支付

🔄 最近更新 (2026)

  • ✨ 升级到 Flutter 3.41.7 和 Dart 3.11.5
  • ✨ 完全适配 Null Safety
  • ✨ 替换废弃的 flutter_swiper 为原生 PageView
  • ✨ 优化 API 配置和网络请求
  • ✨ 改进轮播图指示器 UI
  • ✨ 增强错误处理和加载状态

🤝 贡献

欢迎提交 Issue 和 Pull Request!

如果觉得这个项目对你有帮助,请给我一个 ⭐ Star,谢谢!

📄 许可证

MIT License - 详见 LICENSE 文件

📞 联系方式

有任何问题或建议,欢迎通过 GitHub Issues 与我联系。


最后更新时间: 2026年4月
Flutter 版本: 3.41.7
项目状态: ✅ 功能完整,可生产