yeg
2026-09-07 63edfe987ecbbe7442ddb1314bd0f7beada49edf
src/api/spliceReports.ts
@@ -26,12 +26,14 @@
export function createSpliceTemplate(name:string,fields:SpliceField[]){return data<number>('/templates','POST',{name,fields})}
export function updateSpliceTemplate(id:number,name:string,fields:SpliceField[]){return data<void>(`/templates/${id}`,'PUT',{name,fields})}
/** 优先读取冻结字段结构;早期版本仅有字段名时保留原展示。 */
export function spliceFields(settings: SpliceSettings): SpliceField[] {
  return settings.fieldStructure ?? [
    ...(settings.batteryFields ?? []).map(name => ({ name, category: 'battery' as const, displayName: name, unit: '' })),
    ...(settings.specialFields ?? []).map(name => ({ name, category: 'special' as const, displayName: name, unit: '' })),
  ]
}
/** 人工填写优先;未填写时取首个来源的冻结共享字段,空字符串仍视为人工值。 */
export function spliceFieldValue(segments: SpliceSegment[], settings: SpliceSettings, field: SpliceField, battery: string) {
  const manual = settings.detailFieldValues?.[field.name]?.[battery]
  if (manual !== undefined) return manual
@@ -39,6 +41,7 @@
    field.fieldDefinitionId ? field.fieldDefinitionId === value.fieldDefinitionId : field.name === value.fieldName)
  return field.category === 'battery' ? business?.fieldValue ?? '' : ''
}
/** 人工统计绑定测试电池和原循环身份,来源重排不改变归属。 */
export function spliceStatisticKey(segment: SpliceSegment, cycle: number, metric: string) {
  return `${segment.source.selection.testId}|${segment.source.selection.testBatteryId}|${cycle}|${metric}`
}