You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.5 KiB

Devices 真分页 + 弹窗/样式收口 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: 全仓 t-dialogdestroy-on-close;Devices 列表专用真分页;删除 prototype.css 死样式。

Architecture: 弹窗统一销毁重建;DevicesView 自管分页请求,不改 devicesStore.load 近全量语义;CSS 只删确认无引用的规则。

Tech Stack: Vue 3、tdesign-vue-next、现有 /v1/docks /v1/drones 分页契约

Spec: docs/superpowers/specs/2026-08-28-devices-pagination-cleanup-design.md


Task 1: A — t-dialog destroy-on-close

Files: 所有含 <t-dialog 的 vue(DockEditModal、DevicesView、FirmwaresView、TasksView、AccountView、MonitorView、LoginView 等)

  • 每个业务 t-dialog 增加 destroy-on-close(或 :destroy-on-close="true"
  • 确认打开时仍有表单 init(已有则不动)
  • Commit: fix: 业务弹窗启用 destroy-on-close

Task 2: B — Devices 列表真分页

Files:

  • Modify: src/views/DevicesView/DevicesView.vue

  • 不改坏:src/stores/modules/devicesStore.js 的 Monitor 近全量 load()

  • View 增加 pageNum/pageSize=20/total/tableRecords

  • loadTable():按 tab 请求 urls.DOCKSurls.DRONES,params 含 pageNum/pageSize/keyword;写入 records+total

  • t-pagination 外置绑定;tab/搜索变更重置 pageNum=1 再 loadTable

  • 状态/绑定筛:仅过滤当前页;角标优先用接口 total

  • 写操作成功后 loadTable(),并可选 devices.load() 刷新全局缓存

  • Commit: feat: 设备列表接入服务端分页


Task 3: C — 删除死 CSS

Files:

  • Modify: src/styles/prototype.css

  • 删除已无 Vue 引用的 .primary-command / .plain-command / .icon-command.business-tabs.mode-segment、裸 .asset-table 等(删除前再 rg 确认)

  • 保留 .asset-table-wrap.table-footer、业务 layout、地图/控制样式

  • Commit: chore: 清理 TDesign 迁移后无用的按钮与表样式


Task 4: 验收

  • 抽检弹窗关闭再开无脏数据
  • Devices 翻页网络 pageNum 变化;Monitor 地图仍有点
  • 死 class 无引用;关键页按钮/表可见

约定

  • 不改后台;不 git add -A;Main 统一冒烟。