微信小程序:主动整备交互设计需求 (Active Prep Card v6)
v6 变更:恢复确认型(PRE_CONFIRM)场景为可选模式(通知型 AUTO / 确认型 PRE_CONFIRM),并明确「暂不需要」点击后卡片转为「已取消」状态(操作区替换为状态提示条,卡片不置灰);卡片内容由 LLM summary 驱动,移除旧版硬编码环境状态展示。
背景:确认型(询问用户「立即整备 / 暂不需要」)为最早设计;中间因微信服务号申请受限曾取消,后借用存量微信模板消息通道后恢复为「通知型 + 确认型」双模式。点击「暂不需要」后卡片转为「已取消本次整备」状态,原按钮移除,不再提供「深度调节」入口(用户可在需要时自行进入空间控制面板)。
1. 背景与目标
在”主动整备 (Active Prep)”场景下,系统需向预定人推送即时卡片。设计需符合”人未到,环境已就绪”的愿景,同时提供手动调节入口。
2. 消息下发与链路策略 (Notification & Routing)
2.1 链路术语定义
- 外层通知 (Outer Notification):指在微信服务号/飞书 Bot 中下发的”消息卡片”。其作用是主动触达用户。
- 落地页路由 (Landing Page Route):用户通过消息卡片跳转,应直接路由至 空间运营页面 (index.html)。若环境为 Chatbot 内部跳转,则直接通过消息气泡联动唤起该页面的组件。
2.2 推送渠道
- 服务号/飞书 Bot 推送:系统通过对应平台的消息通道发送整备通知卡片。
- 消息交互流:用户进入小程序 Chatbox 后,该通知卡片会自动呈现在对话流的最新位置。
3. 视觉规范
- Header: 统一为 ”智能空间助手”。
- 操作项顺序: 统一采用 ” [ 正向操作 ] [ 负向/纠偏操作 ] “(例如: ” [ 🛠️ 深度调节 ] [ 🚫 取消备场 ] “)。
- 字体规范: 调节页内的分段标题(风速、模式、扫风等预留项)统一采用粗体 (Bold)。
4. 场景原型 (Prototypes)
场景:自动执行告知 (AUTO_EXECUTE)
整备 Agent 自动执行决策后,推送通知卡片。卡片内容由 LLM 动态生成的 summary(限 30 字)驱动,详见 SA_主动整备_Agent设计.md §5.2.1。
+-------------------------------------------+
| [🤖 智能空间助手] [••• | ◎] |
+-------------------------------------------+
| |
| ✨ **「研发周会」已为您提前备场** |
| ------------------------------------- |
| **A-101 大会议室** (4F) |
| 🕒 14:00 - 15:00 (**15 min后开始**) |
| ------------------------------------- |
| |
| **空调将调至 24℃,灯光将开启** | ← LLM summary (≤30字)
| |
| [ 🛠️ 深度调节 ] |
+-------------------------------------------+说明:不再展示”当前室温 / 整备预计时长”等硬编码数据。环境状态由 LLM 动态判断并生成 summary,适应多设备类型(空调、灯、窗帘等)。
场景:确认执行询问 (PRE_CONFIRM)
适用:确认型(prep_type = confirm)整备模式。系统在会前推送询问卡片,由用户决定是否执行整备,设备在下发前等待用户确认。
按钮:[ ✅ 立即整备 ](正向,主按钮) + [ 🚫 暂不需要 ](负向/纠偏,次按钮)。
+-------------------------------------------+
| [🤖 智能空间助手] [••• | ◎] |
+-------------------------------------------+
| |
| ❓ **「临时会议」建议提前整备** |
| ------------------------------------- |
| **A-101 大会议室** (4F) |
| 🕒 14:00 - 15:00 (**15 min后开始**) |
| ------------------------------------- |
| |
| **空调将调至 24℃,灯光将开启** | ← LLM summary (≤30字)
| |
| [ ✅ 立即整备 ] [ 🚫 暂不需要 ] |
+-------------------------------------------+交互规则:
| 操作 | 行为 |
|---|---|
点击 [ ✅ 立即整备 ] | 下发整备动作,卡片转态为"已整备",不再提供「深度调节」入口,用户可自行进入空间控制面板调节 |
点击 [ 🚫 暂不需要 ] | 不执行任何整备动作;卡片保持正常亮度,操作区替换为「已取消」状态提示条,原按钮移除 |
点击 [ 🚫 暂不需要 ] 后的取消态原型:
+-------------------------------------------+
| [🤖 智能空间助手] [••• | ◎] |
+-------------------------------------------+
| |
| ✅ **已取消本次整备** | ← 标题:图标 + 状态文案
| ------------------------------------- |
| **A-101 大会议室** (4F) |
| 🕒 14:00 - 15:00 (**15 min后开始**) |
| ------------------------------------- |
| |
| **环境将保持当前状态,不再自动调节** | ← summary 区域:说明文案
| |
| ┌───────────────────────────────┐ |
| │ ⨯ 本场会议不进行自动整备 │ | ← 虚线状态提示条(替代原按钮)
| └───────────────────────────────┘ |
+-------------------------------------------+注意:取消整备后卡片不置灰(保持正常亮度),仅将操作区替换为一条虚线边框的"已取消"提示条,原「立即整备 / 暂不需要」按钮移除,防止重复触发。用户如需手动调节,应主动进入空间控制面板。
5. 空间控制面板
核心原则:面板由空间逻辑映射纯数据驱动渲染,管理员无需预设面板样式。详见 SA_空间控制面板设计.md。
5.1 一级面板:极简列表
点击「深度调节」后进入空间控制面板,按语义数据类型逐行渲染:
+---------------------------------------------------+
| [ < 返回 ] A-101 空间控制 [ × ] |
+---------------------------------------------------+
| |
| ===== 可操作能力 ===== |
| |
| 空调开关 ● 开 > |
| 运行模式 制冷 > |
| 设定温度 24°C > |
| 灯光开关 ● 开 > |
| 灯光亮度 80% > |
| 窗帘位置 50% > |
| |
| ===== 环境感知 ===== |
| |
| 室内温度 28°C |
| 室内湿度 65% |
| 二氧化碳 450ppm |
| |
+---------------------------------------------------+
| ↻ 数据飞一会儿才到,点一下刷新 | ← 粘性 footer
+---------------------------------------------------+
| [ 关闭 ] |
+---------------------------------------------------+行类型规则:
| 数据类型 | 左显示 | 值来源 | 右组件 | 点击行为 |
|---|---|---|---|---|
bool | icon + 名称 | value(true → ●开 / false → ○关) | switch 开关 | 直接切换 |
enum | icon + 名称 | value(当前选项文字) | 选项文字 + > | → 二级面板 |
number | icon + 名称 | value + unit(如 24°C、80%) | 数值 + 单位 + > | → 二级面板 |
ro | icon + 名称 | 自控平台实时上报值 + 单位 | 数值 + 单位 | 仅展示 |
取数说明:icon 取自
mapping.semantic_key关联的标准语义库icon字段;number 的unit来自自控平台逻辑点位定义(M3 前端 Mock 预设,P2 接入真实字段);bool 映射规则为true → 开 / false → 关。详见 SA_空间控制面板设计.md §1.1。
5.2 二级面板:语义详情交互
点击一级面板中的 > 箭头,进入对应二级面板。
5.2.1 通用 number 组件(纯滑块)
+-------------------------------------------+
| [ < 返回 ] 设定温度 [ × ] |
+-------------------------------------------+
| |
| 目标温度 (滑动调节) |
| |
| ───────────────●──────────────── |
| 16 24 30 |
| |
| 24°C |
| |
+-------------------------------------------+
| [ 立即生效 ] |
+-------------------------------------------+- 量程
range和步长step继承自空间逻辑映射 - 无快捷预设标签
5.2.2 通用 enum 组件(选项列表)
+-------------------------------------------+
| [ < 返回 ] 运行模式 [ × ] |
+-------------------------------------------+
| |
| 当前: 制冷 |
| |
| ○ 自动 |
| ● 制冷 |
| ○ 制热 |
| ○ 送风 |
| |
+-------------------------------------------+
| [ 立即生效 ] |
+-------------------------------------------+6. 对话反馈逻辑 (Bot Feedback Logic)
为确保用户操作有明确回响,需根据场景下发即时文本消息:
- 深度调节保存:
- 逻辑说明: 仅当用户实际修改了温度数值(当前值
进入页面时的初始值)并点击”保存应用”时,触发反馈。 - 话术内容: “设定温度已更新为 [数值]℃,正在同步至现场设备。”
- 不触发场景: 用户进入页面后未改动数值直接保存,或点击”返回/取消”,不发送任何新消息。
- 逻辑说明: 仅当用户实际修改了温度数值(当前值
7. 开发对接说明
- 日志留痕: 用户点击所有按钮均需记录
Action_Log。 - AppLink 参数: 通知卡片中的 [查看详情] 按钮需携带
room_id和action_type,确保直达后能准确渲染对应卡片或页面。
