它解决的三件事
审批没走完,绝对不出码
审批预约模式下,凭证页只显示“审批通过后显示到访码”的灰色占位,接口响应里也没有二维码字段——不是前端把元素藏起来。被退回后改约重新提交,版本号 +1、旧码作废,从第一级重新审。
名额不会超卖,改约不会占两边的坑
名额按人计,用条件更新占位(used + n ≤ quota),8 个人同时抢 3 个名额只有 3 个成功,其余提示还剩几位且已填资料不清空。改约先占新的、再按快照释放旧的,不会出现两边都占或两边都不占。
手机号是个人信息,默认不给看全
列表、详情、导出、提醒里手机号一律脱敏为 138****1234;完整号码只有管理员能看,每次查看都留审计。后台搜索不支持按手机号查,避免逐位试出完整号码。限制名单命中只对门岗提示“需人工复核”,不告诉他原因。
三端分别能做什么
同一套服务端,不同账号只访问自己的角色范围。H5 可按演示入口体验,App 与小程序的配置、安装和发布状态分别验收。
管理后台
行政前台、安保、访客预约管理员,电脑浏览器
- 今日工作台:今日预约、待审、在现场、超时未离场,按时间轴的最近事件;一键查备用码 / 手机尾号
- 访客预约单:状态、地点、类型、日期筛选,导出 Excel(手机号脱敏、防公式注入)
- 待我审批:卡片上写明转人工原因(同号当天已有预约、超人数、限制名单、不开放日、未勾须知)
- 门岗核验:支持扫码枪回车自动核验,确认后焦点回到输入框;人工放行留审计
- 预约配置:来访类型与名额、名额日历、地点与门岗、访客须知版本、限制名单、不开放日、门岗值班
- 到访统计:到访人数、未到率、平均审批耗时、平均停留时长、高峰时段与类型分布


员工 / 门岗手机端
受访员工、部门负责人、门岗,H5 或安卓 App
- 我的今天:待审批、待接待、已到场、今天即将来访,点开就是审批或访客详情
- 待我审批:同意 / 退回补充 / 拒绝,退回和拒绝必须写原因;多级审批显示走到第几级
- 发邀请:建好地点、类型、时间、人数,生成链接和二维码发给访客,访客补资料即可到访
- 门岗核验:入场 / 离场模式切换,扫码结果三态(可入场 / 不能入场 + 原因 / 需人工复核)
- 临时登记:没预约直接来了,门岗填资料生成待审单,受访人同意后页面提示可以放行
- 在场与超时:只列本单位地点的在场名单,超时未离场选已离开 / 延长(≤8 小时)/ 联系不上

