Browse Source

feat: 预测效果的数值保留两位小数

sunxiao 1 month ago
parent
commit
90fd97c4bd

+ 9 - 2
src/views/business/comparison/components/echartConfig.js

@@ -1,8 +1,15 @@
+import { formatter } from "element-plus";
+
+function formartNum(num) {
+  if (!num) return num;
+  return Math.floor(num * 100) / 100;
+}
+
 export const getEchartLineOption = ({ xAxisData, echartData, specificData }) => {
   const colors = ["#5B8FF9", "#82c370", "#ffbf59", 'red'];
   const series = echartData.map(({ name, val: data }, index) => ({
     name,
-    data,
+    data: data.map(item => formartNum(item)),
     type: "line",
     showSymbol: false,
     lineStyle: {
@@ -27,7 +34,7 @@ export const getEchartLineOption = ({ xAxisData, echartData, specificData }) =>
       color: colors[0],
     },
     xAxisIndex: 0,
-    data: specificData,
+    data: specificData.map(item => formartNum(item)),
   });
 
   const option = {

+ 36 - 6
src/views/business/comparison/index.vue

@@ -41,6 +41,7 @@
         <el-table-column label="时间" align="center" prop="remark" width="120" />
         <el-table-column label="预测类型" align="center" prop="category" width="120" />
         <el-table-column label="预测1时间" align="center" prop="forecastTimeOne" width="120" />
+
         <el-table-column label="实际1小时值" align="center" prop="realOne" width="120" />
         <el-table-column label="TFT预测1小时值" align="center" prop="hsForecastOne" width="120" />
         <el-table-column label="TFT预测1小时误差值" align="center" prop="hsOneSubtract" width="150" />
@@ -51,7 +52,9 @@
         <el-table-column label="机理模型1小时值" align="center" prop="jlForecastOne" width="130" />
         <el-table-column label="机理模型1小时差值" align="center" prop="jlOneSubtract" width="150" />
         <el-table-column label="机理模型1小时百分比误差" align="center" prop="jlErrorRateOneStr" width="200" />
+
         <el-table-column label="预测2时间" align="center" prop="forecastTimeTwo" width="120" />
+
         <el-table-column label="实际2小时值" align="center" prop="realTwo" width="120" />
         <el-table-column label="TFT预测2小时值" align="center" prop="hsForecastTwo" width="120" />
         <el-table-column label="TFT预测2误差值" align="center" prop="hsTwoSubtract" width="150" />
@@ -62,8 +65,10 @@
         <el-table-column label="机理模型2小时值" align="center" prop="jlForecastTwo" width="130" />
         <el-table-column label="机理模型2小时差值" align="center" prop="jlTwoSubtract" width="150" />
         <el-table-column label="机理模型2小时百分比误差" align="center" prop="jlErrorRateTwoStr" width="200" />
+
         <el-table-column label="预测3时间" align="center" prop="forecastTimeThree" width="120" />
         <el-table-column label="实际3小时值" align="center" prop="realThree" width="120" />
+
         <el-table-column label="TFT预测3小时值" align="center" prop="hsForecastThree" width="120" />
         <el-table-column label="TFT预测3误差值" align="center" prop="hsThreeSubtract" width="120" />
         <el-table-column label="TFT预测3小时百分比误差" align="center" prop="hsErrorRateThreeStr" width="180" />
@@ -243,6 +248,10 @@ export default {
     window.addEventListener('resize', this.windowResize);
   },
   methods: {
+    formartNum(num) {
+      if (!num) return num;
+      return Math.floor(num * 100) / 100;
+    },
     windowResize() {
       echart.resize()
     },
@@ -260,7 +269,6 @@ export default {
       
       Object.keys(data).forEach(key => {
         const len = data[key].data.length;
-        console.log( data[key].data[len - 1] );
         if ( !data[key].data[len - 1] ) {
           data[key].data.pop()
         }
@@ -351,7 +359,6 @@ export default {
 
     /** 查询信义预测对比列表 */
     getList() {
-
       this.loading = true;
       const [begin, end] = this.queryParams.daterange || [];
       let timeBegin = '';
@@ -382,10 +389,33 @@ export default {
           qynh31: '#1缺氧氨氮',
           qynh32: '#2缺氧氨氮'
         }
-        this.comparisonList = response.rows.map(item => ({ 
-          ...item, 
-          category: whiteList[item.category]
-        }));
+        this.comparisonList = response.rows.map(item => {
+          return { 
+            ...item, 
+            category: whiteList[item.category],
+            realOne: this.formartNum(item.realOne),
+            hsForecastOne: this.formartNum(item.hsForecastOne),
+            hsOneSubtract: this.formartNum(item.hsOneSubtract),
+            yyForecastOne: this.formartNum(item.yyForecastOne),
+            yyOneSubtract: this.formartNum(item.yyOneSubtract),
+            jlForecastOne: this.formartNum(item.jlForecastOne),
+            jlOneSubtract: this.formartNum(item.jlOneSubtract),
+            realTwo: this.formartNum(item.realTwo),
+            hsForecastTwo: this.formartNum(item.hsForecastTwo),
+            hsTwoSubtract: this.formartNum(item.hsTwoSubtract),
+            yyForecastTwo: this.formartNum(item.yyForecastTwo),
+            yyTwoSubtract: this.formartNum(item.yyTwoSubtract),
+            jlForecastTwo: this.formartNum(item.jlForecastTwo),
+            jlTwoSubtract: this.formartNum(item.jlTwoSubtract),
+            realThree: this.formartNum(item.realThree),
+            hsForecastThree: this.formartNum(item.hsForecastThree),
+            hsThreeSubtract: this.formartNum(item.hsThreeSubtract),
+            yyForecastThree: this.formartNum(item.yyForecastThree),
+            yyThreeSubtract: this.formartNum(item.yyThreeSubtract),
+            jlForecastThree: this.formartNum(item.jlForecastThree),
+            jlThreeSubtract: this.formartNum(item.jlThreeSubtract)
+          }
+        });
         this.total = response.total;
         this.loading = false;
       });