yeg
4 天以前 f4d7007b89cf565746af4623623a294b82666ff1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import { compareSelectionKey, type CompareItem } from '@/api/compareReports'
import { measurementChartOption, type ReportMetricKey } from './reportMeasurementChart'
 
/** 完整所选范围作为内部曲线身份,简短图例同名时仍可分别显隐。 */
export function compareSeriesName(item: CompareItem) {
  const source = item.source
  return `${source.name} (#${source.selection.testId}) · ${source.batteryGroup} · ${source.batteryNo} · 循环${source.selection.cycleNo} · ${source.process}`
}
 
/** 页面和打印图例只展示测试名称与电池号。 */
export function compareSeriesLabel(item: CompareItem) {
  return `${item.source.name}-${item.source.batteryNo}`
}
 
/** 对比页面与打印共享冻结测量的绘图口径。 */
export function compareChartOption(metric: { key: ReportMetricKey; unit: string }, items: CompareItem[], colors: string[], hiddenSeriesKeys: string[] = []) {
  const option = measurementChartOption(metric, items.map(item => ({ ...item, name: compareSeriesName(item), hidden: hiddenSeriesKeys.includes(compareSelectionKey(item.source.selection)) })), colors)
  const labels = new Map(items.map(item => [compareSeriesName(item), compareSeriesLabel(item)]))
  return { ...option, legend: { ...option.legend, formatter: (name: string) => labels.get(name) ?? name } }
}