diff --git a/src/apis/map/type.ts b/src/apis/map/type.ts index 73c993b..8cd60c0 100644 --- a/src/apis/map/type.ts +++ b/src/apis/map/type.ts @@ -32,6 +32,7 @@ export interface MapPointInfo { deviceId?: string; // 设备ID enabled?: 0 | 1; // 是否启用(仅停靠点使用,0=禁用,1=启用) deviceStatus?: number; // 设备状态(仅自动门点使用,0=关门,1=开门) + isConnected?: boolean; // 连接状态(仅自动门点使用,true=已连接,false=未连接) active?: boolean; // 是否激活状态,用于控制光圈显示 } //#endregion diff --git a/src/components/card/point-detail-card.vue b/src/components/card/point-detail-card.vue index cbc8218..a011ae2 100644 --- a/src/components/card/point-detail-card.vue +++ b/src/components/card/point-detail-card.vue @@ -198,6 +198,19 @@ const binTaskData = computed(() => { {{ $t('设备ID') }} {{ point.deviceId }} + + {{ $t('连接状态') }} + + + + {{ point.isConnected ? $t('已连接') : $t('未连接') }} + + + {{ $t('扩展类型') }} {{ $t(MapPointType[point.extensionType]) }} @@ -315,6 +328,24 @@ const binTaskData = computed(() => { @use '/src/assets/themes/theme' as *; @include themed { + .conn-status { + .status-dot { + width: 8px; + height: 8px; + border-radius: 50%; + display: inline-block; + box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.05); + &.online { + background-color: get-color(success); + box-shadow: 0 0 0 2px rgba(82, 196, 26, 0.15); + } + &.offline { + background-color: get-color(error); + box-shadow: 0 0 0 2px rgba(255, 77, 79, 0.15); + } + } + } + .storage-locations { .storage-item { display: flex; diff --git a/src/pages/movement-supervision.vue b/src/pages/movement-supervision.vue index 1767974..0f26059 100644 --- a/src/pages/movement-supervision.vue +++ b/src/pages/movement-supervision.vue @@ -312,6 +312,11 @@ const handleAutoSaveAndRestoreViewState = async () => { //#region UI状态管理 const show = ref(true); //#endregion + +// 返回到父级 iframe 的场景卡片 +const backToCards = () => { + window.parent?.postMessage({ type: 'scene_return_to_cards' }, '*'); +};