+
{{ copied ? "内容已复制" : "" }}
+
+
+
diff --git a/web/hwlab-cloud-web/src/components/common/OverlaySurface.vue b/web/hwlab-cloud-web/src/components/common/OverlaySurface.vue
index 9419a0ac..2d65dfd2 100644
--- a/web/hwlab-cloud-web/src/components/common/OverlaySurface.vue
+++ b/web/hwlab-cloud-web/src/components/common/OverlaySurface.vue
@@ -48,6 +48,7 @@ function close(): void {
v-if="open"
class="console-overlay-backdrop"
:class="{ 'console-drawer-backdrop': kind === 'drawer' }"
+ :data-fullscreen="kind === 'dialog' && fullscreen ? 'true' : undefined"
role="presentation"
@mousedown.self="closeOnBackdrop ? close() : undefined"
>
diff --git a/web/hwlab-cloud-web/src/components/hwpod/HwpodDevicesWorkspace.vue b/web/hwlab-cloud-web/src/components/hwpod/HwpodDevicesWorkspace.vue
index 303d7f74..4ce9466d 100644
--- a/web/hwlab-cloud-web/src/components/hwpod/HwpodDevicesWorkspace.vue
+++ b/web/hwlab-cloud-web/src/components/hwpod/HwpodDevicesWorkspace.vue
@@ -11,7 +11,7 @@ import HwpodDeviceCard from "./HwpodDeviceCard.vue";
defineProps<{ devices: HwpodDeviceTopologyItem[]; selectedId: string | null; view: "cards" | "list"; density: "compact" | "comfortable"; sort: string }>();
const emit = defineEmits<{ select: [device: HwpodDeviceTopologyItem]; sort: [key: string] }>();
const columns: DataGridColumn[] = [{ key: "name", label: "HWPOD", sortable: true, width: "190px" }, { key: "nodeName", label: "Node", width: "170px" }, { key: "status", label: "状态", sortable: true, width: "100px" }, { key: "elements", label: "目标 / 工作区", width: "230px" }, { key: "debugIo", label: "调试 / IO", width: "210px" }, { key: "capabilities", label: "能力", width: "140px" }, { key: "blocker", label: "主要 blocker", width: "220px" }, { key: "operation", label: "用户操作", width: "160px" }];
-const statusLabel = (status: string): string => ({ online: "在线", offline: "离线", busy: "忙碌", available: "可用", error: "异常", mismatch: "能力不匹配" }[status] || status || "unknown");
+const statusLabel = (status: string): string => ({ online: "在线", offline: "离线", busy: "忙碌", available: "可用", error: "异常", mismatch: "能力不匹配", "capability-mismatch": "能力不匹配" }[status] || status || "unknown");
@@ -55,14 +55,3 @@ const statusLabel = (status: string): string => ({ online: "在线", offline: "
-
-
diff --git a/web/hwlab-cloud-web/src/components/hwpod/HwpodNodesWorkspace.vue b/web/hwlab-cloud-web/src/components/hwpod/HwpodNodesWorkspace.vue
index 582cd36e..69e05d4d 100644
--- a/web/hwlab-cloud-web/src/components/hwpod/HwpodNodesWorkspace.vue
+++ b/web/hwlab-cloud-web/src/components/hwpod/HwpodNodesWorkspace.vue
@@ -11,7 +11,7 @@ import HwpodReadinessRail from "./HwpodReadinessRail.vue";
defineProps<{ nodes: HwpodNodeTopologyItem[]; selectedId: string | null; view: "cards" | "list"; density: "compact" | "comfortable"; sort: string }>();
const emit = defineEmits<{ select: [node: HwpodNodeTopologyItem]; sort: [key: string] }>();
const columns: DataGridColumn[] = [{ key: "name", label: "Node", sortable: true, width: "210px" }, { key: "status", label: "连接", sortable: true, width: "100px" }, { key: "deviceCount", label: "HWPOD", align: "right", width: "80px" }, { key: "inFlight", label: "In-flight", width: "100px" }, { key: "capabilities", label: "能力", width: "130px" }, { key: "mounted", label: "挂载 HWPOD", width: "220px" }, { key: "readiness", label: "接入阶段", width: "180px" }, { key: "lastSeen", label: "最后心跳", width: "150px" }, { key: "blocker", label: "Blocker", width: "220px" }];
-const statusLabel = (status: string): string => ({ online: "在线", offline: "离线", busy: "忙碌", available: "可用", error: "异常", mismatch: "能力不匹配" }[status] || status || "unknown");
+const statusLabel = (status: string): string => ({ online: "在线", offline: "离线", busy: "忙碌", available: "可用", error: "异常", mismatch: "能力不匹配", "capability-mismatch": "能力不匹配" }[status] || status || "unknown");
function formatTime(value: string | null): string { if (!value) return "-"; const date = new Date(value); return Number.isNaN(date.getTime()) ? value : date.toLocaleString(); }
@@ -95,14 +95,6 @@ function formatTime(value: string | null): string { if (!value) return "-"; cons
diff --git a/web/hwlab-cloud-web/src/components/mdtodo/MdtodoTaskTree.vue b/web/hwlab-cloud-web/src/components/mdtodo/MdtodoTaskTree.vue
index 40a5be4f..2dde8a24 100644
--- a/web/hwlab-cloud-web/src/components/mdtodo/MdtodoTaskTree.vue
+++ b/web/hwlab-cloud-web/src/components/mdtodo/MdtodoTaskTree.vue
@@ -3,7 +3,7 @@