| | |
| | | * @Author : yuan |
| | | * @Date : 2026-01-08 09:29:07 |
| | | * @LastEditors : yuan |
| | | * @LastEditTime : 2026-01-08 14:49:09 |
| | | * @LastEditTime : 2026-01-27 14:49:56 |
| | | * @FilePath : \applications\drone-command\src\views\dataCockpit\components\RealWarning.vue |
| | | * @Description : |
| | | * Copyright 2026 OBKoro1, All Rights Reserved. |
| | | * 2026-01-08 09:29:07 |
| | | --> |
| | | <template> |
| | | <div class="real-warning"> |
| | | <RealTemplate v-for="(item, ind) in realWarningData" :key="ind" :data="item" |
| | | @signal="() => console.log('信号干扰', item.id)" @counter="() => console.log('诱导驱离', item.id)" |
| | | @favorite="() => console.log('收藏', item.id)" /> |
| | | <div class="real-warning" v-loading="props.loading" element-loading-background="rgba(5, 5, 15, 0.6)" |
| | | element-loading-text="加载中..."> |
| | | <div class="list-content"> |
| | | <EmptyState v-if="!props.data.length && !props.loading" /> |
| | | <RealTemplate v-else v-for="(item, ind) in props.data" :key="ind" :data="item" |
| | | @signal="emit('signal', item)" @counter="emit('counter', item)" @favorite="emit('favorite', item)" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup> |
| | | import RealTemplate from './templateComponents/RealTemplate.vue' |
| | | import EmptyState from './EmptyState.vue' |
| | | |
| | | const realWarningData = ref([ |
| | | { |
| | | "id": "drone_001", |
| | | "name": "无人机A-01", |
| | | "status": "侦测中", |
| | | "statusType": "detecting", |
| | | "serialNumber": "XLH789456456", |
| | | "dataSource": "侦测反制设备名称", |
| | | "longitude": 113.99238, |
| | | "latitude": 22.541819, |
| | | "frequency": "5800MHz", |
| | | "discoverTime": "14:56:04", |
| | | "altitude": "150m", |
| | | "speed": "5.01m/s", |
| | | "isFavorite": false |
| | | const props = defineProps({ |
| | | data: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | { |
| | | "id": "drone_002", |
| | | "name": "无人机B-07", |
| | | "status": "反制中", |
| | | "statusType": "countering", |
| | | "serialNumber": "XLH789456789", |
| | | "dataSource": "反制设备A区", |
| | | "longitude": 113.99312, |
| | | "latitude": 22.542031, |
| | | "frequency": "2400MHz", |
| | | "discoverTime": "15:02:41", |
| | | "altitude": "120m", |
| | | "speed": "3.86m/s", |
| | | "isFavorite": true |
| | | }, |
| | | { |
| | | "id": "drone_002", |
| | | "name": "无人机B-07", |
| | | "status": "反制中", |
| | | "statusType": "countering", |
| | | "serialNumber": "XLH789456789", |
| | | "dataSource": "反制设备A区", |
| | | "longitude": 113.99312, |
| | | "latitude": 22.542031, |
| | | "frequency": "2400MHz", |
| | | "discoverTime": "15:02:41", |
| | | "altitude": "120m", |
| | | "speed": "3.86m/s", |
| | | "isFavorite": true |
| | | loading: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | ]) |
| | | }) |
| | | |
| | | const emit = defineEmits(['signal', 'counter', 'favorite']) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .real-warning { |
| | | display: flex; |
| | | flex-direction: column; |
| | | width: 100%; |
| | | height: 100%; |
| | | overflow: hidden; |
| | | } |
| | | </style> |
| | | |
| | | .list-content { |
| | | height: 0; |
| | | flex: 1; |
| | | overflow-y: auto; |
| | | } |
| | | </style> |