From 095582bc5984c8ad0aa468a9518fce6646cbef1d Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 07 九月 2026 17:12:29 +0800
Subject: [PATCH] 拼接表单接入正式来源
---
src/stores/spliceReports.ts | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/stores/spliceReports.ts b/src/stores/spliceReports.ts
index 7bfcfa6..dedd073 100644
--- a/src/stores/spliceReports.ts
+++ b/src/stores/spliceReports.ts
@@ -1,12 +1,17 @@
import { ref } from 'vue'
import { listSpliceReports, createSpliceReport, editSpliceReport, deleteSpliceReport } from '@/api/spliceReports'
-export type SpliceTestSelection = { id:number; name:string; type:string; durationMinutes:number }
+export type SpliceTestSelection = { id:number; testBatteryId?:number; name:string; type:string; durationMinutes:number }
export interface SpliceReportRecord { id:number; name:string; creator:string; createdAt:string; experimentName:string; batteryGroup:string; samples:string[]; tests:SpliceTestSelection[]; batteryFields:string[]; specialFields:string[]; detailFieldValues:Record<string,Record<string,string>>; metrics:string[]; seriesColors:string[] }
export type SpliceReportPayload = Omit<SpliceReportRecord,'id'|'createdAt'>
const records=ref<SpliceReportRecord[]>([])
export function useSpliceReports(){
async function load(){ records.value=(await listSpliceReports()).map(item=>({...item,createdAt:String(item.createdAt)}) as unknown as SpliceReportRecord) }
- async function createReport(data:SpliceReportPayload){await createSpliceReport(data as unknown as Record<string, unknown>);await load()}
+ async function createReport(data:SpliceReportPayload){
+ const selections = data.tests.map(item => ({ testId: item.id, testBatteryId: item.testBatteryId }))
+ if (selections.some(item => !item.testBatteryId)) throw new Error('拼接来源缺少电池身份')
+ await createSpliceReport({ name: data.name, description: data.experimentName, selections, settings: { batteryFields: data.batteryFields, specialFields: data.specialFields, detailFieldValues: data.detailFieldValues, metrics: data.metrics, seriesColors: data.seriesColors } })
+ await load()
+ }
async function updateReport(id:number,data:SpliceReportPayload){await editSpliceReport(id,data as unknown as Record<string, unknown>);await load();return true}
async function removeReport(id:number){await deleteSpliceReport(id);await load()}
return {records,load,createReport,updateReport,removeReport}
--
Gitblit v1.7.1