From 60d439f8642197f6f0d736ecbda5c135c7b83aca Mon Sep 17 00:00:00 2001 From: chenjiale Date: Fri, 12 Dec 2025 10:22:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(model):=20=E6=B7=BB=E5=8A=A0=E8=AF=84?= =?UTF-8?q?=E4=BC=B0=E6=8A=A5=E5=91=8A=E6=A0=B7=E6=9C=AC=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在模型训练页面增加样本选择弹窗配置 - 支持训练样本和时间范围两种样本来源 - 实现样本数量输入和有效性校验 - 优化评估报告页面样式和布局 - 调整表格和卡片组件的紧凑显示样式 - 更新图表网格和尺寸配置 - 添加VSCode JSON格式化配置 --- .vscode/settings.json | 5 +- src/views/model/AssessReport.vue | 89 ++++++++-- src/views/model/train/index.vue | 275 ++++++++++++++++++++++++++++--- 3 files changed, 326 insertions(+), 43 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 5c0f4e1..6b39941 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -187,5 +187,8 @@ "enable": true }, "terminal.integrated.scrollback": 10000, - "nuxt.isNuxtApp": false + "nuxt.isNuxtApp": false, + "[json]": { + "editor.defaultFormatter": "vscode.json-language-features" + } } diff --git a/src/views/model/AssessReport.vue b/src/views/model/AssessReport.vue index 73826e1..2aca232 100644 --- a/src/views/model/AssessReport.vue +++ b/src/views/model/AssessReport.vue @@ -112,6 +112,29 @@ export default defineComponent({ description: '', }) + const queryTimeRange = (() => { + const start = route.query.startTime as string + const end = route.query.endTime as string + if (start && end) { + const st = dayjs(start) + const et = dayjs(end) + if (st.isValid() && et.isValid()) + return [st, et] as RangeValue + } + return undefined + })() + if (queryTimeRange) + formModel.timeRange = queryTimeRange + + const sampleType = ref((route.query.sampleType as string) || (queryTimeRange ? 'time' : 'train')) + const sampleCountFromQuery = ref(undefined) + const rawSampleCount = route.query.sampleCount as string + if (rawSampleCount !== undefined) { + const parsed = Number(rawSampleCount) + if (Number.isFinite(parsed)) + sampleCountFromQuery.value = parsed + } + const biasForm = reactive({ absolute: undefined as number | undefined, relative: 0 as number | undefined, @@ -320,12 +343,14 @@ export default defineComponent({ selectedVersion.value = modelInfo?.version || modelInfo?.Cur_Version || formModel.version pointRows.value = (modelInfo?.pointInfo || []).map((item: any, index: number) => normalizePointRow(item, index)) const sampleCount = sumTrainMode(modelInfo?.trainTime) + const finalSampleCount = sampleCountFromQuery.value ?? sampleCount + const sampleLabel = sampleType.value === 'time' ? '时间选择' : '训练样本' modeRows.value = [ { name: '主元个数', content: modelInfo?.principal ?? '' }, { name: '运行模式', content: modelInfo?.alarmmodelset?.alarmname || '全工况运行' }, { name: '模式编码', content: modelInfo?.alarmmodelset?.alarmcondition || '1=1' }, - { name: '样本类型', content: '训练样本' }, - { name: '样本数量', content: sampleCount ?? '--' }, + { name: '样本类型', content: sampleLabel }, + { name: '样本数量', content: finalSampleCount ?? '--' }, ] assess.value = pointRows.value @@ -488,6 +513,7 @@ export default defineComponent({ } })() const condition = baseInfo.value?.alarmmodelset?.alarmcondition || '1=1' + const selectedSampleCount = sampleCountFromQuery.value ?? selected.length return { Test_Data: { @@ -496,7 +522,7 @@ export default defineComponent({ interval: intervalMs, }, Model_id: modelId.value, - number_sample: selected.length || 0, + number_sample: selectedSampleCount || 0, number_fault_variable: selected.length || 0, dead: dead.join(','), limit: limit.join(','), @@ -506,7 +532,7 @@ export default defineComponent({ Test_Type: 'FAI', Limit_Value: limitValue, uplow: uplow.join(';'), - number: 0, + number: selectedSampleCount || 0, expand: !(formModel.timeRange && formModel.timeRange.length === 2), k: baseInfo.value?.principal, version: formModel.version, @@ -730,12 +756,13 @@ export default defineComponent({