| | |
| | | node-key="id" |
| | | ref="treeRef" |
| | | highlight-current |
| | | check-strictly |
| | | :filter-node-method="filterNode" |
| | | @check="onCheckTree"/> |
| | | </div> |
| | |
| | | <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">计算精准度 |
| | |
| | | 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, |
| | |
| | | endTime: formData.value.endTime |
| | | }) |
| | | |
| | | |
| | | const data = await McsApi.getPreDataCharts(params) |
| | | formData.value.predictTime = data.predictTime; |
| | | formData.value.startTime = data.startTime |
| | | formData.value.endTime = data.endTime |
| | | |
| | | // 默认影响时间 |
| | | changeInfluenceFactorTime(data.predictTime); |
| | | |
| | | // 获取影响因素结果列表 |
| | | influenceFactorResultList.value = await influenceFactorApi.getResultList({ |
| | | outIds: outIds, |
| | | startTime: data.startTime, |
| | | endTime: data.endTime |
| | | }) |
| | | |
| | | // 获取影响因素结果列表 |
| | | influenceFactorList.value = await influenceFactorApi.getListByOutId(formData.value.checkedItemData.id) |
| | | if (influenceFactorList.value && influenceFactorList.value.length > 0) { |
| | | // 根据factorOutputId去重,因为不同的统计规则会有重复的影响因素 |
| | | influenceFactorList.value = Array.from(new Map(influenceFactorList.value.map(item => [item.factorOutputId, item])).values()); |
| | | // 默认选中第一个影响因素 |
| | | influenceFactor.value = influenceFactorList.value?.[0]?.factorOutputId |
| | | getInfluenceFactorChart(influenceFactorList.value?.[0]?.factorOutputId) |
| | | } |
| | | |
| | | |
| | | const paramsAlarm = reactive({ |
| | |
| | | suggestList.value = await ScheSuggestApi.getListByOut(paramsAlarm) |
| | | loadingAdjust.value = false |
| | | |
| | | xAxisData = data.categories; |
| | | let xAxisData = data.categories; |
| | | let defaultYAxis = [ |
| | | { |
| | | type: 'value', |
| | |
| | | symbol: ['circle', 'none'], |
| | | }, |
| | | }); |
| | | itemDataObject.value = {} |
| | | yAxisData.push({ |
| | | type: 'value', |
| | | name: "累计值", |
| | |
| | | }) |
| | | for (let i = 0; i < data.dataViewList.length; i++) { |
| | | let dataView = data.dataViewList[i] |
| | | itemDataObject.value[dataView.outId] = dataView; |
| | | let maxValue = dataView.maxValue; |
| | | let minValue = dataView.minValue; |
| | | yAxisIndex = (formData.value.isMultipleY ? i : 0) + 1; |
| | |
| | | function changeInfluenceFactorTime(time) { |
| | | if (time && new Date(time)?.getTime()) { |
| | | influenceFactorResultTime.value = time |
| | | influenceFactorResult.value = influenceFactorResultList.value?.[formData.value.checkedItemData?.id]?.filter(e => e.time === new Date(time).getTime()).sort((a, b) => b.value - a.value) || []; |
| | | influenceFactorResult.value = influenceFactorResultList.value?.[calRateForm.value.calItem]?.filter(e => e.time === new Date(time).getTime()).sort((a, b) => b.value - a.value) || []; |
| | | } |
| | | }// 选择影响因素 |
| | | function changeInfluenceFactor(value) { |
| | |
| | | } |
| | | |
| | | 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].disabled) { |
| | | continue |
| | | } |
| | | formData.value.checkedItemData.push(cns[i]) |
| | | } |
| | | } |
| | | debounce(getList, 1000); |
| | | } |
| | | |
| | |
| | | }, wait) |
| | | } |
| | | |
| | | function calItemBaseVale() { |
| | | const calItemBaseVale = async () => { |
| | | if (!calRateForm.value.calItem) { |
| | | calRateForm.value.itemPreMax = 0; |
| | | calRateForm.value.itemPreMin = 0; |
| | |
| | | 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; |
| | |
| | | calDeviation(dataView.realData,dataView.preDataL,'deviation') |
| | | calDeviation(dataView.cumulantRealData,dataView.cumulantPreData,'deviationCumulant') |
| | | calAccuracyRate() |
| | | |
| | | // 获取影响因素结果列表 |
| | | const outPutId = calRateForm.value.calItem |
| | | influenceFactorResultList.value = await influenceFactorApi.getResultList({ |
| | | outIds: [outPutId], |
| | | startTime: formData.value.startTime, |
| | | endTime: formData.value.endTime |
| | | }) |
| | | |
| | | // 默认影响时间 |
| | | changeInfluenceFactorTime(formData.value.predictTime); |
| | | |
| | | // 获取影响因素列表 |
| | | influenceFactorList.value = await influenceFactorApi.getListByOutId(outPutId) |
| | | if (influenceFactorList.value && influenceFactorList.value.length > 0) { |
| | | // 根据factorOutputId去重,因为不同的统计规则会有重复的影响因素 |
| | | influenceFactorList.value = Array.from(new Map(influenceFactorList.value.map(item => [item.factorOutputId, item])).values()); |
| | | // 默认选中第一个影响因素 |
| | | influenceFactor.value = influenceFactorList.value?.[0]?.factorOutputId |
| | | getInfluenceFactorChart(influenceFactorList.value?.[0]?.factorOutputId) |
| | | }else { |
| | | // 清除历史 |
| | | influenceFactor.value = undefined |
| | | myInfluenceFactorChart.clear() |
| | | } |
| | | } |
| | | } |
| | | |