| | |
| | | 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> |