更新记录

1.0.0(2026-08-10)

  • 首个版本:多行业服务预约系统(云端一体项目模板)
  • 功能:服务管理、时间段排期、批量生成排期、预约下单(防超卖)、我的预约、订单状态流转、数据看板、门店设置、管理密码(MD5)
  • 支持 App / 小程序 / H5 全端

平台兼容性

云端兼容性

阿里云 腾讯云 支付宝云
× ×

uni-app(3.8.1)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


闪约 · 多行业服务预约系统(云端一体项目模板)

开箱即用的预约 SaaS 雏形:服务管理 + 时间段排期 + 预约下单(防超卖)+ 管理后台,一次部署,全端可用(App / 小程序 / H5)。 适用于:美容美发、健身房、牙科口腔、宠物店、家政保洁、会议室、场地租赁、摄影、按摩理疗等任何线下服务预约场景


✨ 核心卖点

能力 说明
🗓 时间段排期 按服务 + 日期 + 时间段精细排期,每段可设可约人数(场地类设 1,服务类设 N)
🔒 防超卖 下单采用数据库条件原子更新,并发场景下也不会超卖
📱 用户端完整 服务列表、选日期、选时段、填信息、下单、查单、取消,手机号即可查询(无需注册)
🛠 管理后台完整 服务管理、排期管理(含批量生成)、订单状态流转、数据看板、门店设置
🏪 门店信息 店名、地址、电话(可点击拨打)、营业时间、公告,用户在首页可见
🔐 管理密码 MD5 加密存储,管理端接口统一校验,防越权
💰 付费可加密 核心云对象加密,试用期后自动失效,防止白嫖

🚀 快速开始(3 步上线)

前置条件:安装 HBuilderX(3.5+),注册 DCloud 账号。

1. 导入项目并关联服务空间

  1. 解压插件包,用 HBuilderX 打开 shanyue-booking 项目。
  2. manifest.json 中填写你自己的 appid(可点击"重新获取")。
  3. 在 HBuilderX 中右键 uniCloud-aliyun关联云服务空间(没有则免费开通一个阿里云服务空间)。

2. 上传云对象与数据库

  1. 右键 uniCloud-aliyun/cloudfunctions/booking上传部署(选择"云端一体模板"关联的服务空间)。
  2. 右键 uniCloud-aliyun/database 下的 4 个 .schema.json上传 DB Schema(自动建表)。
    • 建议在 uniCloud 控制台为 booking-schedule 表添加索引:service_id + date(提升查询速度)。

3. 运行

  1. 运行到浏览器/小程序/App 即可看到用户端首页。
  2. 用户端首页底部点击「管理后台」,输入默认管理密码 123456 登录。
    • ⚠️ 登录后请立即在「系统设置」中修改密码!

上线流程

  1. 在管理后台添加服务 → 为服务生成排期 → 用户即可预约。
  2. 正式发布:HBuilderX 发行菜单选择对应平台打包/上传。

📖 使用说明

管理后台(手机端或浏览器打开项目均可进入)

模块 功能
数据看板 今日预约、待确认/已确认/已完成数量、未来 7 天预约趋势
预约管理 按状态筛选、确认/完成/取消订单(取消自动释放名额)
服务管理 增删改查服务,支持上/下架
排期管理 按服务查看排期、手动增删、批量生成(选开始日期 + 天数 + 时间段 + 每段时长,一键生成 N 天排期)
系统设置 门店信息、公告、修改管理密码

用户端

  • 首页:门店信息 + 上架服务列表
  • 服务详情:选日期(自动剔除已约满/关闭的日期)→ 选时间段(显示剩余名额)→ 立即预约
  • 我的预约:手机号查询订单,可取消(恢复名额)

📁 目录结构

shanyue-booking/
├── package.json                  # uni_modules 项目插件配置(含加密配置)
├── manifest.json / pages.json    # uni-app 项目配置(页面已全部注册)
├── common/booking.js             # 前端公共封装(管理端自动携带密码)
├── pages/
│   ├── index/                    # 用户端首页(门店信息 + 服务列表)
│   ├── service/detail            # 服务详情(选日期 + 时间段)
│   ├── booking/confirm           # 确认预约
│   ├── my/booking                # 我的预约
│   └── admin/                    # 管理后台(登录/看板/服务/排期/订单/设置)
└── uniCloud-aliyun/
    ├── database/                 # 4 张表 DB Schema
    └── cloudfunctions/booking/   # 核心云对象(全部业务逻辑)

🔌 云对象接口一览(二次开发参考)

统一返回 { code, msg, data }code === 0 表示成功。

用户端: getSettingPublic / getServiceList / getServiceDetail / getDates / getSchedule / createOrder / cancelOrder / getMyOrders

管理端(自动校验管理密码):adminLogin / adminChangePassword / adminGetSetting / adminSaveSetting / adminListServices / adminSaveService / adminDeleteService / adminListSchedules / adminSaveSchedule / adminDeleteSchedule / adminQuickGenSchedules / adminListOrders / adminUpdateOrderStatus / adminStats

数据表: booking-service(服务)/ booking-schedule(排期)/ booking-order(订单)/ booking-setting(设置,含 MD5 管理密码)


🔧 二次开发提示

  • 对接真实账号体系:将用户端手机号查询替换为 uni-id 登录态即可(订单表已含 user_id 预留位可按需添加)。
  • 预约提醒:可在 createOrder / adminUpdateOrderStatus 中接入 uni-push 或短信。
  • 门店扩展:如需多门店,给 booking-service 增加 shop_id 字段并按此过滤即可。
  • 前端页面为 Vue3(manifest.jsonvueVersion: "3"),如需 Vue2 请自行改造。

⚠️ 常见问题

Q:忘记管理密码怎么办? A:在 uniCloud 控制台打开 booking-setting 表,将 admin_password 改为 e10adc3949ba59abbe56e057f20f883e(即 123456 的 MD5),重新登录后立即修改。

Q:为什么下单提示"手慢了,该时间段刚刚被约满"? A:说明该时间段剩余名额在并发下被抢完,属正常防超卖保护。

Q:排期如何关闭某天? A:排期管理 → 编辑该排期 → 关闭"开放预约"开关;或删除该排期。

Q:想更换云服务商(腾讯云)? A:将 uniCloud-aliyun 目录改名为 uniCloud-tcb 并重新上传部署即可(如同时保留两目录,需在 uni_modules.config.json 中配置归属)。


📄 许可

MIT License,详见 license.md

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件在用户提交预约时,采集客户填写的姓名、手机号、备注信息,数据仅存储于插件使用者自己的 uniCloud 云服务空间数据库(如:阿里云),用于预约订单记录、商家核销及联系客户确认预约。本插件不采集设备信息,不含广告,不向任何第三方服务器发送数据。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。