From aa0bc5d40026bd5e627191466a3e3064f1082c0e Mon Sep 17 00:00:00 2001
From: dengzedong <dengzedong@email>
Date: 星期三, 19 三月 2025 17:17:00 +0800
Subject: [PATCH] 模型名称不能包含下划线 平均绝对误差

---
 .gitignore                             |    1 +
 src/views/model/mpk/file/MpkForm.vue   |    8 +++++++-
 src/views/model/pre/analysis/index.vue |   38 ++++++++++++++++++++++++++++++++++++--
 3 files changed, 44 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore
index 848638a..c43bd2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,7 @@
 node_modules
 .DS_Store
 dist
+plat
 dist-ssr
 /dist*
 pnpm-debug
diff --git a/src/views/model/mpk/file/MpkForm.vue b/src/views/model/mpk/file/MpkForm.vue
index 8dfbae9..fd9fea1 100644
--- a/src/views/model/mpk/file/MpkForm.vue
+++ b/src/views/model/mpk/file/MpkForm.vue
@@ -316,7 +316,13 @@
 
   const formRules = reactive<FormRules>({
     pyName: [
-      {required: true, message: '模型名称不能为空,请上传模型文件', trigger: 'blur'}
+      {required: true, message: '模型名称不能为空,请上传模型文件', trigger: 'blur'},
+      { validator: (rule, value, callback) => {
+          if (value && value.includes('_')) {
+            callback(new Error('模型名称不能包含下划线'));
+          } else {
+            callback();
+          }}, trigger: 'blur' }
     ],
     pyChineseName: [
       {required: true, message: '模型中文名称不能为空', trigger: 'blur'}
diff --git a/src/views/model/pre/analysis/index.vue b/src/views/model/pre/analysis/index.vue
index 35a306b..aa75020 100644
--- a/src/views/model/pre/analysis/index.vue
+++ b/src/views/model/pre/analysis/index.vue
@@ -133,6 +133,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">
@@ -158,6 +163,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>
@@ -249,7 +259,9 @@
   itemPreMax: 0,
   itemPreMin: 0,
   preCumulant: 0,
-  realCumulant: 0
+  realCumulant: 0,
+  deviation: 0, //平均绝对误差
+  deviationCumulant: 0, //累积量平均绝对误差
 })
 let itemData = ref({
   currentTreeList: [],
@@ -720,6 +732,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()
 }
@@ -774,6 +788,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() {
@@ -838,7 +870,9 @@
     itemPreMax: 0,
     itemPreMin: 0,
     preCumulant: 0,
-    realCumulant: 0
+    realCumulant: 0,
+    deviation: 0, //平均绝对误差
+    deviationCumulant: 0, //累积量平均绝对误差
   }
   calRateFormRef.value?.resetFields()
 }

--
Gitblit v1.9.3