HarmonyOS鸿蒙Next开发案例:餐饮行业官方模板介绍 (Part2:茶饮元服务模板)
HarmonyOS鸿蒙Next开发案例:餐饮行业官方模板介绍 (Part2:茶饮元服务模板)
💡摘要: 本模板来自华为生态市场(Huawei Partner Market),本文选取了餐饮行业的一个官方模板——茶饮元服务模板,并进行了简要的介绍与分析。各位开发者伙伴们,更多行业模板与组件请进入生态市场查看!
一、概述
-
行业洞察(待补充)
1)行业痛点:
-
优秀案例概览
基于以上行业分析,本期将介绍鸿蒙生态市场餐饮行业模板——茶饮元服务模板,为行业提供常用功能的开发案例,模板主要分首页、点单、我的订单和我的四大模块
- Stage开发模型 + 声明式UI开发范式
- 分层架构设计 + 组件化拆分,支持开发者在开发时既可以选择完整使用模板,也可以根据需求单独选用其中的业务组件
- 本模板已集成华为账号、地图、华为支付、通话等服务,只需做少量配置和定制即可快速实现华为账号的登录、商家位置定位导航、购买茶饮和联系商家等功能
首页 | 点单 | 我的订单 | 我的 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
本模板主要页面及核心功能如下所示:
餐饮茶饮点单模板
|-- 首页
| |-- banner
| |-- 用户信息
| |-- 配送方式
| | └-- 店铺列表
| |-- 店铺活动
| └-- 会员广告
|-- 点单
| |-- 店铺信息
| | |-- 店铺详情
| | |-- 店铺位置和导航
| | └-- 店铺电话
| |-- 优惠券
| | |-- 店铺优惠
| | └-- 优惠券列表
| |-- 商品列表
| | |-- 搜索商品
| | |-- 商品详情
| | └-- 商品规格
| |-- 购物车
| | |-- 清空购物车
| | |-- 修改购物车商品
| | └-- 下单
| └-- 提交订单
|-- 我的订单
| |-- 订单列表
| | |-- 今日订单
| | └-- 历史订单
| └-- 订单详情
└-- 我的
|-- 用户信息
| |-- 关联解绑账号
| └-- 完善信息
|-- 店铺会员
| |-- 茶力值
| |-- 会员码
| |-- 优惠券
| └-- 积分
└-- 帮助中心
|-- 地址管理
└-- 联系客服
二、应用架构设计
1. 分层模块化设计
-
**产品定制层:**专注于满足不同设备或使用场景的个性化需求,作为应用的入口,是用户直接互动的界面。
- 本实践暂时只支持直板机,为单HAP包形式,包含路由根节点、底部导航栏等。
-
**基础特性层:**用于存放相对独立的功能UI和业务逻辑实现。
- 本实践的基础特性层将应用底部导航栏的每个选项拆分成一个独立的业务功能模块。
- 每个功能模块都具备高内聚、低耦合、可定制的特点,支持产品的灵活部署。
-
**公共能力层:**存放公共能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能。
- 本实践的公共能力层分为公共基础能力和可分可合组件,均打包为HAR包被上层业务组件引用。
- 公共基础能力包含日志、文件处理等工具类,公共类型定义,网络库,以及弹窗、加载等公共组件。
- 可分可合组件将包含行业特点、可完全自闭环的能力抽出独立的组件模块,支持开发者在开发中单独集成使用,详见业务组件设计章节。
本模板详细工程结构可见工程结构章节。
2. 业务组件设计
为支持开发者单独获取特定场景的页面和功能,本模板将功能完全自闭环的部分能力抽离出独立的行业组件模块,不依赖公共基础能力包,开发者可以单独集成,开箱即用,降低使用难度。
三、行业场景技术方案(待补充)
-
账号管理
1)场景说明
2)技术方案
-
店铺会员
1)场景说明
2)技术方案
-
点单页面
1)场景说明
2)技术方案
-
优惠券
1)场景说明
2)技术方案
四、模板代码
1. 工程结构
详细代码结构如下所示:
TeaDrinkOrders
├─commons/common/src/main
│ ├─ets
│ │ ├─axiosHttpRequest
│ │ │ AxiosHttp.ets // 网络请求封装
│ │ │ AxiosModel.ets // 网络请求对象
│ │ │ AxiosRequest.ets // 网络请求定义
│ │ │ HttpRequest.ets // 网络请求接口封装
│ │ │ HttpRequestApi.ets // 网络请求接口
│ │ ├─cardManager
│ │ │ CardManager.ets // 卡片管理类
│ │ ├─components
│ │ │ AddAddressComp.ets // 新增地址组件
│ │ │ BusinessTimeDialog.ets // 店铺休息弹窗
│ │ │ CallTelSheet.ets // 拨打电话弹窗
│ │ │ CouponCardComp.ets // 优惠券卡片组件
│ │ │ EmptyComp.ets // 空数据组件
│ │ │ HwMap.ets // 店铺地图
│ │ │ HwMapComp.ets // 地图组件
│ │ │ LoadingDialog.ets // 加载中组件
│ │ │ MemberCodePage.ets // 会员码页面
│ │ │ NavHeaderBar.ets // navigation页面抬头
│ │ │ OrderDetailCards.ets // 订单详情卡片组件
│ │ │ PayTypeDialog.ets // 支付弹窗
│ │ │ PkgGoodComp.ets // 套餐内商品组件
│ │ │ PreviewImagePage.ets // 图片预览弹窗
│ │ │ SheetHeaderComp.ets // 半模态页面标题栏
│ │ ├─constants
│ │ │ Common.ets // 公共常量
│ │ │ RouterMap.ets // 路由页面常量
│ │ ├─mock
│ │ │ MockData.ets // 接口mock数据
│ │ │ MockResponse.ets // 接口mock请求
│ │ ├─models
│ │ │ ParamsModel.ets // 参数对象
│ │ │ RequestModel.ets // 网络请求参数对象
│ │ │ ResponseModel.ets // 网络请求响应对象
│ │ │ RouterModel.ets // 路由参数对象
│ │ │ StorageModel.ets // AppStorage参数对象
│ │ │ TabBarModel.ets // 底部导航栏对象
│ │ └─utils
│ │ AsWebRichText.ets // asweb富文本展示
│ │ CalculatorUtils.ets // 计算方法
│ │ Logger.ets // 日志方法
│ │ PermissionUtil.ets // 权限申请方法
│ │ PreferenceUtil.ets // 首选项方法
│ │ Utils.ets // 公共方法
│ │ WindowModel.ets // 窗口方法
│ └─resources
│─features/home/src/main
│ ├─ets
│ │ ├─components
│ │ │ SelectStoreComp.ets // 店铺选择组件
│ │ └─pages
│ │ HomePage.ets // 首页页面
│ │ SelectStorePage.ets // 店铺选择页面
│─features/mine/src/main
│ ├─ets
│ │ ├─components
│ │ │ MembershipComp.ets // 会员信息组件
│ │ │ MenuComp.ets // 菜单组件
│ │ │ UserInfoComp.ets // 用户信息组件
│ │ └─pages
│ │ AddAddressPage.ets // 新增地址页面
│ │ AddressMgPage.ets // 问题答复页面
│ │ MinePage.ets // 我的页面
│ │ MyCouponsPage.ets // 优惠券页面
│ │ UserInfoPage.ets // 用户信息页面
│ └─resources
│─features/order/src/main
│ ├─ets
│ │ ├─components
│ │ │ AddAddressSheetComp.ets // 新增地址半模态组件
│ │ │ AddressSheetComp.ets // 选择地址半模态组件
│ │ │ CouponComp.ets // 优惠券组件
│ │ │ GoodInfoComp.ets // 商品信息组件
│ │ │ GoodsListComp.ets // 商品列表组件
│ │ │ MyCarComp.ets // 购物车组件
│ │ │ MyCarListComp.ets // 购物车列表组件
│ │ │ PackageCarListComp.ets // 套餐内商品列表组件
│ │ │ SpecSheetComp.ets // 规格模态窗口组件
│ │ │ TitleComp.ets // 点单标题栏组件
│ │ └─pages
│ │ ConfirmOrderPage.ets // 确认订单页面
│ │ GoodDetailPage.ets // 商品详情页面
│ │ MerchantDetailPage.ets // 店铺详情页面
│ │ OrderPage.ets // 点单页面
│ └─resources
│─features/order_list/src/main
│ ├─ets
│ │ ├─components
│ │ │ OrderListComp.ets // 订单列表组件
│ │ │ OrderTypeComp.ets // 订单状态组件
│ │ └─pages
│ │ OrderDetailPage.ets // 订单详情页面
│ │ OrderListPage.ets // 订单列表页面
│ └─resources
└─products/phone/src/main
├─ets
│ ├─components
│ │ CustomTabBar.ets // 自定义底部tab栏组件
│ ├─entryability
│ │ EntryAbility.ets // 应用程序入口
│ ├─entryformability
│ │ EntryFormAbility.ets // 卡片程序入口
│ ├─pages
│ │ Index.ets // 入口页面
│ │ IndexPage.ets // 主页面
│ └─widget/pages
│ WidgetCard.ets // 卡片页面
└─resources
2. 关键代码解读(待补充)
- 待补充
3. 模板集成
本模板提供了两种代码集成方式,供开发者自由使用。
1)整体集成
开发者可以选择直接基于模板工程开发自己的应用工程。
-
模板代码获取:
-
打开模板工程,根据README说明中的快速入门章节,将自己的应用信息配置在模板工程内,即可运行并查看模板效果。
-
对接开发者自己的服务器接口,转换数据结构,展示真实的云侧数据。
- 将commons/lib_common/src/main/ets/httprequest/HttpRequestApi.ets文件中的mock接口替换为真实的服务器接口。 的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next的茶饮元服务模板专为餐饮行业设计,提供原子化服务能力。该模板基于ArkTS开发,包含商品展示、订单管理、会员系统等核心功能模块,支持服务卡片快捷操作。模板采用Stage模型,实现跨设备流转能力,适配不同屏幕尺寸。数据管理使用HarmonyOS的分布式数据服务,确保多端数据同步。UI部分采用自适应布局和响应式设计,内置多种动效组件提升用户体验。该模板已通过华为官方认证,可直接作为开发基础框架使用。
更多关于HarmonyOS鸿蒙Next开发案例:餐饮行业官方模板介绍 (Part2:茶饮元服务模板)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这个茶饮元服务模板展示了HarmonyOS Next在餐饮行业的典型应用场景。模板采用分层架构设计,将功能模块化为首页、点单、订单和我的四大核心模块,每个模块都可以独立使用或组合集成。
技术亮点包括:
- 声明式UI开发范式结合Stage模型,提升开发效率
- 预集成华为账号、地图、支付等核心服务,减少对接工作量
- 组件化设计使得业务功能可插拔,支持灵活定制
- 提供完整的网络请求封装和Mock数据方案
对于开发者来说,这个模板既可作为完整项目参考,也能按需提取特定组件(如购物车、优惠券等)集成到现有项目中。模板代码结构清晰,包含详细的README说明,降低了学习和使用门槛。
整体来看,这个模板很好地体现了HarmonyOS Next在餐饮O2O场景下的技术优势,为开发者提供了高质量的行业参考实现。