| | |
| | | <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"> |
| | |
| | | {{ 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"> |
| | |
| | | <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> |
| | |
| | | itemPreMax: 0, |
| | | itemPreMin: 0, |
| | | preCumulant: 0, |
| | | realCumulant: 0 |
| | | realCumulant: 0, |
| | | deviation: 0, //平均绝对误差 |
| | | deviationCumulant: 0, //累积量平均绝对误差 |
| | | }) |
| | | let itemData = ref({ |
| | | currentTreeList: [], |
| | |
| | | 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, |
| | |
| | | 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, |
| | |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | toolbox: { |
| | | show: true, |
| | | feature: { |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | legend: { |
| | | show: true, |
| | |
| | | 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() |
| | | } |
| | |
| | | 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() { |
| | |
| | | itemPreMax: 0, |
| | | itemPreMin: 0, |
| | | preCumulant: 0, |
| | | realCumulant: 0 |
| | | realCumulant: 0, |
| | | deviation: 0, //平均绝对误差 |
| | | deviationCumulant: 0, //累积量平均绝对误差 |
| | | } |
| | | calRateFormRef.value?.resetFields() |
| | | } |
| | |
| | | .his-body-tree { |
| | | height: 100%; |
| | | border: 1px solid lightgray; |
| | | padding: 10px; |
| | | padding: 10px 10px 20px 10px; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .his-body-right { |