3D 区域标签与照明控制

区域标签
Web 3D 场景中,建筑的不同区域上方悬浮着区域标签:
- 标签显示区域名称(如「A 区大堂」「B 区办公室」等)
- 标签位置由 Admin 后台的大屏模型 → 标签配置页面设置
- 鼠标悬停显示标签文字
- 点击标签触发交互
照明控制面板
点击区域标签后,右侧弹出 LightingSheet 侧边面板(320px 宽):
面板内容
- 区域选择器:顶部下拉框,可切换查看不同区域的照明状态
- 照明分组:面板列出该区域下的所有照明分组
每组的控制
每个照明分组显示:
- 组名称(如「A1 区-照明 1」「A1 区-照明 2」)
- 状态指示:💡 开 / 🗑 关
- 开关按钮:点击切换该组的开/关状态
- 支持三种状态:
on(开)/off(关)/half(半开)
批量操作
面板底部提供批量控制按钮:
| 按钮 | 操作 |
|---|---|
| 全部打开 | 该区域下所有照明组设为 on |
| 全部关闭 | 该区域下所有照明组设为 off |
实时同步
技术细节:SSE 实时通信架构见 实时通信 (SSE),IoT 集成见 物联网集成
照明状态变更通过 SSE 实时同步到其他设备:
- 在一个浏览器中开关照明,另一个浏览器中状态自动更新
- 更新通过
lighting_update事件推送 - 状态变更经过服务端验证(REST API 调用,非本地乐观更新)
IoT 离线降级
当 IoT 网关不可用时(连接断开),照明控制自动降级为Mock 模式:
- 所有开关状态在服务端内存中模拟
- 开关功能仍然可用,但无法控制真实设备
- 页面顶部 Mock 模式指示条提醒操作员