更新记录

1.0.0(2026-06-16)

实时通信基建

  • 上线 WebSocket 网关,连接按角色与桌台订阅,即时通讯
  • 业务云函数广播事件

业务动作新增(5 类)

  • 烫豆申请
  • 换桌申请
  • 帮助呼叫
  • 续时申请与记录
  • 顾客开台申请

预定流程

  • 顾客端预定
  • 店员在选中空闲桌 → 选择是否关联今日已通过预定
  • 预定到店与桌台分配解耦

金额口径统一

  • 公式:基础套餐 + 已批准续时包 + 记账

体验与设计

  • 全站统一设计:奶油白底 / 樱粉·蜜桃·薄荷·薰衣草点缀 / 圆角 12-20px / 深咖硬阴影 / 手写体标题
  • 桌台超时计时:超时时显示 +HH:MM:SS + 大红色背景(桌台卡 / 桌台详情 / 顾客端)
  • 顾客端输入桌号页改造为店铺展示页:顶部店名 + 公告 + 营业信息 + 招牌项目标签云 + 中央输入区

平台适配

  • 支付宝云事务不稳定 → 换桌审批改为「顺序更新 + 条件校验 + 失败补偿回滚」
  • 支付宝云 WebSocket 细节 → 「连接信息落库 + 业务云函数广播」设计

平台兼容性

云端兼容性

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

uni-app(3.8.1)

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

其他

多语言 暗黑模式 宽屏模式
× ×

云函数类插件通用教程

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


拼小二门店系统插件包

pindou-live-system 是一个面向 uni-app + uniCloud 项目的完整业务插件包,适用于手作店、拼豆店、桌台式体验门店等需要“顾客端 + 店员端 + 实时消息 + 预定 + 开台 + 结账 + 经营统计”一体化能力的场景。

这不是一个单一 UI 组件,而是一套完整业务模块。

一、插件包含内容

插件目录内已保留当前主链路所需源码:

  • 顾客端页面
  • 管理端页面
  • 公共组件
  • Pinia stores
  • services / utils / composables / types
  • uniCloud-alipay 云函数目录
  • plugin-app.vue 启动脚本与全局样式参考
  • plugin-main.ts Pinia 注册参考
  • pages_init.json 页面注册片段
  • manifest_init.json H5 配置片段

二、适用环境

  • uni-app Vue3
  • Pinia 2.x
  • Vue 3
  • uniCloud 服务空间
  • 当前主兼容方向:H5
  • 可编译微信小程序,但建议按你的业务场景自行回归测试

不适用于:

  • uni-app x
  • Vue2uni-app

三、快速接入步骤

1. 安装插件目录

将本插件放入项目:

uni_modules/pindou-live-system/

2. 确保宿主项目依赖齐全

宿主项目至少需要:

{
  "dependencies": {
    "pinia": "^2.1.7",
    "vue": "^3.4.21"
  },
  "devDependencies": {
    "@dcloudio/uni-app": "3.x",
    "sass": "^1.x",
    "typescript": "^5.x"
  }
}

3. 在 main.ts 注册 Pinia

如果你的宿主项目还没接 Pinia,请参考 plugin-main.ts

最小示例:

import { createSSRApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'

export function createApp() {
  const app = createSSRApp(App)
  app.use(createPinia())
  return { app }
}

4. 合并 uni.scss

uni_modules/pindou-live-system/uni.scss 中的变量合并到宿主项目根目录的 uni.scss

原因:

  • 插件页面和组件大量依赖全局 SCSS 变量
  • 不合并会导致样式编译失败

5. 合并 App.vue 启动逻辑与全局样式

参考 uni_modules/pindou-live-system/plugin-app.vue,把以下内容合并进宿主项目的 App.vue

  • 启动期 auth.restore()
  • 启动期 store.fetch()
  • 全局页面背景、按钮、卡片、logo 等基础样式

注意:

  • 不建议直接覆盖宿主项目 App.vue
  • 建议手工合并脚本和样式

6. 注册页面

uni_modules/pindou-live-system/pages_init.json 里的 pages 合并进宿主项目 pages.json

页面路径为:

  • uni_modules/pindou-live-system/pages/customer/entry
  • uni_modules/pindou-live-system/pages/customer/index
  • uni_modules/pindou-live-system/pages/customer/reserve
  • uni_modules/pindou-live-system/pages/admin/login
  • uni_modules/pindou-live-system/pages/admin/dashboard
  • uni_modules/pindou-live-system/pages/admin/order-detail
  • uni_modules/pindou-live-system/pages/admin/package-manage
  • uni_modules/pindou-live-system/pages/admin/settings
  • uni_modules/pindou-live-system/pages/admin/reservation-manage
  • uni_modules/pindou-live-system/pages/admin/stats

7. 按需合并 manifest.json

如你的项目以 H5 为主,请参考 manifest_init.json,检查以下配置是否一致:

  • h5.router.mode
  • h5.publicPath
  • h5.devServer

8. 关联并部署 uniCloud 云函数

插件内已包含:

uni_modules/pindou-live-system/uniCloud-alipay/

你需要把其中的云函数部署到你的 uniCloud 支付宝云服务空间。

建议步骤:

  • 关联服务空间
  • 上传 cloudfunctions/common
  • 上传各业务云函数
  • 运行一次 init-data

9. 首次初始化

运行 init-data 后将生成:

  • 默认店铺配置
  • 默认桌台
  • 默认套餐
  • 默认记账类目
  • 默认管理员账号 admin / 123456

上线前请立刻修改默认密码。

四、插件主流程

接入后,业务主流程如下:

  • 顾客从 customer/entry 输入桌号进入桌台
  • 顾客在 customer/index 查看当前订单、费用、服务记录,并发起开台/续时/换桌/烫豆/帮助请求
  • 顾客在 customer/reserve 提交预定
  • 店员在 admin/reservation-manage 审核预定
  • 店员在 admin/dashboard 的桌台看板中选择空闲桌并可关联已通过预定开台
  • 店员通过消息面板处理顾客申请
  • 店长在 admin/stats 查看经营统计

五、重要实现约束

1. WebSocket 是必需能力

此插件依赖:

  • ws-gateway
  • ws_connections
  • 业务云函数广播

如果你不部署 WebSocket 相关云函数,插件仍可部分运行,但顾客端和管理端的同步体验会明显下降。

2. Logo 依赖云存储临时链接

插件当前采用:

  • 数据库存 logoFileID
  • 读取时动态换取临时 logoUrl

如果 H5 端图片空白,请重点排查:

  • 云存储 Referer 防盗链
  • 云存储跨域白名单
  • 是否返回 https 图片地址
  • 对应云函数是否已重新部署

3. 预定流程已改为“管理员落位”

当前插件逻辑不是“顾客预定时直接指定桌号”,而是:

  • 顾客只提交预定信息和意向套餐
  • 店员审核后,在桌台看板为顾客选择实际空闲桌开台

六、你需要知道的宿主项目要求

这个插件包是“完整业务模块”,因此宿主项目需要接受以下事实:

  • 插件会引入自己的页面体系
  • 插件会引入自己的 store / service / composable / utils / types
  • 插件需要 Pinia
  • 插件需要 uniCloud
  • 插件需要你把启动逻辑和样式基础设施接起来

如果你只想要一个“即插即用的 UI 组件”,这个插件并不适合。

七、推荐入口

如果你只想快速体验,建议先把首页指到:

uni_modules/pindou-live-system/pages/customer/entry

管理员入口为:

uni_modules/pindou-live-system/pages/admin/login

八、发布到插件市场前建议

在真正提交插件市场前,建议再做这几件事:

  • 补一个面向插件市场的封面图、截图和功能说明
  • 核查 package.json 的插件名称、版本、作者信息
  • 根据你的发布主体补齐版权、许可证和联系方式
  • 对 H5 场景完整跑通一次登录、开台、预定、审批、结账、统计
  • 确认云函数已全部上传且版本一致

九、当前目录说明

uni_modules/pindou-live-system/
├── pages/                 页面
├── components/            公共组件
├── stores/                Pinia stores
├── services/              云函数调用封装
├── composables/           复用逻辑
├── utils/                 工具函数
├── types/                 类型定义
├── static/                静态资源
├── uniCloud-alipay/       云函数目录
├── plugin-app.vue         App 合并参考
├── plugin-main.ts         main.ts 合并参考
├── uni.scss               SCSS 变量
├── pages_init.json        pages.json 合并片段
├── manifest_init.json     manifest.json 参考片段
└── README.md              插件使用说明

十、已知限制

  • 该插件包不是 uni-app x 插件
  • 当前主验证方向是 H5
  • 事务型数据库操作在支付宝云环境下需要谨慎处理,部分逻辑采用补偿回滚
  • 统计页当前以前端聚合现有接口为主,不是独立统计后端

隐私、权限声明

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

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

插件不采集任何数据

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

暂无用户评论。