169 lines
4.3 KiB
Vue
169 lines
4.3 KiB
Vue
|
|
<!-- =============================================================================
|
|||
|
|
// 企微IT智能服务台 — 风险提示组件
|
|||
|
|
// =============================================================================
|
|||
|
|
// 说明:显示系统当前已知故障/风险信息
|
|||
|
|
// 第一步:显示"当前无已知故障"占位
|
|||
|
|
// 预留接口,后续从后端获取故障列表
|
|||
|
|
// 红色警告样式预留
|
|||
|
|
// ============================================================================= -->
|
|||
|
|
|
|||
|
|
<template>
|
|||
|
|
<div class="risk-alert-wrapper">
|
|||
|
|
<!-- 正常状态(无故障) -->
|
|||
|
|
<div class="risk-alert-ok">
|
|||
|
|
<div class="risk-alert-ok__icon">✅</div>
|
|||
|
|
<div class="risk-alert-ok__title">当前无已知故障</div>
|
|||
|
|
<div class="risk-alert-ok__desc">
|
|||
|
|
所有系统正常运行
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<!-- 预留的故障列表区域 -->
|
|||
|
|
<!--
|
|||
|
|
后续步骤会从后端获取故障数据,结构如下:
|
|||
|
|
<div v-for="alert in alerts" class="risk-alert-card">
|
|||
|
|
<div class="risk-alert-level">{{ alert.level }}</div>
|
|||
|
|
<div class="risk-alert-title">{{ alert.title }}</div>
|
|||
|
|
<div class="risk-alert-desc">{{ alert.description }}</div>
|
|||
|
|
<div class="risk-alert-time">{{ alert.time }}</div>
|
|||
|
|
</div>
|
|||
|
|
-->
|
|||
|
|
|
|||
|
|
<!-- 风险监控说明 -->
|
|||
|
|
<div class="risk-alert-scope">
|
|||
|
|
<div class="risk-alert-scope__title">
|
|||
|
|
📋 风险监控范围
|
|||
|
|
</div>
|
|||
|
|
<ul class="risk-alert-scope__list">
|
|||
|
|
<li>VPN 网关连通性</li>
|
|||
|
|
<li>邮件系统服务状态</li>
|
|||
|
|
<li>AD 域控制器状态</li>
|
|||
|
|
<li>网络核心设备告警</li>
|
|||
|
|
<li>业务系统可用性</li>
|
|||
|
|
</ul>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<!-- 红色警告样式预留(注释形式,后续启用) -->
|
|||
|
|
<!--
|
|||
|
|
<div class="risk-alert-danger">
|
|||
|
|
<div class="risk-alert-danger__header">
|
|||
|
|
<span class="risk-alert-danger__icon">🔴</span>
|
|||
|
|
<span class="risk-alert-danger__title">VPN 网关异常</span>
|
|||
|
|
</div>
|
|||
|
|
<div class="risk-alert-danger__desc">
|
|||
|
|
VPN 网关 B 节点响应超时,影响华南地区员工连接。
|
|||
|
|
网络组正在排查,预计 30 分钟内修复。
|
|||
|
|
</div>
|
|||
|
|
<div class="risk-alert-danger__time">
|
|||
|
|
🕐 发现时间:2025-01-15 10:30
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
-->
|
|||
|
|
</div>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script setup lang="ts">
|
|||
|
|
// ============================================================================
|
|||
|
|
// 风险提示组件 — 第一步为静态占位
|
|||
|
|
// ============================================================================
|
|||
|
|
// 后续步骤需要:
|
|||
|
|
// 1. 从后端 GET /api/system-alerts 获取故障列表
|
|||
|
|
// 2. 定期轮询(每30秒)
|
|||
|
|
// 3. 有故障时显示红色警告卡片
|
|||
|
|
// 4. 按严重程度排序(P0 > P1 > P2)
|
|||
|
|
// ============================================================================
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style scoped>
|
|||
|
|
.risk-alert-wrapper {
|
|||
|
|
padding: 12px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 正常状态(无故障) */
|
|||
|
|
.risk-alert-ok {
|
|||
|
|
padding: 20px;
|
|||
|
|
text-align: center;
|
|||
|
|
border-radius: 8px;
|
|||
|
|
background-color: var(--success-soft);
|
|||
|
|
border: 1px solid var(--success-soft);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-ok__icon {
|
|||
|
|
font-size: 36px;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-ok__title {
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: var(--color-success);
|
|||
|
|
font-size: 15px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-ok__desc {
|
|||
|
|
color: var(--text-tertiary);
|
|||
|
|
font-size: 12px;
|
|||
|
|
margin-top: 4px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 风险监控说明 */
|
|||
|
|
.risk-alert-scope {
|
|||
|
|
margin-top: 16px;
|
|||
|
|
padding: 12px;
|
|||
|
|
background-color: var(--bg-tertiary);
|
|||
|
|
border-radius: 6px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-scope__title {
|
|||
|
|
font-weight: 500;
|
|||
|
|
color: var(--text-secondary);
|
|||
|
|
font-size: 13px;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-scope__list {
|
|||
|
|
padding-left: 20px;
|
|||
|
|
color: var(--text-tertiary);
|
|||
|
|
font-size: 12px;
|
|||
|
|
line-height: 2;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* 红色警告样式预留 */
|
|||
|
|
/*
|
|||
|
|
.risk-alert-danger {
|
|||
|
|
padding: 16px;
|
|||
|
|
border-radius: 8px;
|
|||
|
|
background-color: var(--danger-soft);
|
|||
|
|
border: 1px solid var(--danger-soft);
|
|||
|
|
margin-bottom: 12px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-danger__header {
|
|||
|
|
display: flex;
|
|||
|
|
align-items: center;
|
|||
|
|
gap: 8px;
|
|||
|
|
margin-bottom: 8px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-danger__icon {
|
|||
|
|
font-size: 20px;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-danger__title {
|
|||
|
|
font-weight: 600;
|
|||
|
|
color: var(--color-danger);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-danger__desc {
|
|||
|
|
color: var(--text-secondary);
|
|||
|
|
font-size: 13px;
|
|||
|
|
line-height: 1.6;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.risk-alert-danger__time {
|
|||
|
|
color: var(--text-tertiary);
|
|||
|
|
font-size: 12px;
|
|||
|
|
margin-top: 8px;
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
</style>
|