fix: KPI总览调整指标
This commit is contained in:
@@ -42,7 +42,7 @@ interface ChartDataItem {
|
|||||||
const tableLoading = ref(false);
|
const tableLoading = ref(false);
|
||||||
const rangeLoading = ref(false);
|
const rangeLoading = ref(false);
|
||||||
//网元类型定义
|
//网元类型定义
|
||||||
const ALL_NE_TYPES = ['AMF', 'SMF', 'UPF', 'MME', 'IMS', 'SMSC'] as const;
|
const ALL_NE_TYPES = ['AMF', 'UPF', 'IMS'] as const;
|
||||||
type NeType = (typeof ALL_NE_TYPES)[number];
|
type NeType = (typeof ALL_NE_TYPES)[number];
|
||||||
|
|
||||||
echarts.use([
|
echarts.use([
|
||||||
@@ -119,12 +119,16 @@ const toggleRealtime = () => {
|
|||||||
|
|
||||||
// 定义要筛选的指标 ID,按网元类型组织
|
// 定义要筛选的指标 ID,按网元类型组织
|
||||||
const TARGET_KPI_IDS: Record<NeType, string[]> = {
|
const TARGET_KPI_IDS: Record<NeType, string[]> = {
|
||||||
AMF: ['AMF.02', 'AMF.03', 'AMF.A.07', 'AMF.A.08'],
|
AMF: ['AMF.02', 'AMF.03'],
|
||||||
SMF: ['SMF.02', 'SMF.03', 'SMF.04', 'SMF.05'],
|
UPF: ['UPF.04', 'UPF.05'],
|
||||||
UPF: ['UPF.03', 'UPF.04', 'UPF.05', 'UPF.06'],
|
IMS: ['SCSCF.03', 'SCSCF.04', 'SCSCF.05', 'SCSCF.06', 'SCSCF.07', 'SCSCF.08'],
|
||||||
MME: ['MME.A.01', 'MME.A.02', 'MME.A.03'],
|
|
||||||
IMS: ['SCSCF.01', 'SCSCF.02', 'SCSCF.05', 'SCSCF.06'],
|
// AMF: ['AMF.02', 'AMF.03', 'AMF.A.07', 'AMF.A.08'],
|
||||||
SMSC: ['SMSC.A.01', 'SMSC.A.02', 'SMSC.A.03'],
|
// SMF: ['SMF.02', 'SMF.03', 'SMF.04', 'SMF.05'],
|
||||||
|
// UPF: ['UPF.03', 'UPF.04', 'UPF.05', 'UPF.06'],
|
||||||
|
// MME: ['MME.A.01', 'MME.A.02', 'MME.A.03'],
|
||||||
|
// IMS: ['SCSCF.01', 'SCSCF.02', 'SCSCF.05', 'SCSCF.06'],
|
||||||
|
// SMSC: ['SMSC.A.01', 'SMSC.A.02', 'SMSC.A.03'],
|
||||||
};
|
};
|
||||||
|
|
||||||
// 实时数据开关函数
|
// 实时数据开关函数
|
||||||
@@ -186,13 +190,15 @@ const wsMessage = (res: Record<string, any>) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const { code, data } = res;
|
const { code, data } = res;
|
||||||
if (code === RESULT_CODE_ERROR || !data?.groupId) return;
|
if (code === RESULT_CODE_ERROR || !data?.groupId) {
|
||||||
|
tableLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
handleWebSocketMessage(data.data);
|
handleWebSocketMessage(data.data);
|
||||||
};
|
};
|
||||||
// 添加数据处理函数
|
// 添加数据处理函数
|
||||||
const processChartData = (rawData: any[]) => {
|
const processChartData = (rawData: any[]) => {
|
||||||
const groupedData = new Map<string, any>(); //数据按时间分组
|
const groupedData = new Map<string, any>(); //数据按时间分组
|
||||||
|
|
||||||
rawData.forEach(item => {
|
rawData.forEach(item => {
|
||||||
//合并相同时间点的数据
|
//合并相同时间点的数据
|
||||||
const timeKey = item.timeGroup;
|
const timeKey = item.timeGroup;
|
||||||
@@ -755,7 +761,22 @@ const kpiStats = ref<KPIStats[]>([]);
|
|||||||
// 添加一个计算函数来更新统计数据
|
// 添加一个计算函数来更新统计数据
|
||||||
const updateKpiStats = () => {
|
const updateKpiStats = () => {
|
||||||
if (!chartData.value.length || !kpiColumns.value.length) {
|
if (!chartData.value.length || !kpiColumns.value.length) {
|
||||||
kpiStats.value = [];
|
kpiStats.value = selectedKPIs.value.map(kpiId => {
|
||||||
|
// 找到对应的KPI标题
|
||||||
|
let title = kpiId;
|
||||||
|
const kpi = kpiColumns.value.find(col => col.kpiId === kpiId);
|
||||||
|
if (kpi) {
|
||||||
|
title = kpi.title;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
kpiId: kpiId,
|
||||||
|
title: title,
|
||||||
|
max: 0,
|
||||||
|
min: 0,
|
||||||
|
avg: 0,
|
||||||
|
total: 0,
|
||||||
|
};
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
kpiStats.value = selectedKPIs.value
|
kpiStats.value = selectedKPIs.value
|
||||||
@@ -983,6 +1004,7 @@ const tableRowConfig = computed(() => {
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
/* 基础布局样式 */
|
||||||
.kpi-overview {
|
.kpi-overview {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
}
|
}
|
||||||
@@ -1096,12 +1118,10 @@ const tableRowConfig = computed(() => {
|
|||||||
background-color: rgba(24, 144, 255, 0.2) !important;
|
background-color: rgba(24, 144, 255, 0.2) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
[data-theme='dark'] :deep(.selected-row:hover) {
|
:deep(.ant-checkbox-wrapper) {
|
||||||
background-color: rgba(24, 144, 255, 0.3) !important;
|
width: 100%;
|
||||||
}
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
/* 鼠标悬停样式 */
|
white-space: nowrap;
|
||||||
:deep(.ant-table-tbody tr:hover) {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user