| | |
| | | </div> |
| | | |
| | | <div class="content"> |
| | | <component :is="currentComponent" /> |
| | | <RealWarning |
| | | v-if="activeIdModel === 1" |
| | | :data="realWarningData" |
| | | :loading="realWarningLoading" |
| | | @signal="emit('real-warning-signal', $event)" |
| | | @counter="emit('real-warning-counter', $event)" |
| | | @favorite="emit('real-warning-favorite', $event)" |
| | | /> |
| | | <EquipmentWarning v-else-if="activeIdModel === 2" /> |
| | | <HistoryWarning v-else /> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | |
| | | <script setup> |
| | | import TitleTemplate from './templateComponents/TitleTemplate.vue' |
| | | import RealWarning from './RealWarning.vue' |
| | | import EquipmentWarning from './EquipmentWarning.vue' |
| | | import HistoryWarning from './HistoryWarning.vue' |
| | | import { alarmStatisticsApi } from '@/api/dataCockpit' |
| | | import { onMounted } from 'vue' |
| | | import { computed, onMounted, ref } from 'vue' |
| | | import RealWarning from './RealWarning.vue' |
| | | |
| | | const props = defineProps({ |
| | | activeId: { |
| | |
| | | collapsed: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | realWarningData: { |
| | | type: Array, |
| | | default: () => [] |
| | | }, |
| | | realWarningLoading: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }) |
| | | |
| | | const emit = defineEmits(['update:activeId', 'update:collapsed']) |
| | | const emit = defineEmits([ |
| | | 'update:activeId', |
| | | 'update:collapsed', |
| | | 'real-warning-signal', |
| | | 'real-warning-counter', |
| | | 'real-warning-favorite' |
| | | ]) |
| | | |
| | | const activeIdModel = computed({ |
| | | get: () => props.activeId, |
| | |
| | | } |
| | | ]) |
| | | |
| | | const currentComponent = computed(() => { |
| | | return categoryList.value.find(i => i.id === activeIdModel.value)?.component |
| | | }) |
| | | |
| | | const toggleCollapse = () => { |
| | | collapsedModel.value = !collapsedModel.value |
| | | } |
| | |
| | | transition: transform 0.3s ease-in-out; |
| | | |
| | | &.collapsed { |
| | | transform: translateX(-100%); |
| | | transform: translateX(calc(-100% - 17px - 32px)); |
| | | } |
| | | } |
| | | |
| | | .collapse-btn { |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 357px; |
| | | bottom: 454px; |
| | | left: 300px; |
| | | cursor: pointer; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | color: #fff; |
| | | z-index: 10; |
| | | transform: translateY(-50%); |
| | | transform: translateY(50%); |
| | | |
| | | .arrow { |
| | | width: 24px; |
| | | height: 24px; |
| | | width: 36px; |
| | | height: 36px; |
| | | background: url('@/assets/images/dataCockpit/left-btn.png') center / 100% 100% no-repeat; |
| | | } |
| | | |
| | |
| | | .badge { |
| | | position: absolute; |
| | | top: 16px; |
| | | right: 4px; |
| | | right: -4px; |
| | | min-width: 18px; |
| | | line-height: 18px; |
| | | font-size: 12px; |
| | |
| | | height: 0; |
| | | flex: 1; |
| | | margin-top: 20px; |
| | | overflow-x: hidden; |
| | | overflow-y: auto; |
| | | overflow: hidden; |
| | | } |
| | | </style> |