refactor(event): 重构事件列表和稳态数据视图组件结构

- 将事件列表页面逻辑拆分为 EventListTable 组件
- 新增 MeasurementPointDialog 和 VoltageToleranceDialog 弹窗组件
- 重构稳态数据视图为主工作台组件 SteadyTrendWorkbench
- 移除不再使用的相别参数和相关逻辑
- 更新事件详情工具函数和接口参数映射
- 优化波形查看功能的数据传递方式
- 修正事件描述字段命名和严重程度解析逻辑
This commit is contained in:
2026-05-18 08:46:42 +08:00
parent 609fdd5379
commit f9ed6c6245
39 changed files with 1943 additions and 755 deletions

View File

@@ -42,16 +42,6 @@ export const hasHarmonicIndicator = (indicators: SteadyDataView.SteadyIndicatorN
return indicators.some(item => item.harmonic || Boolean(item.harmonicOrderStart || item.harmonicOrderEnd))
}
export const resolveAvailablePhases = (indicators: SteadyDataView.SteadyIndicatorNode[]) => {
const phaseSet = new Set<string>()
indicators.forEach(indicator => {
indicator.phaseCodes?.forEach(phase => phaseSet.add(phase))
})
return Array.from(phaseSet)
}
export const resolveAvailableStats = (indicators: SteadyDataView.SteadyIndicatorNode[]) => {
const statSet = new Set<SteadyDataView.SteadyTrendStatType>()
@@ -65,18 +55,16 @@ export const resolveAvailableStats = (indicators: SteadyDataView.SteadyIndicator
export const estimateTrendSeriesCount = (
lineIds: string[],
indicators: SteadyDataView.SteadyIndicatorNode[],
phases: string[],
statTypes: SteadyDataView.SteadyTrendStatType[],
harmonicOrders: number[]
) => {
const harmonicMultiplier = hasHarmonicIndicator(indicators) ? Math.max(harmonicOrders.length, 1) : 1
return indicators.reduce((count, indicator) => {
const indicatorPhases = indicator.phaseCodes?.length ? indicator.phaseCodes : phases
const selectedPhaseCount = indicatorPhases.filter(phase => phases.includes(phase)).length || indicatorPhases.length || 1
const phaseCount = indicator.phaseCodes?.length || 1
const fieldCount = Math.max(indicator.seriesFields?.length || indicator.baseFields?.length || 1, 1)
return count + lineIds.length * selectedPhaseCount * Math.max(statTypes.length, 1) * fieldCount * harmonicMultiplier
return count + lineIds.length * phaseCount * Math.max(statTypes.length, 1) * fieldCount * harmonicMultiplier
}, 0)
}
@@ -94,24 +82,22 @@ export const validateHarmonicOrders = (
export const validateTrendSelection = (params: {
lineIds: string[]
indicators: SteadyDataView.SteadyIndicatorNode[]
phases: string[]
statTypes: SteadyDataView.SteadyTrendStatType[]
harmonicOrders: number[]
}) => {
const { lineIds, indicators, phases, statTypes, harmonicOrders } = params
const { lineIds, indicators, statTypes, harmonicOrders } = params
if (!lineIds.length) return '请选择监测点'
if (!indicators.length) return '请选择趋势指标'
if (lineIds.length > 1 && indicators.length > 1) return '多监测点查询时只能选择 1 个指标'
if (!statTypes.length) return '请选择统计类型'
if (!phases.length) return '请选择相别'
const harmonicError = validateHarmonicOrders(indicators, harmonicOrders)
if (harmonicError) return harmonicError
const seriesCount = estimateTrendSeriesCount(lineIds, indicators, phases, statTypes, harmonicOrders)
const seriesCount = estimateTrendSeriesCount(lineIds, indicators, statTypes, harmonicOrders)
if (seriesCount > MAX_TREND_SERIES_COUNT) {
return '趋势曲线数量不能超过 24 条,请缩小监测点、指标、相别或统计类型范围'
return '趋势曲线数量不能超过 24 条,请缩小监测点、指标或统计类型范围'
}
return ''