Commit Graph

20 Commits

Author SHA1 Message Date
Pine d70d9d5fbd feat: add SFX volume control and improve audio feedback
- Implemented separate sound effects volume control in settings.
- Updated backend to handle new `sfx_volume` parameter.
- Enhanced UI to include sound effects volume slider in admin panel.
- Integrated sound effects for various user interactions (clicks, navigation, alerts).
- Added a new global sound engine to manage audio synthesis without external files.
- Updated documentation for Docker deployment and Windows packaging.
- Refactored audio context management to ensure sound effects are available post user interaction.
2026-08-18 07:14:13 +08:00
Pine fbf2eccad2 feat: 语音气泡浅蓝 + 页眉图标展示全部视觉状态 + 简化自动问候
- /voice 页右下角气泡文本改浅蓝色(最新 #4cc2ff / 历史 #6fb5ea)
- GlobalVision 广播 dpm:vision-status(status/cameraOn/gesture/faces)
- 页眉图标四态:默认灰(探索) → 识别中浅蓝(摄像头开/检测/面向) → 手势绿(惊喜) → 异常红
- 自动调用语音助手问候语简化为「您好呀,需要我的帮助吗?」
2026-08-18 06:24:26 +08:00
Pine 75498027f3 feat: 右上角图标改造为手势状态指示器
- 默认灰色「探索」罗盘图标(Compass)
- 识别到手势(dpm:gesture)→ 变绿色「惊喜」表情(EmojiSurprised)+ 光晕脉冲,3s 后恢复
- title 同步切换(关于 PineSound / 识别到手势),点击仍打开关于弹窗
- 新增 explore/surprise 图标映射与手势状态样式
2026-08-18 06:21:55 +08:00
Pine 6b7fd0ec95 feat: 添加 AI 助手预设问题面板,优化园区概览信息展示 2026-08-18 06:17:57 +08:00
Pine 418d94d7b7 feat: 手势开启新对话 —— 确认弹窗卡片 + 新对话首条用默认欢迎语
- 对话中举手 → 弹出确认卡片(再次举手或点击「确认」开启新对话,10s 倒计时自动取消;取消按钮可手动关闭)
- 欢迎页(未开始对话)举手不响应
- 开启新对话后第一条消息 = 默认完整欢迎语(「问问小园」问候),不再只发「已开启新的对话」
- 1 分钟无新消息自动清空本轮,回到默认欢迎语(原 2 分钟)
- 新增 hand-stop/camera 图标与确认卡片样式
2026-08-18 06:13:47 +08:00
Pine 0af159a175 feat: 数据真实化、企业展示墙、全局手势识别与 3D 模型完善
- 数据大屏改用真实数据(xls 统计表 + 宣传册口径);TOKEN/工具调用基于真实锚点测算
- 新增企业展示墙页(/wall,39 家全量档案 + MQTT/admin/ESP32 控制文档)
- 新增全局手势识别(GlobalVision 全局挂载 + dpm:gesture 事件分发)
- 3D 模型墙面逐间修复、去除门/过道顶棚/调试标签、房间资产不穿墙、会议室多小桌
- 侧栏企业分布扩展至 39 家完整信息,分区按官方四大孵化区域
- 语音页多轮对话展示优化、去除页脚与检测横条、背景对齐
2026-08-18 05:48:56 +08:00
Pine 7d3cdded9e style(ui): 开发署名微调(间距与字号 15px) 2026-08-18 02:32:38 +08:00
Pine 7e6c1a09c0 fix(ui): 页眉副标题在矮屏设备(高度≤900px)不再被隐藏,改为压缩字号
根因:@media (max-height: 900px) 里 .bd-header-sub { display:none },
1366x768 等设备高度不足触发隐藏;本机大屏高度达标所以显示。
改为字号压缩(10px),所有设备均显示副标题
2026-08-18 02:30:03 +08:00
Pine e653c4b2f2 fix(ui): 开发署名移到左侧标题后(分隔线 + 垂直居中) 2026-08-18 02:26:12 +08:00
Pine 10db36aa3f feat(ui): 页眉加入开发署名(云南派音人工智能科技有限公司 开发) 2026-08-18 02:25:31 +08:00
Pine 1e60744961 feat(ui): 增加关于弹窗(PineSound 品牌)
- AboutDialog:品牌 Logo/产品名/版本/技术栈/版权,Esc 或点击遮罩关闭
- PageHeader 右上角新增「ⓘ 关于 PineSound」入口(info 图标)
- 样式:about-* 系列(毛玻璃遮罩 + 渐变品牌块),跟随 DPM 配色
2026-08-18 01:59:34 +08:00
Pine 29bdad316f feat: 播放控制移入页眉 + 媒体铺满智能裁切
页眉播放控制(仅媒体轮播页):
- 新增 MediaHeaderControls:播放/暂停、上一段/下一段、序号、当前文件名(点击进后台)、声音解锁
- 新增 mediaControl 共享状态桥:媒体页同步播放状态,页眉订阅渲染并下发指令
- 移除媒体页底部控制区,媒体区保持纯净全屏

媒体展示:
- .ms-media 改为 object-fit: cover,填满整个容器并智能居中裁切(原 contain 留黑边)

修复:
- MediaScreen useEffect 依赖数组引用后声明函数导致的 TDZ 崩溃
- 清理 MediaScreen 中不再使用的 Icon/cleanName/togglePlayPause
2026-08-17 22:45:46 +08:00
Pine 856ff88440 feat: 拆出 FastAPI 独立后端 + MQTT 控制 + 阿里云 AI
后端(backend/,FastAPI :10085):
- 全部数据 REST 接口:dashboard 快照 / 企业分区 / 播放列表 / 媒体 / 设置
- MQTT 控制通道:opc/display/command(切页/播放/卡片/通知),
  管理端 POST /api/display/command → MQTT 广播 → 所有大屏同步响应
- 阿里云 DashScope:通义千问 LLM + 函数调用(工具经 MQTT 广播),
  paraformer-realtime-v2 语音识别 /api/ai/asr
- 媒体资源统一由后端存储返回(上传/列表/静态服务)
- SSE /api/events 保留作 MQTT 不可用时的兼容回退

前端:
- config.js + .env.local 配置后端地址与 MQTT 账号(前端 dpm / 服务端 dpmserver)
- mqtt.js 客户端 + useMqttControl(MQTT 驱动切页/媒体/卡片/通知)
- DpmOverlays 全局覆盖层(通知 toast + 企业/分区/总览卡片)
- useParkSim 改为后端 API 数据源(离线回退本地模拟)
- AiChatPanel:对话走后端 LLM(工具调用),语音走本地录音 + 后端 ASR
- MediaScreen:媒体控制走 MQTT(保留 SSE 回退),修复 useEffect TDZ

Rust:lib.rs 移除内嵌 HTTP 服务器,只保留薄壳(窗口/权限/自启/npc 隧道)
安全:backend/.env、.env.local、media、data.json 已 gitignore
2026-08-17 21:26:16 +08:00
Pine 7f1c2ac4f0 fix: 注释掉 bd-strip-title 的伪元素样式 2026-08-17 20:53:36 +08:00
Pine e59047c4aa feat: AI 助手支持文字/语音双模式
- 头部新增模式切换(文字/语音),文字=对话框,语音=语音交互按钮
- 语音模式:大麦克风按钮 + 聆听波纹动画 + 识别中状态,点击开始/再次点击结束
- 优先使用 Web Speech API 识别(zh-CN),无权限/不支持时自动兜底模拟识别
- 语音提问以文字形式进入同一对话流,气泡带「语音」标记
- 切换模式保留对话历史;聆听中切换/离开自动中止识别
- 新增 microphone/microphone-filled/microphone-off/message-circle 图标
2026-08-17 20:34:45 +08:00
Pine 7da9749953 feat: 新增 AI 智能助手对话页面(/ai)
- 布局沿用数字孪生页接口:左侧 AI 对话区 + 右侧企业分布面板
- 新增共享 ParkSidePanel 组件(分区/企业名录/详情/实时动态),
  数字孪生与 AI 助手页右侧完全一致
- 新增 AiChatPanel 对话组件:欢迎语 + 消息流 + 快捷提问 + 输入发送,
  内置园区知识库模拟回复(入驻/政策/场地/AI 赋能/分区/企业/融资/就业/导师)
- 路由与导航循环加入 /ai(数据大屏 → 数字孪生 → AI 助手 → 媒体轮播)
- usePageNav 忽略输入框/文本域按键,避免输入方向键误切页面
- 新增 send/eraser/headset/circle-dot 图标,全部遵守 bd- 浅色科技 UI 规范
2026-08-17 20:26:16 +08:00
Pine ef009dad05 fix: 园区概览页脚颜色统一(设计变量提升至 :root)
- --bd-* 设计变量从 .bd-page 提升到 :root,页眉/数字孪生/媒体页/页脚全部生效
  修复媒体播放页页脚图标与数值失去蓝色(回退为继承深色)的问题
- 数据大屏改用共享 ParkOverviewStrip 组件,与媒体播放页页脚完全一致
  (标签统一为「累计营收」)
- PageHeader 头像 Logo 路径修正 /public/logo.png → /logo.png,修复 Logo 不显示
2026-08-17 20:15:18 +08:00
Pine b08055f8a5 feat: 优化共享页眉组件,增加页面状态识别及导航功能 2026-08-17 19:50:50 +08:00
Pine 435627070f feat: 新增中部轮换大屏组件,优化信息展示方式 2026-08-17 19:04:59 +08:00
Pine ef6ed76478 feat: OPC 智能园区数据大屏主页面
- DataScreen.jsx:园区数字运营中心(深色科技风)
- 五大 KPI(TOKEN/工具/项目/就业/营收)+ 三栏数据面板 + 实时动态
- 入驻企业信息表真实数据 + 每 2.2s 模拟跳动
- datascreen.css:完整大屏样式(Appica 图标配色/概览卡/导航按钮)
2026-08-17 18:37:31 +08:00