From f68d351cc9f7869bfd3bff3e7036b7d09db87897 Mon Sep 17 00:00:00 2001 From: wangchengming <15110151257@163.com> Date: Mon, 13 Jul 2026 19:02:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/NuclideReviewModal.vue | 106 ++++++++++------ .../components/Modals/ArrRrrModal.vue | 16 ++- .../components/GammaDetectorCalibration.vue | 113 ++++++++++-------- 3 files changed, 140 insertions(+), 95 deletions(-) diff --git a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue index 9fc8b11..74c71de 100644 --- a/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/AnalyzeInteractiveToolModal/components/NuclideReviewModal.vue @@ -20,13 +20,8 @@
{{ chartItem.title }}
-{{ chartItem.bottom }}
@@ -211,6 +196,7 @@ export default { selectTableRow(index) { this.currSelectedTableIndex = index + console.log('this.list', this.list) let startIndex = 0 let endIndex = 0 if (index == 0) { @@ -273,7 +259,7 @@ export default { const { sampleId, inputFileName: fileName } = this.sampleData let url = '/gamma/nuclideReview' // 根据新需求,首页查询中需要包含其他数据,如果首页跳转则请求另外的接口 20231219:xiao - if(this.page === 'gamma-analysis'){ + if (this.page === 'gamma-analysis') { url = '/gamma/nuclideReviewGamma' } const { success, result, message } = await getAction(url, { @@ -316,23 +302,45 @@ export default { } } - const { chart, halfLife, halfLifeErr, lines, list, name, table } = result + // 1. 解构全部字段,缺失则赋值空默认值,防止解构报错 + const { + chart = [], + halfLife = null, + halfLifeErr = null, + lines = [], + list = [], + name = '', + table = [] + } = result || {}; // 兜底result本身为空的情况(result为null/undefined) + // 基础赋值 this.info = { halfLife, halfLifeErr, lines, name, + }; + + this.list = table; + this.nuclideList = list; + + // 2. 遍历chart前判断数组存在,避免forEach报错 + if (Array.isArray(chart)) { + chart.forEach((chartItem, index) => { + chartItem._index = index; + }); } + this.chartList = chart; - this.list = table - this.nuclideList = list + // 3. 安全取第一个元素:数组有长度才取,否则赋值undefined + this.currNuclide = this.nuclideList.length ? this.nuclideList[0] : undefined; - chart.forEach((chartItem, index) => (chartItem._index = index)) - this.chartList = chart - - this.currNuclide = this.nuclideList[0] - this.selectTableRow(table.length > 1 ? 1 : 0) + // 4. selectTableRow 下标安全兼容,防止table为空时报错 + let targetRowIndex = 0; + if (Array.isArray(table) && table.length > 1) { + targetRowIndex = 1; + } + this.selectTableRow(targetRowIndex); }, // 点击左侧Nuclide切换 @@ -342,7 +350,7 @@ export default { const { sampleId, inputFileName } = this.sampleData let url = '/gamma/changeNuclide' // 根据新需求,首页查询中需要包含其他数据,如果首页跳转则请求另外的接口 20231219:xiao - if(this.page === 'gamma-analysis'){ + if (this.page === 'gamma-analysis') { url = '/gamma/changeNuclideGamma' } const { success, result, message } = await getAction(url, { @@ -350,21 +358,40 @@ export default { nuclideName: this.currNuclide, fileName: inputFileName, }) - if (success) { - const { chart, halfLife, halfLifeErr, lines, name, table } = result + if (success) { + // 1. 兜底result为null/undefined,解构全部字段并设置默认值 + const { + chart = [], + halfLife = null, + halfLifeErr = null, + lines = [], + name = "", + table = [] + } = result || {}; + // 基础赋值 this.info = { halfLife, halfLifeErr, lines, name, + }; + this.list = table; + + // 2. 安全遍历chart,chart不是数组/空数组都不会报错 + if (Array.isArray(chart)) { + chart.forEach((chartItem, index) => { + chartItem._index = index; + }); } + this.chartList = chart; - this.list = table - - chart.forEach((chartItem, index) => (chartItem._index = index)) - this.chartList = chart - this.selectTableRow(table.length > 1 ? 1 : 0) + // 3. 安全计算表格行下标,table非数组时强制下标0 + let targetIndex = 0; + if (Array.isArray(table) && table.length > 1) { + targetIndex = 1; + } + this.selectTableRow(targetIndex); } else { this.$message.error(message) } @@ -414,7 +441,7 @@ export default { border-bottom: 1px solid rgba(12, 235, 201, 0.3); background-color: rgba(12, 235, 201, 0.05); - > span { + >span { color: @primary-color; width: 30px; height: 30px; @@ -526,6 +553,7 @@ export default { &-item { height: 100%; + p { height: 30px; line-height: 30px; diff --git a/src/views/spectrumAnalysis/components/Modals/ArrRrrModal.vue b/src/views/spectrumAnalysis/components/Modals/ArrRrrModal.vue index 7925e35..972c204 100644 --- a/src/views/spectrumAnalysis/components/Modals/ArrRrrModal.vue +++ b/src/views/spectrumAnalysis/components/Modals/ArrRrrModal.vue @@ -1,7 +1,8 @@Gamma Spectrum: QC