yeg
2026-09-09 4641046ffe58de84d046cb81ad2a90ebb08438eb
src/api/formationReports.ts
@@ -23,11 +23,13 @@
export interface FormationSummary { id: number; name: string; creator: string; createdAt: number; testName?: string; batteryGroup?: string; versionNo: number }
export interface FormationVersion { versionNo: number; operatorName: string; createdAt: number; changeSummary: string }
export interface SavedFormationReport extends FormationSummary, FormationMatrix {
  curvesDeferred?: boolean
  description: string; settings: FormationSettings; versionNo: number; operatorName: string; versionCreatedAt: number; changeSummary: string
  units: Record<string, string>; displayUnits: Record<string, string>
  curveMode?: 'actual-steps'
  calculatedValues: Record<string, number | null>
}
export interface FormationCycleCurve { selection: FormationSelection; curve: { zeroTime: number | null; records: PersistedTestRecord[] } | null }
export interface FormationTemplate { id: number; name: string; type: 'formation'; fields: FormationField[]; creator: string; updatedAt: number }
export interface CreateFormationReport { name: string; description: string; selections: FormationSelection[]; settings: FormationSettings }
@@ -44,6 +46,10 @@
export function getFormationReport(id: number, version?: number, editing = false) {
  return data<SavedFormationReport>(`/${id}${editing ? '/editing' : version === undefined ? '' : `/versions/${version}`}`)
}
/** 只加载首屏固定版本的当前循环;编辑与查看保留独立权限入口。 */
export async function getFormationCycleCurves(id: number, version: number, cycle: number, editing = false, signal?: AbortSignal) {
  return (await request<ApiResponse & { data: FormationCycleCurve[] }>(`${root}/${id}${editing ? '/editing' : ''}/versions/${version}/cycles/${cycle}`, {signal})).data
}
export function editFormationReport(id: number, body: Omit<CreateFormationReport, 'selections'> & { baseVersionNo: number; changeSummary: string }) {
  return data<SavedFormationReport>(`/${id}/versions`, 'POST', body)
}