style(dashboard): reuse shared loading overlay

This commit is contained in:
caoxiaozhu
2026-06-03 09:43:36 +08:00
parent 0d6327a990
commit d060f89d30
2 changed files with 17 additions and 12 deletions

View File

@@ -1,8 +1,13 @@
<template>
<section class="risk-observation-dashboard" :class="{ 'is-loading': showBlockingLoading }">
<div v-if="showBlockingLoading" class="risk-dashboard-loading-overlay" role="status" aria-live="polite">
<i class="mdi mdi-loading mdi-spin"></i>
<span>{{ loadingLabel }}</span>
<TableLoadingState
:title="loadingLabel"
message="正在同步风险观察、风险等级和近期高风险记录"
icon="mdi mdi-shield-search"
variant="overlay"
motion="loop"
/>
</div>
<article class="panel dashboard-card risk-trend-panel">
<div class="card-head">
@@ -180,6 +185,7 @@ import BarChart from '../charts/BarChart.vue'
import DonutChart from '../charts/DonutChart.vue'
import RiskDailyTrendChart from '../charts/RiskDailyTrendChart.vue'
import EnterpriseSelect from '../shared/EnterpriseSelect.vue'
import TableLoadingState from '../shared/TableLoadingState.vue'
import {
formatRiskDimensionLabel,
formatRiskLevelLabel,
@@ -371,20 +377,13 @@ function openClaim(item) {
place-content: center;
justify-items: center;
gap: 10px;
padding: 24px;
border: 1px solid #e2e8f0;
border-radius: 4px;
background: rgba(248, 250, 252, .82);
color: #334155;
font-size: 13px;
font-weight: 800;
backdrop-filter: blur(2px);
}
.risk-dashboard-loading-overlay i {
color: var(--theme-primary);
font-size: 26px;
}
.risk-observation-dashboard.is-loading .dashboard-card {
pointer-events: none;
}

View File

@@ -1,8 +1,13 @@
<template>
<section class="dashboard" :class="[`dashboard-${activeDashboard}`, { 'is-loading': activeDashboardLoading }]">
<div v-if="activeDashboardLoading" class="dashboard-loading-overlay" role="status" aria-live="polite">
<i class="mdi mdi-loading mdi-spin"></i>
<span>{{ activeDashboardLoadingText }}</span>
<TableLoadingState
:title="activeDashboardLoadingText"
message="正在同步当前看板数据"
icon="mdi mdi-view-dashboard-outline"
variant="overlay"
motion="loop"
/>
</div>
<div class="kpi-grid">
<article
@@ -361,6 +366,7 @@ import SystemUserTokenPie from '../components/charts/SystemUserTokenPie.vue'
import DigitalEmployeeDashboard from '../components/dashboard/DigitalEmployeeDashboard.vue'
import RiskObservationDashboard from '../components/dashboard/RiskObservationDashboard.vue'
import EnterpriseSelect from '../components/shared/EnterpriseSelect.vue'
import TableLoadingState from '../components/shared/TableLoadingState.vue'
import { useOverviewView } from '../composables/useOverviewView.js'