Browse Source

docs: 增加 DockStatusDialog 设计与实现计划

机巢状态弹窗抽离,PLC 计算仍留在 MonitorView。
main
xiaosi 3 weeks ago
parent
commit
748014f8f7
  1. 29
      docs/superpowers/plans/2026-08-28-dock-status-dialog.md
  2. 46
      docs/superpowers/specs/2026-08-28-dock-status-dialog-design.md

29
docs/superpowers/plans/2026-08-28-dock-status-dialog.md

@ -0,0 +1,29 @@
# DockStatusDialog Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** 抽出机巢状态弹窗为 `DockStatusDialog`;summary/PLC 计算留页面。
**Architecture:** 组件包 `t-dialog` + 现有 body;`v-model:visible`;props: title/summary/chargeActive/updatedText/board。
**Spec:** `docs/superpowers/specs/2026-08-28-dock-status-dialog-design.md`
---
### Task 1: 组件 + 接线
- Create: `src/components/DockStatusDialog.vue`
- Modify: `src/views/MonitorView/MonitorView.vue`
- [ ] 迁入现 dialog 模板;用 board 布尔替换模板内 rt/doorValue 调用
- [ ] 页面增加 `dockStatusBoard` computed(映射现有 isClosed/doorValue/...)
- [ ] 替换为 `<DockStatusDialog v-model:visible="dockStatusOpen" ... @close="closeDockStatus" />`
- [ ] Commit: `refactor: 抽取 DockStatusDialog 机巢状态弹窗`
### Task 2: 冒烟
选中机巢 → 查看详情 → 摘要卡 + PLC 看板渲染;关闭正常;无 console error。
## 约束
不改后台;精确 git add;中文 commit

46
docs/superpowers/specs/2026-08-28-dock-status-dialog-design.md

@ -0,0 +1,46 @@
# DockStatusDialog 设计
## 目标
将 MonitorView 中机巢状态 `t-dialog` 抽为 `DockStatusDialog.vue`。页面继续计算 `dockStatusSummary` / PLC 布尔态;dialog 只负责展示。
## 非目标
- 不迁 `rt` / `doorValue` / summary 计算进组件
- 不改 MonitorDetailPanel、地图、命令进度
- 不改业务文案
## 契约
**Props**
| prop | 说明 |
|------|------|
| `visible` | v-model |
| `title` | dialog header |
| `summary` | 现 `dockStatusSummary` 对象 |
| `chargeActive` | 充电中高亮(原 `chargeTone`) |
| `updatedText` | 「PLC 实时反馈 · …」 |
| `board` | PLC 看板布尔态 |
`board` 字段:
```
leftClosed, leftOpen, rightClosed, rightOpen,
lrTight, lrLoose, fbTight, fbLoose,
emergencyStop, autoMode, noAlarm, resetDone,
charging, chargeIdle, dronePresent, powerOnline
```
**Emits:** `update:visible`;`@close` 可选(页面可继续 `closeDockStatus`
## 实现
1. 新增 `src/components/DockStatusDialog.vue`(含现 dialog 模板 + destroy-on-close)
2. MonitorView 用组件替换内联 t-dialog;新增 `dockStatusBoard` computed
3. Commit:`refactor: 抽取 DockStatusDialog 机巢状态弹窗`
4. 冒烟:选中机巢 → 查看详情 → dialog 内容正常
## 约束
精确 git add;中文 commit;跳过全量单测
Loading…
Cancel
Save