Browse Source

指标管理这一块搞完

wukai 1 week ago
parent
commit
1b311c5da0
2 changed files with 68 additions and 21 deletions
  1. 8 0
      src/api/biz/metrics.js
  2. 60 21
      src/views/biz/metrics/index.vue

+ 8 - 0
src/api/biz/metrics.js

@@ -17,6 +17,14 @@ export function getMetrics(autoId) {
     })
 }
 
+// 数据校验
+export function validateMetrics(autoId) {
+    return request({
+        url: '/biz/metrics/validate?autoId=' + autoId,
+        method: 'get'
+    })
+}
+
 // 新增模型指标配置
 export function addMetrics(data) {
     return request({

+ 60 - 21
src/views/biz/metrics/index.vue

@@ -60,14 +60,18 @@
           <el-table-column type="selection" width="55" align="center"/>
           <el-table-column label="模型名称" align="center" prop="modelName"/>
           <el-table-column label="指标名称" align="center" prop="metricsName"/>
-          <el-table-column label="对象类型" align="center" prop="objType" />
-          <el-table-column label="对象名称" align="center" prop="objName" />
-          <el-table-column label="适用算法类别" align="center" prop="algoType" />
-          <el-table-column label="正态校验结果" align="center" prop="ntr" />
-          <el-table-column label="方差校验结果" align="center" prop="hov" />
+          <el-table-column label="对象类型" align="center" prop="objType"/>
+          <el-table-column label="对象名称" align="center" prop="objName"/>
+          <el-table-column label="适用算法" align="center" prop="algoType">
+            <template #default="scope">
+              <dict-tag :options="algo_type" :value="scope.row.algoType"/>
+            </template>
+          </el-table-column>
+          <el-table-column label="正态校验结果" align="center" prop="ntr"/>
+          <el-table-column label="方差校验结果" align="center" prop="hov"/>
           <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
             <template #default="scope">
-              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改
+              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">配置
               </el-button>
               <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除
               </el-button>
@@ -86,7 +90,7 @@
     </el-row>
     <!-- 添加或修改模型指标配置对话框 -->
     <el-dialog :title="title" v-model="open" width="500px" append-to-body>
-      <el-form ref="metricsRef" :model="form" :rules="rules" label-width="80px">
+      <el-form ref="metricsRef" :model="form" :rules="rules" label-width="120px">
         <el-form-item label="模型名称" prop="modelId">
           <el-tree-select
               v-model="form.modelId"
@@ -99,16 +103,29 @@
           />
         </el-form-item>
         <el-form-item label="指标名称" prop="metricsName">
-          <el-input v-model="form.metricsName" placeholder="请输入指标名称" />
+          <el-input v-model="form.metricsName" placeholder="请输入指标名称" :disabled="true"/>
         </el-form-item>
         <el-form-item label="对象名称" prop="objName">
-          <el-input v-model="form.objName" placeholder="请输入对象名称" />
+          <el-input v-model="form.objName" placeholder="请输入对象名称" :disabled="true"/>
+        </el-form-item>
+        <el-form-item label="适用算法类别" prop="algoType">
+          <el-radio-group v-model="form.algoType" placeholder="请选择适用算法类别">
+            <el-radio
+                v-for="dict in algo_type"
+                :key="dict.value"
+                :label="dict.value"
+            >{{ dict.label }}
+            </el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="数据校验" prop="validate">
+          <el-button type="primary" @click="handleValidate">执行校验</el-button>
         </el-form-item>
         <el-form-item label="正态校验结果" prop="ntr">
-          <el-input v-model="form.ntr" placeholder="请输入正态校验结果" />
+          <el-input v-model="form.ntr" placeholder="" :readonly="true"/>
         </el-form-item>
         <el-form-item label="方差校验结果" prop="hov">
-          <el-input v-model="form.hov" placeholder="请输入方差校验结果" />
+          <el-input v-model="form.hov" placeholder="" :readonly="true"/>
         </el-form-item>
       </el-form>
       <template #footer>
@@ -175,12 +192,20 @@
 </template>
 
 <script setup name="Metrics">
-import {addMetrics, delMetrics, getMetrics, getObjMetrics, listMetrics, updateMetrics} from "@/api/biz/metrics";
+import {
+  addMetrics,
+  delMetrics,
+  getMetrics,
+  getObjMetrics,
+  listMetrics,
+  updateMetrics,
+  validateMetrics
+} from "@/api/biz/metrics";
 import {modelTreeSelect} from "@/api/biz/model";
 import "splitpanes/dist/splitpanes.css"
 
 const {proxy} = getCurrentInstance();
-
+const {algo_type} = proxy.useDict('algo_type');
 const metricsList = ref([]);
 const objMetricsList = ref([]);
 const open = ref(false);
@@ -220,7 +245,11 @@ const data = reactive({
     metricsName: null,
     objName: null
   },
-  rules: {}
+  rules: {
+    algoType: [
+      {required: true, message: "适用算法类别不能为空", trigger: "change"}
+    ],
+  }
 });
 
 const {queryParams, form, rules, msQueryParams} = toRefs(data);
@@ -258,7 +287,6 @@ function handleModelChange(value) {
 /** 根据ID查找模型信息 */
 function findModelById(deptList, id) {
   if (!deptList || !id) return null;
-
   for (let i = 0; i < deptList.length; i++) {
     const dept = deptList[i];
     if (dept.id === id) {
@@ -356,7 +384,6 @@ function handleMsChange(selection) {
 
 /** 新增按钮操作 */
 function handleMsAdd() {
-
   const newList = [];
   for (let i = 0; i < msList.value.length; i++) {
     const item = msList.value[i];
@@ -374,10 +401,6 @@ function handleMsAdd() {
     resetQuery();
   });
   console.log('New list:', newList);
-  // if(msIds.value.length===0) return proxy.$message.error("请选择指标")
-  // await addHmModel(props.hmRow.hlClassId,{ids:hmIds.value.join(",")})
-  // visibleHm.value = false
-  // await getHmList()
 }
 
 /** 新增按钮操作 */
@@ -398,7 +421,7 @@ function handleUpdate(row) {
   getMetrics(_autoId).then(response => {
     form.value = response.data;
     open.value = true;
-    title.value = "修改模型指标配置";
+    title.value = `“${form.value.metricsName}”指标配置`;
   });
 }
 
@@ -435,6 +458,22 @@ function handleDelete(row) {
   });
 }
 
+function handleValidate() {
+  validateMetrics(form.value.autoId).then(response => {
+    proxy.$modal.msgSuccess("校验成功");
+    form.value = response.data;
+  });
+  // console.error(form.value);
+  // const _autoIds = row.autoId || ids.value;
+  // proxy.$modal.confirm('是否确认删除模型指标配置编号为"' + _autoIds + '"的数据项?').then(function () {
+  //   return delMetrics(_autoIds);
+  // }).then(() => {
+  //   getList();
+  //   proxy.$modal.msgSuccess("删除成功");
+  // }).catch(() => {
+  // });
+}
+
 /** 导出按钮操作 */
 function handleExport() {
   proxy.download('biz/metrics/export', {