From 4d2b0aac68e1a531febe4092b01338a2584370f7 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期四, 20 三月 2025 17:47:31 +0800 Subject: [PATCH] 数据分析el-tree filter --- src/views/model/pre/analysis/index.vue | 73 ++++++++++++++++++++++++++++++++---- 1 files changed, 64 insertions(+), 9 deletions(-) diff --git a/src/views/model/pre/analysis/index.vue b/src/views/model/pre/analysis/index.vue index dea20fd..5c75f02 100644 --- a/src/views/model/pre/analysis/index.vue +++ b/src/views/model/pre/analysis/index.vue @@ -58,13 +58,18 @@ <div class="his-body"> <div class="his-body-left"> <div class="his-body-tree"> + <el-input + v-model="filterText" + class="mb-2" + placeholder="Filter" + /> <el-tree :data="treeData" show-checkbox node-key="id" - ref="tree" + ref="treeRef" highlight-current - :props="defaultProps" + :filter-node-method="filterNode" @check="onCheckTree"/> </div> </div> @@ -89,16 +94,14 @@ <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="1" - :max="10"/> + controls-position="right" :min="0"/> </el-form-item> </el-col> <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" - :max="20"/> + :min="1"/> </el-form-item> </el-col> <el-col :span="4"> @@ -135,6 +138,11 @@ {{ calRateForm.preCumulant }} </el-form-item> </el-col> + <el-col :span="4"> + <el-form-item label="平均绝对误差:" label-width="110px"> + {{ calRateForm.deviation }} + </el-form-item> + </el-col> </el-row> <el-row> <el-col :span="4"> @@ -160,6 +168,11 @@ <el-col :span="4"> <el-form-item label="真实累积量:"> {{ calRateForm.realCumulant }} + </el-form-item> + </el-col> + <el-col :span="4"> + <el-form-item label="累积量平均绝对误差:" label-width="152px"> + {{ calRateForm.deviationCumulant }} </el-form-item> </el-col> </el-row> @@ -251,7 +264,9 @@ itemPreMax: 0, itemPreMin: 0, preCumulant: 0, - realCumulant: 0 + realCumulant: 0, + deviation: 0, //平均绝对误差 + deviationCumulant: 0, //累积量平均绝对误差 }) let itemData = ref({ currentTreeList: [], @@ -269,6 +284,17 @@ IN_DEVIATION: [{required: true, message: '精准度偏差不能为空', trigger: 'blur'}], OUT_DEVIATION: [{required: true, message: '不可信率偏差不能为空', trigger: 'blur'}], }) + +// 树形过滤 +const filterText = ref('') +const treeRef = ref() +watch(filterText, (val) => { + treeRef.value!.filter(val) +}) +const filterNode = (value: string, data) => { + if (!value) return true + return data.label.includes(value) +} /** 查询列表 */ const getList = async (isClear = true) => { @@ -546,6 +572,12 @@ tooltip: { trigger: 'axis' }, + toolbox: { + show: true, + feature: { + saveAsImage: {} + } + }, legend: { show: true, data: legendData, @@ -716,6 +748,8 @@ calRateForm.value.itemMin = dataView.hisMin; calRateForm.value.itemAvg = dataView.hisAvg; calRateForm.value.realCumulant = dataView.hisCumulant; + calDeviation(dataView.realData,dataView.preDataL,'deviation') + calDeviation(dataView.cumulantRealData,dataView.cumulantPreData,'deviationCumulant') } calAccuracyRate() } @@ -770,6 +804,24 @@ calRateForm.value.IN_ACCURACY_RATE = Number(rateIn); calRateForm.value.OUT_ACCURACY_RATE = Number(rateOut); loading2.value = false; +} + +function calDeviation(realData,preDataL,key) { + if (realData == null || preDataL == null || realData.length === 0 || preDataL.length === 0) { + return; + } + const realObj = {} + realData.map(e => realObj[e[0]] = e[1]) + + let sum = 0; + let index = 0; + preDataL.forEach(e => { + if (realObj[e[0]] != undefined) { + sum += Math.abs(e[1] - realObj[e[0]]) + index++ + } + }) + calRateForm.value[key] = Number((sum / index).toFixed(2)) } function rightSearchDataByRange() { @@ -834,7 +886,9 @@ itemPreMax: 0, itemPreMin: 0, preCumulant: 0, - realCumulant: 0 + realCumulant: 0, + deviation: 0, //平均绝对误差 + deviationCumulant: 0, //累积量平均绝对误差 } calRateFormRef.value?.resetFields() } @@ -853,7 +907,8 @@ .his-body-tree { height: 100%; border: 1px solid lightgray; - padding: 10px; + padding: 10px 10px 20px 10px; + overflow-y: auto; } .his-body-right { -- Gitblit v1.9.3