From d563effe980f0bf25bc1f9bccf60709494eaa000 Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期三, 11 六月 2025 12:44:43 +0800 Subject: [PATCH] 数据分析恢复多选 --- src/views/model/pre/analysis/index.vue | 68 ++++++++++++++++++++------------- 1 files changed, 41 insertions(+), 27 deletions(-) diff --git a/src/views/model/pre/analysis/index.vue b/src/views/model/pre/analysis/index.vue index e377c25..63b67d1 100644 --- a/src/views/model/pre/analysis/index.vue +++ b/src/views/model/pre/analysis/index.vue @@ -69,7 +69,6 @@ node-key="id" ref="treeRef" highlight-current - check-strictly :filter-node-method="filterNode" @check="onCheckTree"/> </div> @@ -79,23 +78,33 @@ <el-form :inline="true" :model="calRateForm" :rules="formRules" ref="calRateFormRef" label-width="108px"> <el-row> -<!-- <el-col :span="6" style="display: flex;align-items: center;justify-content: center">--> -<!-- <span>预测项:{{formData.checkedItemData?.label || ''}}</span>--> -<!-- </el-col>--> - <el-col :span="8"> + <el-col :span="6"> + <el-form-item label="预测项" prop="calItem" style="width: 90%"> + <el-select size="small" v-model="calRateForm.calItem" + @change="calItemBaseVale" + placeholder="请选择"> + <el-option + v-for="itemOut in formData.checkedItemData" + :key="itemOut.id" + :label="itemOut.label" + :value="itemOut.id"/> + </el-select> + </el-form-item> + </el-col> + <el-col :span="6"> <el-form-item label="精准度偏差" prop="IN_DEVIATION"> <el-input-number size="small" v-model="calRateForm.IN_DEVIATION" controls-position="right" :min="0"/> </el-form-item> </el-col> - <el-col :span="8"> + <el-col :span="6"> <el-form-item label="不可信率偏差" prop="OUT_DEVIATION"> <el-input-number size="small" v-model="calRateForm.OUT_DEVIATION" controls-position="right" :min="1"/> </el-form-item> </el-col> - <el-col :span="8"> + <el-col :span="6"> <el-form-item> <el-button size="small" type="primary" plain :loading="loading2" @click="calAccuracyRate">计算精准度 @@ -370,7 +379,7 @@ return data.label.includes(value) } -let xAxisData = [] +// let xAxisData = [] /** 查询列表 */ const getList = async (isClear = true) => { @@ -380,18 +389,19 @@ formData.value.chartCheck = ['真实值'] } let chartCheckArray = formData.value.chartCheck; - if (!formData.value.checkedItemData) { + if (!formData.value.checkedItemData || formData.value.checkedItemData.length == 0) { itemData.value.option = {}; return; } - let outIds = [formData.value.checkedItemData.id] + let outIds = formData.value.checkedItemData.map(item => { + return item.id + }) const params = reactive({ outIds: outIds, predictTime: formData.value.predictTime, startTime: formData.value.startTime, endTime: formData.value.endTime }) - const data = await McsApi.getPreDataCharts(params) formData.value.predictTime = data.predictTime; @@ -432,7 +442,7 @@ suggestList.value = await ScheSuggestApi.getListByOut(paramsAlarm) loadingAdjust.value = false - xAxisData = data.categories; + let xAxisData = data.categories; let defaultYAxis = [ { type: 'value', @@ -1129,21 +1139,16 @@ } function onCheckTree(data, checked, indeterminate) { - // 单选 - treeRef.value.setCheckedKeys([]) - treeRef.value.setCheckedNodes([data]) - - formData.value.checkedItemData = data - calRateForm.value.calItem = data.id - // if (checked.checkedNodes) { - // let cns = [...checked.checkedNodes] - // for (let i = 0; i < cns.length; i++) { - // if (cns[i].id.indexOf('-') !== -1) { - // continue - // } - // formData.value.checkedItemData.push(cns[i]) - // } - // } + formData.value.checkedItemData = []; + if (checked.checkedNodes) { + let cns = [...checked.checkedNodes] + for (let i = 0; i < cns.length; i++) { + if (cns[i].id.indexOf('-') !== -1) { + continue + } + formData.value.checkedItemData.push(cns[i]) + } + } debounce(getList, 1000); } @@ -1168,6 +1173,9 @@ calRateForm.value.itemMin = 0; calRateForm.value.itemAvg = 0; calRateForm.value.realCumulant = 0; + + // 影响因素 + influenceFactorList.value = [] } else { let dataView = itemDataObject.value[calRateForm.value.calItem] calRateForm.value.itemPreMax = dataView.preMax; @@ -1181,6 +1189,12 @@ calDeviation(dataView.realData,dataView.preDataL,'deviation') calDeviation(dataView.cumulantRealData,dataView.cumulantPreData,'deviationCumulant') calAccuracyRate() + + // 影响因素 + // 获取影响因素结果列表 + influenceFactorList.value = influenceFactorApi.getListByOutId(formData.value.checkedItemData.id) + // 根据factorOutputId去重,因为不同的统计规则会有重复的影响因素 + influenceFactorList.value = Array.from(new Map(influenceFactorList.value.map(item => [item.factorOutputId, item])).values()); } } -- Gitblit v1.9.3