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