73 lines
1.4 KiB
Vue
73 lines
1.4 KiB
Vue
<script setup lang="ts">
|
||
import NetworkPanel from '@/components/NetworkPanel.vue'
|
||
import { useMonitoringData } from '@/composables/useMonitoringData'
|
||
|
||
const { network, errorMessage, headerStatus } = useMonitoringData()
|
||
</script>
|
||
|
||
<template>
|
||
<div class="page-shell">
|
||
<header class="page-header">
|
||
<div>
|
||
<p class="eyebrow">Network</p>
|
||
<h1>网络状态页面</h1>
|
||
</div>
|
||
<p class="description">
|
||
当前先展示模拟网络遥测数据,后续只需要把后端采集函数替换成真实 C 输出,就能保留同样的渲染界面。
|
||
</p>
|
||
</header>
|
||
|
||
<section class="banner" :class="{ error: !!errorMessage }">
|
||
{{ headerStatus }}
|
||
</section>
|
||
|
||
<NetworkPanel :network="network" />
|
||
</div>
|
||
</template>
|
||
|
||
<style scoped>
|
||
.page-shell {
|
||
display: grid;
|
||
gap: 22px;
|
||
}
|
||
|
||
.page-header {
|
||
display: grid;
|
||
gap: 10px;
|
||
}
|
||
|
||
.eyebrow {
|
||
margin: 0;
|
||
color: #4dd4ac;
|
||
text-transform: uppercase;
|
||
letter-spacing: 0.14em;
|
||
font-size: 12px;
|
||
font-weight: 700;
|
||
}
|
||
|
||
h1 {
|
||
margin: 0;
|
||
font-size: clamp(28px, 4vw, 48px);
|
||
}
|
||
|
||
.description,
|
||
.banner {
|
||
margin: 0;
|
||
color: #d5dbee;
|
||
line-height: 1.75;
|
||
}
|
||
|
||
.banner {
|
||
padding: 14px 16px;
|
||
border-radius: 18px;
|
||
background: rgba(11, 19, 35, 0.84);
|
||
border: 1px solid rgba(133, 147, 169, 0.2);
|
||
}
|
||
|
||
.banner.error {
|
||
color: #ffd0d0;
|
||
border-color: rgba(255, 107, 107, 0.28);
|
||
}
|
||
</style>
|
||
|