HarmonyOS 鸿蒙Next开发案例:旅游行业官方模板介绍 景区旅游元服务模板

HarmonyOS 鸿蒙Next开发案例:旅游行业官方模板介绍 景区旅游元服务模板 鸿蒙生态市场


💡摘要: 本模板来自华为生态市场(Huawei Partner Market),本文选取了旅游行业的一个官方模板——景区旅游元服务模板,并进行了简要的介绍与分析。各位开发者伙伴们,更多行业模板与组件请进入生态市场查看!


一、概述

  1. 行业洞察(待补充) 1)行业痛点

  2. 优秀案例概览 基于以上行业分析,本期将介绍鸿蒙生态市场旅游行业模板——景区旅游元服务模板,为行业提供常用功能的开发案例,模板主要分首页、门票、导览、订单和我的五大模块

    • Stage开发模型 + 声明式UI开发范式
    • 分层架构设计 + 组件化拆分,支持开发者在开发时既可以选择完整使用模板,也可以根据需求单独选用其中的业务组件
    • 本模板已集成华为账号、通话、地图、音频等服务,只需做少量配置和定制即可快速实现华为账号的登录、一键拨打服务电话、景点位置定位导航、景点信息讲解和购买门票和商品等功能
首页 门票 导览 订单 我的
首页 门票 导览 订单 我的

本模板主要页面及核心功能如下所示:

景区旅游
 |-- 首页
 |    |-- 顶部轮播
 |    |-- 查看公告
 |    |    └-- 公告详情
 |    |-- 服务导航
 |    |    |-- 文旅商城
 |    |         └-- 文创商品列表
 |    |              └-- 文创商品详情
 |    |                   └-- 文创商品下单
 |    |         └-- 特色商品列表
 |    |              └-- 特色商品详情
 |    |                   └-- 特色商品下单
 |    |    |-- 票务预订
 |    |         └-- 门票列表
 |    |              └-- 门票分类详情
 |    |                   └-- 门票预订下单
 |    |    └-- 餐饮住宿
 |    |         └-- 餐饮列表
 |    |              └-- 餐饮详情
 |    |         └-- 住宿列表
 |    |              └-- 住宿详情
 |    |    └-- 游览线路
 |    |         └-- 线路列表
 |    |         └-- 线路详情
 |    |-- 热门景点
 |    |    |-- 景点列表
 |    |    |-- 景点详情
 |    |-- 攻略游记
 |    |    |-- 攻略列表
 |    |    |-- 攻略详情
 |-- 门票
 |    └-- 门票列表
 |         └-- 门票分类详情
 |              └-- 门票预订下单
 |-- 导览
 |    └-- 导览卡片
 |-- 订单
 |    └-- 门票订单
 |         └-- 门票订单详情
 |              └-- 取消订单    
 |              └-- 支付订单 
 |    └-- 购物订单
 |         └-- 购物订单详情
 |              └-- 取消订单    
 |              └-- 支付订单 
 └-- 我的
      |-- 用户信息
      |    └-- 修改信息
      |-- 我的订单
      |    └-- 购物订单
      |    └-- 门票订单
      |-- 常用旅客
      |    └-- 新增游客
      |    └-- 修改游客
      |    └-- 删除游客
      |-- 我的地址
      |    └-- 新增地址
      |    └-- 修改地址
      |    └-- 删除地址
      └-- 服务热线

二、应用架构设计

1. 分层模块化设计

  • **产品定制层:**专注于满足不同设备或使用场景的个性化需求,作为应用的入口,是用户直接互动的界面。

    • 本实践暂时只支持直板机,为单HAP包形式,包含路由根节点、底部导航栏等。
  • **基础特性层:**用于存放相对独立的功能UI和业务逻辑实现。

    • 本实践的基础特性层将应用底部导航栏的每个选项拆分成一个独立的业务功能模块。
    • 每个功能模块都具备高内聚、低耦合、可定制的特点,支持产品的灵活部署。
  • **公共能力层:**存放公共能力,包括公共UI组件、数据管理、外部交互和工具库等共享功能。

    • 本实践的公共能力层分为公共基础能力和可分可合组件,均打包为HAR包被上层业务组件引用。
    • 公共基础能力包含日志、文件处理等工具类,公共类型定义,网络库,以及弹窗、加载等公共组件。
    • 可分可合组件将包含行业特点、可完全自闭环的能力抽出独立的组件模块,支持开发者在开发中单独集成使用,详见业务组件设计章节。

