微信小程序 - SA 设备查询交互设计 PRD (v1.0)
1. 卡片规范 (Card Standards)
1.1 渲染模式定义
设备查询卡片分两种渲染模式,由 Engine 根据设备属性数量自动选择:
| 模式 | 触发条件 | 卡头标题 | 卡片布局 |
|---|---|---|---|
| compact | 所有设备均只展示 1 个属性 | "{空间名} · {标准语义名}" | 每设备一行一值 |
| detail | 任一设备展示 ≥2 个属性 | "{空间名} · 设备详情" | 按设备分组,属性缩进展示 |
mix 场景:不同设备展示的属性数量可以不同(如设备 A 有 2 个属性、设备 B 有 1 个属性)。只要任一设备 ≥2 即触发 detail 模式;单属性设备在 detail 卡片中仍只展示 1 行,无需补齐。
1.2 通用规则
- Header 图标:固定使用
fa-circle-info,不随语义类型变化 - Header 标题:compact 模式为
"{空间名} · {标准语义名}"(取selected_attrs[0]对应的语义名),detail 模式为"{空间名} · 设备详情" - 设备状态值展示:
- 布尔型 → 文字("已开启""已关闭"),非开关组件
- 数值型 → 值+单位("24℃"),无滑动条
- 枚举型 → 中文标签("制冷"),无选择器
- 统计行:多设备时展示"共 X 台设备";单设备时隐藏
- 无交互组件:无确认/取消按钮、无复选框、无滑块、无开关、无全场同步
2. 核心场景交互设计 (Scenario Design)
2.1 单设备单属性(compact)
text
(User) "305空调多少度"
(Agent)
+-------------------------------------------+
| [ℹ️] 305会议室 · 设定温度 |
| --------------------------------------- |
| 305空调 24℃ |
+-------------------------------------------+text
(User) "空调开了吗"
(Agent)
+-------------------------------------------+
| [ℹ️] 305会议室 · 灯具开关 |
| --------------------------------------- |
| 空调 已开启 |
+-------------------------------------------+2.2 单设备多属性(detail)
text
(User) "305空调什么状态"
(Agent)
+-------------------------------------------+
| [ℹ️] 305会议室 · 设备详情 |
| --------------------------------------- |
| ── 305空调 ── |
| 设定温度 24℃ |
| 运行模式 制冷 |
+-------------------------------------------+2.3 多设备单属性(compact)
text
(User) "305所有设备状态"
(Agent)
+-------------------------------------------+
| [ℹ️] 305会议室 · 设备状态 |
| --------------------------------------- |
| 共 3 台设备 |
| |
| 305主灯 已开启 |
| 305筒灯 已关闭 |
| 305空调 24℃ |
+-------------------------------------------+2.4 多设备多属性(detail,含 mix 场景)
text
(User) "305所有设备详情"
(Agent)
+-------------------------------------------+
| [ℹ️] 305会议室 · 设备详情 |
| --------------------------------------- |
| 共 2 台设备 |
| |
| ── 大金空调 ── |
| 设定温度 24℃ |
| 运行模式 制冷 |
| ── 美的空调 ── |
| 设定温度 26℃ |
+-------------------------------------------+mix 说明:
- 大金空调展示 2 个属性,美的空调仅展示 1 个属性
- 设备间属性数量可以不同,不影响渲染
- 各设备独立展示其属性集,无需补齐
3. Header 取数逻辑
3.1 标题
| 模式 | 标题格式 | 示例 |
|---|---|---|
| compact | "{空间名} · {标准语义名}" | "305会议室 · 设定温度" |
| detail | "{空间名} · 设备详情" | "305会议室 · 设备详情" |
3.2 图标
所有查询卡片固定使用 fa-circle-info 图标,不随语义类型变化。
4. 异常与回执
| 场景 | 反馈逻辑 |
|---|---|
| 空间无设备 | Agent 回复"该空间下暂无可查询的设备。" |
| 设备离线 | 在状态卡片中该设备行标注"⛔ 离线",状态值显示为"--" |
5. 相关设计参考
- Agent 设计:SA_设备查询_Agent设计.md
- 设备控制 PRD:微信小程序_SA_设备控制_交互设计PRD.md
- 管理后台:标准语义管理 PRD
