From 864ee2a6c3d86c6bb3af7eaf31b2390d2970c56e Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 28 九月 2026 16:45:02 +0800
Subject: [PATCH] 项目图表标出循环统计的聚合来源
---
src/components/ConsoleProjectChartPanel.vue | 4 +++-
src/components/ProjectCycleCharts.vue | 3 ++-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/components/ConsoleProjectChartPanel.vue b/src/components/ConsoleProjectChartPanel.vue
index 87813c1..8029c3c 100644
--- a/src/components/ConsoleProjectChartPanel.vue
+++ b/src/components/ConsoleProjectChartPanel.vue
@@ -31,8 +31,10 @@
return capacity === null ? null : toTestDisplayValue('dischargeCapacity', capacity) / capacityFactor.value
}
const hidden = ref<string[]>([])
+// 循环指标可能来自工步层聚合:曲线出自推导值时,图上看得出它是怎么来的。
+const aggregatedCycles = computed(() => props.cycles.some(row => String(row.sourceKind || '') === 'AGGREGATED'))
const projectSeries = computed<ProjectSeries[]>(() => props.cells.map(cell => ({ key: cell.no, name: cell.no, points: cycleLabels.value.map(label => ({ position: Number(label), values: { finalVoltage1: lastStepVoltage(cell.no, Number(label)), dischargeCapacityF: dischargeCapacityPerFactor(cell.no, Number(label)) } })) })))
</script>
<template>
- <ProjectCycleCharts :series="projectSeries" :positions="cycleLabels.map(Number)" :colors="seriesColors" :hidden="hidden" :factor-warning="capacityFactorUnavailable" @hidden-change="hidden = $event" />
+ <ProjectCycleCharts :series="projectSeries" :positions="cycleLabels.map(Number)" :colors="seriesColors" :hidden="hidden" :factor-warning="capacityFactorUnavailable" :aggregated-warning="aggregatedCycles" @hidden-change="hidden = $event" />
</template>
diff --git a/src/components/ProjectCycleCharts.vue b/src/components/ProjectCycleCharts.vue
index 61af209..4ed17a9 100644
--- a/src/components/ProjectCycleCharts.vue
+++ b/src/components/ProjectCycleCharts.vue
@@ -5,13 +5,14 @@
import { GridComponent, LegendComponent, TooltipComponent } from 'echarts/components'
import VChart from 'vue-echarts'
import { projectCycleChartOption, projectMetrics, type ProjectSeries } from '@/utils/projectCycleChart'
-defineProps<{ series: ProjectSeries[]; positions: number[]; colors: string[]; hidden?: string[]; spliced?: boolean; factorWarning?: boolean }>()
+defineProps<{ series: ProjectSeries[]; positions: number[]; colors: string[]; hidden?: string[]; spliced?: boolean; factorWarning?: boolean; aggregatedWarning?: boolean }>()
const emit = defineEmits<{ hiddenChange: [keys: string[]] }>()
use([CanvasRenderer, LineChart, GridComponent, LegendComponent, TooltipComponent])
</script>
<template>
<section class="project-chart-panel">
<p v-if="factorWarning" class="factor-warning" role="status">电池组 F 不可用,未计算对应来源的每循环放电末容量 / F。</p>
+ <p v-if="aggregatedWarning" class="factor-warning" role="status">部分循环统计来源为工步层聚合:设备没有提供循环汇总行,容量由本系统按工步层同方向工步求和得出。</p>
<article v-for="metric in projectMetrics" :key="metric.key" class="project-chart-card"><header><strong>{{ metric.title }}</strong></header><VChart class="project-chart" :option="projectCycleChartOption(metric, series, positions, colors, hidden, spliced)" :update-options="{ notMerge: true }" autoresize @legendselectchanged="emit('hiddenChange', series.filter(item => !$event.selected[item.name]).map(item => item.key))" /></article>
</section>
</template>
--
Gitblit v1.7.1