分层模块化设计

本模板详细工程结构可见工程结构章节。


2. 业务组件设计

为支持开发者单独获取特定场景的页面和功能,本模板将功能完全自闭环的部分能力抽离出独立的行业组件模块,不依赖公共基础能力包,开发者可以单独集成,开箱即用,降低使用难度。

业务组件设计


三、行业场景技术方案(待补充)

  1. 账号管理 1)场景说明 2)技术方案

  2. 服务导航 1)场景说明 2)技术方案

  3. 文旅商城 1)场景说明 2)技术方案

  4. 攻略游记 1)场景说明 2)技术方案

四、模板代码

1. 工程结构

详细代码结构如下所示:

TrousitAttraction
  |- commons                                      // 公共层
  |  |- common/src/main/ets                       // 公共工具模块(har)
  |  |    |- constants 
  |  |    |     Contants.ets                      // 公共常量
  |  |    |- controller 
  |  |    |     DialogController.ets              // 公共弹窗controller类
  |  |    └- utils 
  |  |          └- LazyDataUtil 
  |  |             LazyDataSource.ets             // 懒加载工具
  |  |             ObservedArray.ets              // 懒加载工具
  |  |          └- MapUtil 
  |  |             LocationUtil.ets               // 华为地图工具
  |  |             PoiUtil.ets                    // 地点类型工具
  |  |             RouterUtil.ets                 // 地图跳转工具
  |  |          └- ShipUtil
  |  |             AddressUtil.ets                // 收货地址管理工具
  |  |             CascaderUtils.ets              // 省市区管理工具
  |  |          └- TouristUtil
  |  |             Index.ets                      // 游客信息工具
  |  |          AttractionUtil.ets                // 景点信息工具
  |  |          CallUtil.ets                      // 电话拨号工具
  |  |          CommonUtil.ets                    // 通用工具
  |  |          CryptoUtil.ets                    // 加解密工具
  |  |          DateUtil.ets                      // 日期工具
  |  |          HotlineUtil.ets                   // 热线电话工具
  |  |          Logger.ets                        // 日志工具
  |  |          PageUtil.ets                      // 页面信息工具
  |  |          TimeUtil.ets                      // 时间工具
  |  |  
  |  |- components/src/main/ets                   // 公共组件模块(har)
  |  |     └- components 
  |  |          AddressCardComponent.ets          // 地址卡片             
  |  |          ConfirmDialogComponent.ets        // 删除弹窗       
  |  |          FullLoadingComponent.ets          // 加载组件          
  |  |          NickNameDialogComponent.ets       // 昵称修改弹窗        
  |  |          OrderTypeDialog.ets               // 订单类型弹窗         
  |  |          SwiperComponent.ets               // 轮播图组件 
  |  |          TitleBar.ets                      // 公共标题栏 
  |  |          TouristCardComponent.ets          // 游客信息卡片
  |  |          ViewDetailComponent.ets           // 查看更多组件 
  |  |   
  |  └- network/src/main/ets                      // 网络模块(har)
  |        |- apis                                // 网络接口  
  |        |- mocks                               // 数据mock   
  |        |- constants                           // 接口常量  
  |        |- models                              // 网络库封装    
  |        └- types                               // 请求和响应类型 
  |  └- types/src/main/ets                        // 数据类型 
  |
  |- product                                      // 应用层  
  |  └- phone/src/main/ets                        // 主包(hap)                                                     
  |        |- entryability                                                                     
  |        |- entryformability                                                        
  |        |- pages                              
  |        |    Main.ets                          // 主页面
  |        |- model                               // 类型定义
  |        |- viewmodel                           // 与页面一一对应的vm层          
  |        └- widget                              // 卡片页面 
  |                                           
  |- features/functions                           // 特性层
  |   |- address/src/main/ets                     // 收货地址模块(hsp)
  |   |    |- mapper                              // 接口数据到页面数据类型映射        
  |   |    |- pages                              
  |   |    |    Address.ets                       // 地址详情页
  |   |    |    Addresses.ets                     // 地址列表页
  |   |    └- viewmodel                           // 与页面一一对应的vm层          
  |   |    
  |   |- catering/src/main/ets                    // 餐饮住宿模块(hsp)
  |   |    |- components                          // 抽离组件   
  |   |    |- mapper                              // 接口数据到页面数据类型映射 
  |   |    |- model                               // class类型定义     
  |   |    |- pages                              
  |   |    |    AccommodationDetail.ets           // 住宿详情页
  |   |    |    Catering.ets                      // 餐饮及住宿列表页
  |   |    |    CateringDetail.ets                // 餐厅详情页
  |   |    └- viewmodel                           // 与页面一一对应的vm层  
  |   | 
  |   |- mall/src/main/ets                        // 商城模块(hsp)
  |   |    |- mapper                              // 接口数据到页面数据类型映射   
  |   |    |- model                               // class类型定义     
  |   |    |- pages                              
  |   |    |    CommodityDetail.ets               // 商品列表页
  |   |    |    CommodityReserve.ets              // 商品下单页
  |   |    |    MallView.ets                      // 商城页
  |   |    └- viewmodel                           // 与页面一一对应的vm层   
  |   |
  |   |- note/src/main/ets                        // 攻略游记模块(hsp)
  |   |    |- mapper                              // 接口数据到页面数据类型映射   
  |   |    |- pages                               // 酒店位置 
  |   |    |    NoteDetail.ets                    // 攻略详情页
  |   |    |    Notes.ets                         // 攻略列表页
  |   |    |- viewmodel                           // 与页面一一对应的vm层        
  |   |
  |   |- route/src/main/ets                       // 推荐线路模块(hsp)
  |   |    |- mapper                              // 接口数据到页面数据类型映射 
  |   |    |- model                               // class类型定义     
  |   |    |- pages                              
  |   |    |    Route.ets                         // 推荐线路列表页
  |   |    |    RouteDetail.ets                   // 推荐线路详情页
  |   |- tourist/src/main/ets                     // 游客管理模块(hsp)
  |   |    |- components                          // 抽离组件 
  |   |    |- mapper                              // 接口数据到页面数据类型映射    
  |   |    |- pages                              
  |   |    |    TouristPage.ets                   // 游客详情页
  |   |    |    TouristPages.ets                  // 游客列表页
  |   |    |- viewmodel                           // 与页面一一对应的vm层
  |   |
  |- features/tabs                                // 特性层
  |   |- guide/src/main/ets                       // 导览模块(hsp)
  |   |    |- components                          // 抽离组件 
  |   |    |- mapper                              // 接口数据到页面数据类型映射
  |   |    |- model                               // class类型定义 
  |   |    |- pages                              
  |   |    |    GuideView.ets                     // 导览详情页
  |   |    └- viewmodel                           // 与页面一一对应的vm层
  |   |- home/src/main/ets                        // 首页模块(hsp)
  |   |    |- components                          // 抽离组件 
  |   |    |- mapper                              // 接口数据到页面数据类型映射
  |   |    |- model                               // class类型定义 
  |   |    |- pages                              
  |   |    |    AttractionDetail.ets             // 景点详情页
  |   |    |    Attractions.ets                  // 景点列表页
  |   |    |    BulletinDetail.ets               // 公告

更多关于HarmonyOS 鸿蒙Next开发案例:旅游行业官方模板介绍 景区旅游元服务模板的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该模板为旅游行业提供官方元服务开发框架,基于HarmonyOS NEXT特性设计。包含景区信息展示、票务预订、导航导览等核心功能模块,支持原子化服务免安装特性。采用ArkTS语言开发,集成分布式能力实现多设备协同,提供UI统一适配方案。模板已封装常用旅游业务组件,可直接调用鸿蒙SDK接口访问地理位置、支付等系统能力。

更多关于HarmonyOS 鸿蒙Next开发案例:旅游行业官方模板介绍 景区旅游元服务模板的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


该景区旅游元服务模板基于HarmonyOS Next的Stage模型和声明式UI开发范式,采用分层模块化架构设计,支持整体集成或按需组件化使用。模板已集成华为账号、地图、通话等核心服务,覆盖首页、门票、导览、订单及个人中心五大功能模块,提供完整的旅游场景解决方案。开发者可通过华为生态市场获取源码,快速适配业务需求,降低开发成本。

回到顶部