# ReservationQueue
**Repository Path**: zhoubo2001/ReservationQueue
## Basic Information
- **Project Name**: ReservationQueue
- **Description**: 基于鸿蒙开发的餐厅排队元服务模板,有浏览门店、立即订座、取消订座、立即排号、取消排号、刷新排号、查看订单等相关的能力
- **Primary Language**: TypeScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2025-07-10
- **Last Updated**: 2025-07-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 美食(餐厅排队)元服务模板快速入门
## 目录
- [功能介绍](#功能介绍)
- [环境要求](#环境要求)
- [快速入门](#快速入门)
- [示例效果](#示例效果)
- [权限要求](#权限要求)
- [开源许可协议](#开源许可协议)
## 功能介绍
您可以基于此[模板](#模板)直接定制应用/元服务,也可以挑选此模板中提供的多种[组件](#组件)使用,从而降低您的开发难度,提高您的开发效率。
### 模板
本模板为餐厅排队元服务提供了常用功能的开发样例,模板主要分首页和我的两大模块:
* 首页:主要提供订座和排号的入口。
* 我的:展示个人信息,提供查看全部订单的入口。
| 首页 | 我的 |
|--------------------------------------------------------------|--------------------------------------------------------------|
|
|
|
本模板主要页面及核心功能如下所示:
```
订座排号模板
|-- 首页
| |-- 顶部Banner
| |-- 订座入口
| | |-- 查找浏览
| | | |-- 文字搜索
| | | |-- 条件筛选
| | | └-- 列表展示
| | |-- 立即订座
| | | |-- 就餐信息
| | | |-- 基本信息
| | | |-- 特殊需求
| | | └-- 其他备注
| | └-- 订座结果
| | |-- 订座信息
| | |-- 预约日历
| | └-- 取消订座
| |-- 排号入口
| | |-- 查找浏览
| | | |-- 文字搜索
| | | |-- 条件筛选
| | | └-- 列表展示
| | |-- 立即排号
| | | |-- 就餐信息
| | | |-- 排号说明
| | | └-- 当前排号
| | └-- 排号结果
| | |-- 排号信息
| | |-- 刷新排号
| | └-- 取消排号
| └-- 底部Banner
|
└-- 我的
|-- 信息展示
|-- 订单管理
| |-- 订座列表
| | |-- 取消订座
| | └-- 跳转订座
| └-- 排号列表
| |-- 取消排号
| └-- 跳转排号
└-- 个人设置
└-- 信息修改
```
本模板工程代码结构如下所示:
```
ReservationQueue
|- components
| └- bookqueue/src/main/ets // 排号订座模块(har)
| |- components
| | |- book
| | | BookFilterListCom.ets // 订座条件筛选组件
| | | BookOrderInfoCom.ets // 订座基本信息组件
| | | BookSpecialServiceCom.ets // 订座特殊需求组件
| | | BookStoreListCom.ets // 订座门店列表组件
| | | BookStoreListItemCom.ets // 订座门店列表项组件
| | |- common
| | | CommonBanner.ets // 公共Banner组件
| | | CommonButton.ets // 公共按钮组件
| | | CommonHeader.ets // 公共标题组件
| | | CommonListItem.ets // 公共列表项组件
| | | CommonPage.ets // 公共页面组件
| | | CommonSheet.ets // 公共半模态组件
| | | CommonShow.ets // 公共宣传组件
| | └- queue
| | QueueFilterListCom.ets // 排号条件筛选组件
| | QueueStoreListCom.ets // 排号门店列表组件
| |- constants
| | Common.ets // 公共常量和页面枚举
| | Constants.ets // 订座排号业务相关常量
| | Styles.ets // 公共容器样式
| |- network
| | |- apis // 网络接口
| | | ApiList.ets // 真实请求
| | | HttpRequest.ets
| | |- mocks // 数据mock
| | | └- mockdata
| | | StoreInfo.ets // 门店信息
| | | AxiosMock.ets
| | | RequestMock.ets // 模拟请求
| | └- types // 请求和响应类型
| | RequestParams.ets // 请求类型
| | RequestUrl.ets // 请求Url
| | ResponseTypes.ets // 响应类型
| |- pages
| | |- book
| | | BookOrderPage.ets // 订座预订页
| | | BookPage.ets // 订座浏览页
| | | BookResPage.ets // 订座结果页
| | |- order
| | | OrderPage.ets // 订单管理页
| | └- queue
| | QueueOrderPage.ets // 排号预订页
| | QueuePage.ets // 排号浏览页
| | QueueResPage.ets // 排号结果页
| |- types
| | NavRouterInfo.ets // 路由类型
| | Types.ets // 业务类型
| |- utils
| | AlertUtil.ets // 弹窗确定工具
| | CalenderUtil.ets // 日程管理工具
| | Dialog.ets // 排号弹窗工具
| | Format.ets // 格式化工具
| | FullLoading.ets // 请求弹窗工具
| | Logger.ets // 日志打印工具
| | OrderUtil.ets // 订单管理工具
| | RouterModule.ets // 路由管理工具
| | WidgetUtil.ets // 卡片管理工具
| | WindowUtil.ets // 窗口管理工具
| └- viewmodels
| BookVM.ets // 订座视图模型
| OrderVM.ets // 订单视图模型
| QueueVM.ets // 排号视图模型
|
└- products
└- phone/src/main/ets // 入口模块(hap)
|- components
| └- mine
| AvatarButton.ets // 头像选择按钮组件
| HeaderPart.ets // 顶部个人信息组件
| Settings.ets // 更多相关设置组件
| CommonButton.ets // 公共按钮组件
| CommonHeader.ets // 公共标题组件
|- constants
| CommonConstants.ets // 公共常量
| CommonEnum.ets // 公共枚举
|- entryability
| EntryAbility.ets // 应用生命周期
|- network
| |- apis // 网络接口
| | ApiList.ets // 真实请求
| | HttpRequest.ets
| |- mocks // 数据mock
| | └- MockData
| | UserInfo.ets // 用户信息
| | AxiosMock.ets
| | RequestMock.ets // 模拟请求
| └- types // 请求和响应类型
| RequestUrl.ets // 请求Url
| ResponseTypes.ets // 响应类型
|- pages
| HomePage.ets // 首页视图页面
| MainEntry.ets // 应用入口页面
| MinePage.ets // 我的视图页面
| ProfileEditPage.ets // 信息编辑页面
|- phoneformability
| PhoneFormAbility.ets // 卡片生命周期
|- types
| Types.ets // 业务类型
| UserInfo.ets // 用户类型
|- utils
| AccountUtil.ets // 账号管理工具
| Logger.ets // 日志打印工具
| TelUtil.ets // 电话处理工具
| WindowUtil.ets // 窗口管理工具
|- viewmodels
| EntryVM.ets // 入口视图模型
| HomeVM.ets // 首页视图模型
| MineVM.ets // 我的视图模型
└- widget
└- pages
WidgetCard.ets // 服务卡片页面
```
### 组件
本模板中还提供了如下组件,您可以按需选择使用,所有组件存放在工程根目录的components下。
| 组件 | 描述 | 使用指导 |
|-------------------|-----------------------|------------------------------------------|
| 订座排号组件(BookQueue) | 支持浏览门店、订座、排号、查看订单等功能。 | [使用指导](./components/bookqueue/README.md) |
## 环境要求
### 软件
* DevEco Studio版本:DevEco Studio 5.0.0 Release及以上
* HarmonyOS SDK版本:HarmonyOS 5.0.0 Release SDK及以上
### 硬件
* 设备类型:华为手机(直板机)
* HarmonyOS版本:HarmonyOS 5.0.0 Release及以上
## 快速入门
### 配置工程
在运行此模板前,需要完成以下配置:
1. 在AppGallery Connect创建元服务,将包名配置到模板中。
a. 参考[创建元服务](https://developer.huawei.com/consumer/cn/doc/app/agc-help-createharmonyapp-0000001945392297)
为元服务创建APPID,并将APP ID与元服务进行关联。
b. 返回应用列表页面,查看元服务的包名。
c. 将模板工程根目录下AppScope/app.json5文件中的bundleName替换为创建元服务的包名。
2. 配置华为账号服务。
a. 将元服务的client
ID配置到模板工程根目录下products[phone]
模块src/main目录下的module.json5文件,详细参考:[配置Client ID](https://developer.huawei.com/consumer/cn/doc/atomic-guides/account-atomic-client-id)。
b.
添加公钥指纹,详细参考:[配置应用证书指纹](https://developer.huawei.com/consumer/cn/doc/app/agc-help-signature-info-0000001628566748#section5181019153511)。
### 运行调试工程
1. 连接调试手机和PC。
2. 对元服务[手工签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing#section297715173233)。
3. 运行模块选择“phone”。点击"Run",运行模板工程。
## 示例效果
| 订座 | 排号 | 订单 | 卡片 |
|--------------------------------------------------------------|---------------------------------------------------------------|---------------------------------------------------------------|--------------------------------------------------------------|
|
|
|
|
|
## 权限要求
* 网络权限:ohos.permission.INTERNET
* 读日历权限:ohos.permission.READ_CALENDAR
* 写日历权限:ohos.permission.WRITE_CALENDAR
## 开源许可协议
该代码经过[Apache 2.0 授权许可](http://www.apache.org/licenses/LICENSE-2.0)。