From 748014f8f70d77af58b86d912d42d9f800ba562f Mon Sep 17 00:00:00 2001 From: xiaosi <2652281683@qq.com> Date: Mon, 31 Aug 2026 14:30:59 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=A2=9E=E5=8A=A0=20DockStatusDialog?= =?UTF-8?q?=20=E8=AE=BE=E8=AE=A1=E4=B8=8E=E5=AE=9E=E7=8E=B0=E8=AE=A1?= =?UTF-8?q?=E5=88=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 机巢状态弹窗抽离,PLC 计算仍留在 MonitorView。 --- .../plans/2026-08-28-dock-status-dialog.md | 29 ++++++++++++ .../2026-08-28-dock-status-dialog-design.md | 46 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 docs/superpowers/plans/2026-08-28-dock-status-dialog.md create mode 100644 docs/superpowers/specs/2026-08-28-dock-status-dialog-design.md diff --git a/docs/superpowers/plans/2026-08-28-dock-status-dialog.md b/docs/superpowers/plans/2026-08-28-dock-status-dialog.md new file mode 100644 index 0000000..d6c0e34 --- /dev/null +++ b/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/...) +- [ ] 替换为 `` +- [ ] Commit: `refactor: 抽取 DockStatusDialog 机巢状态弹窗` + +### Task 2: 冒烟 + +选中机巢 → 查看详情 → 摘要卡 + PLC 看板渲染;关闭正常;无 console error。 + +## 约束 + +不改后台;精确 git add;中文 commit diff --git a/docs/superpowers/specs/2026-08-28-dock-status-dialog-design.md b/docs/superpowers/specs/2026-08-28-dock-status-dialog-design.md new file mode 100644 index 0000000..7a0b99d --- /dev/null +++ b/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;跳过全量单测