Anson舞台助手发布
从舞台现场出发:我用 PHP 做了一套舞台助理系统
一场演出的顺利完成,离不开台前演员的精彩发挥,也离不开幕后工作人员之间准确、高效的配合。
节目单、彩排时间、演职人员、设备状态、无线频率、签到信息和临时公告……这些内容往往分散在不同的表格、聊天记录和文件中。一旦现场发生临时调整,工作人员就需要在多个地方反复确认信息,不仅效率较低,也容易出现遗漏。
为了解决这些问题,我开发了 Anson Stage Assistant(Anson 舞台助理系统),希望用一个统一的平台管理演出现场需要使用的各类信息。
为什么要开发这个系统
最初的想法很简单:把舞台工作中常用的表格集中到一起。
在传统的演出准备过程中,节目单可能放在 Excel 中,联系人保存在手机里,谱子和歌词通过聊天软件传输,无线频率又单独记录在另一张表中。到了演出当天,如果节目临时调整、设备状态发生变化或者需要插播节目,就很难保证所有工作人员能够同时获得最新信息。
因此,这套系统不仅要“保存资料”,还要能够服务于真实的演出现场:
- 信息集中管理
- 手机和电脑均可查看
- 管理员能够随时修改
- 游客只能查看,避免误操作
- 页面能够自动获得最新数据
- 不同演出项目之间相互独立
系统包含哪些功能
系统围绕演出准备、现场执行和项目归档三个阶段进行设计。
节目单与现场执行
节目单是整个系统的核心。
每个节目可以记录开始时间、节目名称、英文名称、时长、执行说明以及所需演出人员。演出人员可以直接从演职人员名单中多选,不需要重复输入。
现场控制区域会显示当前节目和下一个节目,并根据节目单时间计算剩余时间。节目开始后,界面会改为显示预计结束时间,让工作人员能够快速判断现场进度。
如果演出过程中出现特殊情况,管理员还可以:
- 暂停或恢复节目进度
- 添加临时插播内容
- 删除或调整节目
- 查看当前节目所需人员
这些功能让节目单不再只是一张静态表格,而是能够参与现场执行的动态工具。
时间轴与彩排安排
时间轴用于展示演出当天的重要时间节点,例如人员集合、设备调试、观众入场和正式演出。
彩排安排则可以单独记录每个节目或团队的彩排时间、地点和注意事项。管理员可以随时添加、修改和删除安排,方便在演出前统一协调时间。
演职人员与签到
演职人员名单和签到表使用同一份人员数据。
人员资料可以记录姓名、职位、分组及联系方式。签到页面会直接读取演职人员名单,避免同一个人需要在多个页面重复维护。
系统还支持二维码签到。工作人员可以扫描二维码进入签到页面,管理员也可以导出适合打印的 A4 签到表,满足电子签到和纸质签到两种使用场景。
舞台与技术资料
舞台相关资料包括:
- 舞台分工
- 输入输出表
- 通道表
- 无线频率管理
- 设备清单
- 联系人
- 道具、话筒和设备领用归还
无线频率管理可以记录频道名称、设备类型、频率和亚音频参数,方便统一管理对讲机及其他无线设备。
设备清单的状态可以从已有选项中选择,也可以根据现场需求输入新的状态,例如“已到场”“调试中”“使用中”或“需要维修”。
领用归还功能则用于记录设备当前由谁保管、何时领用以及是否归还,减少现场设备遗失或责任不清的问题。
实时公告
管理员可以发布普通、重要或紧急公告,并根据实际情况选择优先级。
已经发布的公告可以继续编辑或删除。当节目时间、集合地点或现场流程发生变化时,工作人员可以直接从系统中查看最新通知。
系统取消了“已读”设计,避免在游客模式下产生没有实际意义的交互状态。
文件管理
文件管理页面用于集中保存谱子、歌词、流程文件和 PDF 等演出资料。
管理员可以上传和删除文件,游客无需登录即可查看和下载。这样,工作人员只需要进入系统,就可以找到当前项目所需的全部文件,不必再翻找聊天记录。
项目管理
系统支持同时管理多个演出项目。
管理员可以新建、修改和删除项目,并设置默认向游客展示的项目。游客是否能够自行切换项目,也可以由管理员决定。
一个项目结束后,还可以将整个项目一键打包归档,便于长期保存项目数据和相关文件。
游客与管理员权限
为了兼顾使用便利和数据安全,系统提供了两种使用方式。
游客无需登录,可以直接查看管理员允许公开的内容以及下载文件,但不能添加、修改、删除或提交任何数据。
管理员登录后,才会显示管理功能。不同管理员可以拥有不同权限,例如节目单管理、人员管理、公告管理、项目管理和文件管理。
系统还设置了总管理员。总管理员可以添加或删除其他管理员、分配权限,并管理所有项目。每位管理员也可以在登录后修改自己的密码。
这种设计既方便现场工作人员快速查看资料,也能防止重要数据被误操作。
数据如何保存
系统采用 PHP 开发,所有可修改的信息都独立保存在 data 数据目录中,包括:
- 系统设置
- 项目资料
- 演职人员
- 管理员账号
- 上传文件
这样设计的好处是,更新程序版本时,只要保留原来的 data 文件夹,就可以继续使用以前的数据,不需要重新录入项目内容。
对于使用宝塔面板和 CDN 部署的环境,也可以将程序文件与数据目录分别备份,让后续升级更加方便。
手机端与实时更新
舞台现场不可能一直守在电脑前,因此手机端显示是这个项目的重要部分。
系统针对手机屏幕重新调整了导航、表格、操作按钮和内容卡片的布局。节目单、公告、签到、人员名单以及技术资料都可以直接在手机上查看。
页面还会定时检查数据是否发生变化。当管理员发布公告、修改节目单或更新设备状态后,其他已经打开系统的设备可以自动获取最新内容,不必一直手动刷新网页。
如果用户正在填写表单,系统会尽量避免自动刷新,以防尚未提交的内容丢失。
开发过程中的体会
目前大部分使用的是php开发,使用了一些codex的技能
并且我也在思考是否可以销售这个系统,如果你目前可能需要这套系统,欢迎联系我!本系统支持本地部署也支持使用我们的平台
写在最后
Anson Stage Assistant 目前已经覆盖演出筹备、彩排、现场执行、人员签到、技术资料管理和项目归档等主要环节。
它可能还不是一套非常庞大的商业系统,但它解决的是舞台工作中真实存在的问题。我的目标,是让复杂的现场信息变得更集中、更清楚,也让每一位工作人员都能及时获得自己需要的内容。
未来,我还计划继续优化实时同步、操作记录、数据备份、现场大屏和通知提醒等功能,让它能够适应更多类型的演出与活动。
对于我来说,这不仅是一个 PHP 项目,也是一次把实际工作经验转化为数字化工具的尝试。
目前完整功能清单
一、系统基础
- 使用 PHP 8.1+ 开发
- PHP 服务端渲染,无需 Node.js
- 默认无需登录即可访问
- 网站名称:Anson Stage Assistant
- 中文名称:Anson 舞台助理系统
- 自定义网站图标和 favicon
- 页脚显示
© 当前年份 Anson. 版权所有 - 支持宝塔、Nginx、Apache、PHP-FPM
- 针对腾讯 EdgeOne/CDN 添加 CSS 版本号和防缓存设置
二、游客模式
游客无需登录,可以:
- 查看所有允许访问的项目
- 查看节目单、时间轴和彩排安排
- 查看演职人员、舞台分工和联系人
- 查看输入输出表、通道表和无线频率
- 查看设备清单和设备领用状态
- 查看实时公告
- 查看签到情况
- 下载管理员上传的文件
- 使用搜索功能
- 在管理员允许时自由切换项目
游客不能:
- 修改或删除数据
- 发布公告
- 操作签到
- 上传文件
- 领用或归还设备
- 管理项目和管理员
三、管理员系统
- 管理员登录和安全退出
- 密码使用哈希方式存储
- CSRF 表单安全防护
- 管理员可以修改自己的密码
- 总管理员可以添加管理员
- 总管理员可以删除普通管理员
- 总管理员可以修改管理员显示名称
- 总管理员可以重设普通管理员密码
- 总管理员可以分别开启不同权限
支持的独立权限:
- 项目管理
- 节目单编辑
- 人员与签到
- 公告管理
- 技术资料编辑
- 文件上传与删除
总管理员拥有全部权限,默认显示名称为 Anson。
四、项目管理
- 新增项目
- 切换当前项目
- 修改项目名称
- 修改演出场地
- 修改演出日期
- 修改项目状态
- 设置游客默认看到的项目
- 设置游客是否可以自行切换项目
- 每个项目保存独立的节目、公告、技术资料和设备状态
- 新项目可以复制当前项目的基础资料
- 复制项目时重新生成独立的人员和设备标识
- 整个项目一键打包归档
项目归档 ZIP 包含:
- 项目信息
- 节目单
- 技术资料
- 人员名单
- 签到信息
- 项目配置清单
- 管理员上传的项目文件
- 归档时间和版权信息
项目归档需要服务器启用 PHP zip 扩展。
五、节目单 Run Sheet
- 显示节目开始时间
- 显示节目预计时长
- 中英文节目名称
- 执行部门标签
- 执行备注
- 节目状态
- 新增节目
- 删除节目
- 修改节目顺序对应的数据
- 保存节目单
- 搜索节目名称、备注和演出人员
- 当前节目高亮显示
- 显示 NOW 当前节目
- 显示 NEXT 下一节目
- 未开始时显示“距离开始”
- 节目开始后显示“预计结束”
- 根据节目单时间自动计算整场预计结束时间
- 支持节目暂停
- 支持恢复节目
- 支持临时插播节目
- 临时插播可以填写名称、时长、人员和执行备注
- 临时插播表单采用页面内展开,不会被公告栏遮挡
六、节目演出人员安排
- 每个节目可以选择所需演出人员
- 人员直接来自演职人员名单
- 使用下拉面板多选
- 可以同时选择多人
- 显示人员姓名和角色
- 保存人员的唯一标识,避免重名
- 节目单默认显示已选择人员
- 人员标签使用紧凑样式
- NOW 和 NEXT 区域显示对应演出人员
- 临时插播同样支持选择人员
七、时间轴 Timeline
- 查看全天关键时间节点
- 显示时间、节点、负责人和状态
- 管理员可以新增记录
- 管理员可以修改记录
- 管理员可以删除记录
- 支持搜索
八、彩排安排
- 显示彩排时段
- 显示节目名称
- 显示重点检查内容
- 显示彩排状态
- 新增彩排记录
- 修改彩排记录
- 删除彩排记录
九、演职人员名单
- 姓名
- 身份、部门或乐器
- Call Time
- 签到状态
- 新增人员
- 修改人员
- 删除人员
- 与签到表使用同一份人员数据
- 人员名单独立保存在
data/people.json
十、签到 Check-in
- 管理员手动签到或取消签到
- 显示已签到人数
- 显示未到场人数
- 自动计算到场率
- 生成项目签到二维码
- 手机扫码后选择姓名自助签到
- 签到结果实时同步到演职人员名单
- 支持 A4 签到表导出
- 导出表包含项目名称、日期、场地和导出时间
- 跨页打印时自动重复表头
- 打印时隐藏导航、按钮和二维码
- 打印表显示姓名、部门、Call Time 和签到状态
十一、实时公告
- 发布公告
- 编辑公告
- 删除公告
- 首页显示最新公告
- 公告支持三级优先级:
- 紧急
- 普通
- 仅通知
- 不显示“已读”信息
- 不同优先级使用不同颜色
- 游客可以实时查看公告
十二、舞台与人员资料
舞台分工
- 舞台区域
- 负责人
- 工作任务
- 对讲频道
- 新增、修改和删除记录
联系人
- 姓名
- 职责
- 电话
- 对讲频道
- 新增、修改和删除记录
十三、技术资料
输入输出表
- 输入通道
- 信号源
- 话筒或 DI
- 舞台位置
- 支持新增、修改和删除
通道表 Patch List
- 通道编号
- Stagebox
- 调音台通道
- 备注
- 支持新增、修改和删除
无线频率管理
- 无线频道或编号
- 设备和使用者
- 频率
- 亚音频参数
- 已移除电量字段
- 已加入对讲机 CH-1 至 CH-9
- 支持新增、修改和删除频率
设备清单
- 设备名称
- 数量
- 负责人
- 设备状态
- 状态可以从已有内容中选择
- 可以手动输入新的状态
- 支持新增、修改和删除设备
十四、道具、话筒和设备领用归还
- 新增领用物品
- 物品分类:
- 道具
- 话筒
- 设备
- 设置物品名称和编号
- 输入领用人
- 确认领用
- 确认归还
- 显示当前领用状态
- 保存领用时间
- 保存归还时间
- 删除物品记录
- 游客可以查看实时领用状态
十五、文件管理
- 独立文件管理页面
- 游客可以下载文件
- 管理员可以上传文件
- 管理员可以删除文件
- 支持设置文件显示名称
- 支持设置版本号
- 显示文件格式和大小
- 文件通过 PHP 接口受控下载
- 上传文件存放在
data/uploads/<项目ID>/
支持的常见格式包括:
- TXT
- Word
- Excel
- CSV
- PowerPoint
- PNG、JPG
- ZIP
- MP3、WAV
十六、实时自动更新
- 页面每 3 秒检查一次数据版本
- 数据变化后自动刷新
- 无需用户频繁手动刷新
- 管理员正在编辑时不会强制刷新
- 有新数据时显示更新提示
- 点击提示可以刷新
- 刷新后恢复原来的滚动位置
- 页面切回前台时立即检查更新
- 使用防缓存参数减少 CDN 返回旧数据
十七、手机端适配
- 手机端项目选择框
- 横向滑动主导航
- 节目单转换为节目卡片
- 人员、技术资料和设备表转换为信息卡片
- NOW、NEXT 和倒计时重新排列
- 文件下载使用手机卡片布局
- 签到统计使用紧凑布局
- 表单按钮扩大触控区域
- 临时插播在手机端页面内展开
- 人员多选面板适配触控操作
- 主要查看页面不存在横向溢出
- 支持减少动画的系统设置
十八、数据独立存储
所有可修改信息都与程序代码分开保存