访客手机端
来访人员,H5 或安卓 App,不需要注册账号
- 选地点、扫前台地点码 → 填姓名单位车牌 → 手机号验证一次(30 天内凭同号找回来访)
- 日历上直接看到每天的剩余名额,约满置灰;审批类类型不显示名额
- 到访凭证:二维码 + 6 位备用码、有效期、进度、接待人和到达指引;审批前是灰色占位
- 我的来访:取消、改约、被退回后补充资料重新提交、在场时自报离开
- 访客须知与隐私说明:弹窗与页面里都指向同一个地址,访客随时可查
适合谁
- 有来访接待、需要登记的园区、工厂、写字楼、学校、医院和企事业单位
- 要区分“参观 / 送货”这类量大能自动放行的,和“商务洽谈 / 进车间施工”这类必须人点头的
- 多门岗、多地点:门岗账号绑定具体门岗,只能核验自己那道门;数据按地点隔离
不包含
- 门禁闸机 / 人脸 / 车牌识别硬件对接
- 多租户与组织架构同步
- 访客自助机与证件 OCR 实名核验
要你自己准备的
- 服务器、域名和 HTTPS,以及外层反向代理(Caddy / Nginx);初始化脚本生成自己的数据库密码、令牌密钥和到访码签名密钥。
- 短信服务账号:内置阿里云短信通道,填自己的 AccessKey、签名和模板即可真实发送(模板变量 ${code} / ${minutes});没开通时访客会看到"短信验证暂未开通",前台可以代约。
- 安卓包需要自己的 DCloud AppID / AppKey 与签名证书(绑定 appid + 包名 + SHA1),按安装部署手册打正式包。
- 按使用单位补齐访客须知、隐私政策、地点与门岗、来访类型和审批人,上线前用真实角色走一遍审批与核验。
- 首版不接门禁闸机、人脸、车牌识别硬件;二维码是标准文本,二开可以接闸机或显示在大屏上。
- 短信走内置的阿里云通道,需要买自己的短信签名 / 模板并配 AccessKey;没配时不会假装发送成功。演示站把测试验证码显示在页面上,不能用于真实登记。
- 安卓 App 第一次启动有原生隐私弹窗,不同意可以仅浏览地点;同意后重启 App。相机权限被拒绝时可以输 6 位备用码核验。
- 多租户、企业微信 / 钉钉组织同步、常访客长期证、访客自助机、证件 OCR 不在首版。
购买后,一起交付的资料
以下资料随源码包交付,官网展示交付目录,不公开文档全文。
默认 App 名称:店Kit 访客预约。安装包和小程序的配置、发布与使用范围见具体交付说明。
- 服务端:Spring Boot 3.5.16、Spring Security、JdbcTemplate、Flyway;Java 编译目标 17,Docker 运行 21。
- 管理后台:React 19、TypeScript、Vite、TanStack Router / Query、Tailwind CSS 与 shadcn/ui。
- 手机端:uni-app + Vue 3,H5 与安卓 App 同一套源码;MySQL 8.4、Redis 7.4,Docker Compose 部署,自带备份与恢复脚本。
安装部署手册
环境准备、部署上线、升级与备份恢复。
业务流程与功能说明
角色权限、操作流程和产品能力边界。
二次开发说明
工程结构、接口说明与扩展约定。
更新记录与授权文件
版本变化、授权范围及第三方许可。
业务流程与功能说明
角色权限、两种预约模式、审批与核验的每一步、配置项和状态说明。
安装部署手册
环境准备、反向代理、两种预约模式的配置建议、备份恢复与 APK 打包。
演示说明
演示账号、演示数据与 5 分钟演示路径;正式部署没有任何演示账号。
需求实现矩阵与接口契约
每条需求对应的实现位置、接口字段与错误码。
演示入口
演示数据定时恢复,请勿填写真实资料。带在线支付业务的产品使用演示通道,不产生真实扣款;线下收款类产品只记录演示账目。小程序需要在你自己的 AppID 下发布,演示请用 H5 或安卓 App。
访客预约与门岗核验
- 安卓 App
- 下载 APK1.0.0 · 18.94 MB(访客预约与门岗核验安卓安装包)
查看 SHA-256 校验值
3468ebe5a0d7aeb0227f2dc71f0141c729b2821f9d7efc54631dbc09e0507403
后台账号
- 行政前台
vm_front今日工作台、代客预约、全部预约单、人工放行、统计报表(配置只读) - 受访员工
vm_staff_lin待我审批、发邀请、我的访客 - 安保主管
vm_security限制名单、人工放行、超时核查 - 门岗·东门
vm_guard_east扫码核验、临时登记、在场名单
密码Demo#2026vm以上账号通用
客户端
- 访客
13800001560验证码登录,访客不注册账号,用手机号验证码登录;演示验证码直接显示在页面上
- 访客打开手机 H5 选地点预约;已有预约时用提交时的手机号验证一次即可找回凭证,演示站把验证码显示在页面上,不发送真实短信。
- 后台和手机端共用账号:员工 / 门岗在手机端点“员工 / 门岗登录”,门岗账号登录后直接进扫码页。管理员账号不公开。

