Files
wecom_it_smart_desk/frontend-agent/src/components/assistant/RiskAlert.vue
T

169 lines
4.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- =============================================================================
// 企微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>