From 095582bc5984c8ad0aa468a9518fce6646cbef1d Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 07 九月 2026 17:12:29 +0800
Subject: [PATCH] 拼接表单接入正式来源

---
 src/views/SpliceReportForm.vue |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/views/SpliceReportForm.vue b/src/views/SpliceReportForm.vue
index 2eff6ff..c02d12e 100644
--- a/src/views/SpliceReportForm.vue
+++ b/src/views/SpliceReportForm.vue
@@ -1,6 +1,6 @@
 <script setup lang="ts">
 import { toTestDisplayValue } from '@/utils/testDataUnits'
-import { computed, reactive, ref, watch } from 'vue'
+import { computed, reactive, ref, watch, onMounted } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { useRoute, useRouter } from 'vue-router'
 import { use } from 'echarts/core'
@@ -11,6 +11,7 @@
 import { getCurrentUser } from '@/utils/auth'
 import { useBatteryGroupFields } from '@/stores/batteryGroupFields'
 import { useSpliceReports, type SpliceReportPayload, type SpliceTestSelection } from '@/stores/spliceReports'
+import { getSpliceSources } from '@/api/spliceReports'
 import { formationFixedReportFields, formationMetricDefinitions, type FormationMetricDefinition, type FormationMetricKey } from '@/utils/formationReportPrint'
 
 use([CanvasRenderer, LineChart, GridComponent, LegendComponent, MarkLineComponent, TooltipComponent])
@@ -35,13 +36,18 @@
 const selectedTests = ref<SpliceTestSelection[]>([
   { id: 101, name: 'SP2电池化成测试', type: '化成', durationMinutes: 90 },
 ])
-const candidateTests: SpliceTestSelection[] = [
+const candidateTests = ref<SpliceTestSelection[]>([
   { id: 102, name: '化成后静置测试', type: '静置', durationMinutes: 60 },
   { id: 103, name: '首次容量测试', type: '容量', durationMinutes: 75 },
   { id: 104, name: '常温倍率放电测试', type: '倍率', durationMinutes: 80 },
   { id: 105, name: '恢复容量测试', type: '容量', durationMinutes: 70 },
   { id: 106, name: '循环后静置测试', type: '静置', durationMinutes: 45 },
-]
+])
+onMounted(async () => {
+  const sources = await getSpliceSources()
+  candidateTests.value = sources.map(source => ({ id: source.selection.testId, testBatteryId: source.selection.testBatteryId, name: source.name, type: source.type, durationMinutes: 0 })) as SpliceTestSelection[]
+  if (!editingId.value && candidateTests.value.length) selectedTests.value = [candidateTests.value[0]]
+})
 
 const batteryFields = ref(['额定容量', '内阻'])
 const specialFields = ref(['环境温度'])
@@ -67,7 +73,7 @@
 
 const enabledMetrics = computed(() => formationMetricDefinitions.filter(metric => metricVisible[metric.key]))
 const dynamicDetailFields = computed(() => [...batteryFields.value, ...specialFields.value])
-const selectedCandidate = computed(() => candidateTests.find(item => item.id === selectedCandidateId.value) || null)
+const selectedCandidate = computed(() => candidateTests.value.find(item => item.id === selectedCandidateId.value) || null)
 const batteryFieldOptions = computed(() => [...managedGroupFields.value].sort((a, b) => b.createdAt.localeCompare(a.createdAt)))
 const specialTemplates = computed(() => [
   { key: 'cycle', name: '循环寿命模板', fields: ['容量保持率', '能量效率', '循环次数', '内阻变化'] },

--
Gitblit v1.7.1