# CommandProgressFloat 设计 ## 目标 将 Monitor 地图上的 `command-progress-float` 抽为展示组件。轮询 / `startCommandProgress` / `closeCommandProgress` / Escape 关闭仍留在 MonitorView。 ## 非目标 - 不迁指令下发与轮询逻辑 - 不改 map-toolbar / 图例 / 比例尺 - 不改按钮状态文案计算(`buttonStatusText` 仍读页面 `commandProgress`) ## 契约 **Props** | prop | 说明 | |------|------| | `open` | 是否显示 | | `title` | 指令名 | | `deviceName` | 设备名 | | `step` | 1–3 | | `status` | sent/acked/timeout/terminal… | | `result` | 结果文案 | | `error` | 错误文案 | | `terminalLabel` | 第三步标题(原 `commandProgressTerminalLabel`) | **Emits:** `close` 组件内保留三步 `
    ` class 规则(done/active/fail)。 ## 实现 1. `src/components/CommandProgressFloat.vue` 2. MonitorView map-panel 内替换内联 float 3. Commit: `refactor: 抽取 CommandProgressFloat 指令进度浮层` 4. 冒烟:通过页面临时打开态或 evaluate 设置/触发 close;结构 class 存在即可(后端不可用时可不真下发) ## 约束 精确 git add;中文 commit;跳过全量单测