From a3a2c068c595f23c8accda0899ed4577ea44f82d Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期五, 07 三月 2025 09:36:52 +0800 Subject: [PATCH] echarts 保存图片 --- src/views/model/pre/analysis/index.vue | 154 ++++++++++++++++++++++++-------------------------- 1 files changed, 74 insertions(+), 80 deletions(-) diff --git a/src/views/model/pre/analysis/index.vue b/src/views/model/pre/analysis/index.vue index ae8903c..35a306b 100644 --- a/src/views/model/pre/analysis/index.vue +++ b/src/views/model/pre/analysis/index.vue @@ -89,16 +89,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"> @@ -240,8 +238,8 @@ const calRateFormRef = ref() const calRateForm = ref({ calItem: undefined, - IN_DEVIATION: 0, - OUT_DEVIATION: 0, + IN_DEVIATION: 10, + OUT_DEVIATION: 50, IN_ACCURACY_RATE: 0, OUT_ACCURACY_RATE: 0, itemAvg: 0, @@ -487,13 +485,8 @@ let legendName = dataView.resultName + '(预测累计)'; legendData.push(legendName); let seriesLeiJiData = [] - if (dataView.curData) { - let leiJi = 0; - for (let i = 0; i < dataView.curData.length; i++) { - let item = dataView.curData[i]; - leiJi = leiJi + Number(item[1]) - seriesLeiJiData.push([item[0], (leiJi / 60).toFixed(2)]); - } + if (dataView.cumulantPreData) { + seriesLeiJiData = dataView.cumulantPreData } seriesData.push({ name: legendName, @@ -514,21 +507,8 @@ let legendName = dataView.resultName + '(真实累计)'; legendData.push(legendName); let seriesLeiJiData = [] - if (dataView.realData) { - let leiJi = 0; - let lCount = 0 - for (let i = 0; i < dataView.realData.length; i++) { - let item = dataView.realData[i]; - if(new Date(item[0]).getTime() < new Date(formData.value.predictTime).getTime()) { - continue - } - if (lCount > dataView.curData.length) { - continue - } - lCount = lCount + 1 - leiJi = leiJi + Number(item[1]) - seriesLeiJiData.push([item[0], (leiJi / 60).toFixed(2)]); - } + if (dataView.cumulantRealData) { + seriesLeiJiData = dataView.cumulantRealData } seriesData.push({ name: legendName, @@ -563,6 +543,12 @@ }, tooltip: { trigger: 'axis' + }, + toolbox: { + show: true, + feature: { + saveAsImage: {} + } }, legend: { show: true, @@ -602,6 +588,8 @@ } finally { loading1.value = false } + + calItemBaseVale() } onMounted(() => { @@ -690,7 +678,13 @@ function onCheckTree(data, checked, indeterminate) { formData.value.checkedItemData = []; if (checked.checkedNodes) { - formData.value.checkedItemData = [...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); } @@ -727,60 +721,59 @@ calRateForm.value.itemAvg = dataView.hisAvg; calRateForm.value.realCumulant = dataView.hisCumulant; } + calAccuracyRate() } function calAccuracyRate() { - this.$refs['calRateForm'].validate((valid) => { - if (!valid) { - return false - } - let dataView = itemDataObject[calRateForm.value.calItem] - let seriesReaData = dataView.realData; - let seriesPreData = dataView.preDataL; - if (seriesReaData == null || seriesPreData == null || - seriesReaData.length === 0 || seriesPreData.length === 0) { - loading2.value = false; - return; - } - let predictValueMap = {}; - seriesPreData.forEach(function (item) { - predictValueMap[item[0]] = item[1]; - }) - let pointValueMap = {}; - seriesReaData.forEach(function (item) { - pointValueMap[item[0]] = item[1]; - }) - let inDeviation = Number(calRateForm.value.IN_DEVIATION); - let outDeviation = Number(calRateForm.value.OUT_DEVIATION); - if (inDeviation === 0 && outDeviation === 0) { - loading2.value = false; - return; - } - let inDeviationCount = 0; - let outDeviationCount = 0; - let totalCount = 0; - for (let key in predictValueMap) { - let predictValue = predictValueMap[key]; - let pointValue = pointValueMap[key]; - if (pointValue == null || "" === pointValue || predictValue == null || "" === predictValue) { - continue; - } - let deviationAbs = (predictValue - pointValue) >= 0 ? (predictValue - pointValue) : (predictValue - pointValue) * -1; - if (deviationAbs < inDeviation) { - inDeviationCount = inDeviationCount + 1; - } - if (deviationAbs > outDeviation) { - outDeviationCount = outDeviationCount + 1; - } - totalCount = totalCount + 1; - } + const valid = calRateFormRef.value.validate() + if (!valid) return - let rateIn = (inDeviationCount / totalCount * 100).toFixed(2); - let rateOut = (outDeviationCount / totalCount * 100).toFixed(2); - calRateForm.value.IN_ACCURACY_RATE = Number(rateIn); - calRateForm.value.OUT_ACCURACY_RATE = Number(rateOut); + let dataView = itemDataObject.value[calRateForm.value.calItem] + let seriesReaData = dataView.realData; + let seriesPreData = dataView.preDataL; + if (seriesReaData == null || seriesPreData == null || + seriesReaData.length === 0 || seriesPreData.length === 0) { loading2.value = false; + return; + } + let predictValueMap = {}; + seriesPreData.forEach(function (item) { + predictValueMap[item[0]] = item[1]; }) + let pointValueMap = {}; + seriesReaData.forEach(function (item) { + pointValueMap[item[0]] = item[1]; + }) + let inDeviation = Number(calRateForm.value.IN_DEVIATION); + let outDeviation = Number(calRateForm.value.OUT_DEVIATION); + if (inDeviation === 0 && outDeviation === 0) { + loading2.value = false; + return; + } + let inDeviationCount = 0; + let outDeviationCount = 0; + let totalCount = 0; + for (let key in predictValueMap) { + let predictValue = predictValueMap[key]; + let pointValue = pointValueMap[key]; + if (pointValue == null || "" === pointValue || predictValue == null || "" === predictValue) { + continue; + } + let deviationAbs = (predictValue - pointValue) >= 0 ? (predictValue - pointValue) : (predictValue - pointValue) * -1; + if (deviationAbs < inDeviation) { + inDeviationCount = inDeviationCount + 1; + } + if (deviationAbs > outDeviation) { + outDeviationCount = outDeviationCount + 1; + } + totalCount = totalCount + 1; + } + + let rateIn = (inDeviationCount / totalCount * 100).toFixed(2); + let rateOut = (outDeviationCount / totalCount * 100).toFixed(2); + calRateForm.value.IN_ACCURACY_RATE = Number(rateIn); + calRateForm.value.OUT_ACCURACY_RATE = Number(rateOut); + loading2.value = false; } function rightSearchDataByRange() { @@ -834,8 +827,8 @@ } calRateForm.value = { calItem: undefined, - IN_DEVIATION: 0, - OUT_DEVIATION: 0, + IN_DEVIATION: 10, + OUT_DEVIATION: 50, IN_ACCURACY_RATE: 0, OUT_ACCURACY_RATE: 0, itemAvg: 0, @@ -864,7 +857,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