Browse Source

feat: 添加条件查询(算法评价记录)

HeWang 8 months ago
parent
commit
7d250b965e
2 changed files with 60 additions and 10 deletions
  1. 59 9
      src/views/AboutView.vue
  2. 1 1
      src/views/ReportView.vue

+ 59 - 9
src/views/AboutView.vue

@@ -10,13 +10,27 @@
                  class="demo-form-inline">
 
           <el-form-item label="算法评价等级">
-            <el-input v-model="queryLine.algorithmLevel" placeholder="请输入算法评价等级" clearable/>
+<!--            <el-input v-model="queryLine.algorithmLevel" placeholder="请输入算法评价等级" clearable/>-->
+            <el-select
+                v-model="selectLevel"
+                placeholder="请选择"
+                size="default"
+                style="width: 180px; "
+                clearable
+            >
+              <el-option
+                  v-for="item in algoLevels"
+                  :key="item"
+                  :label="item"
+                  :value="item"
+              />
+            </el-select>
           </el-form-item>
           <el-form-item>
-            <el-button type="danger" @click="onSubmit">查询</el-button>
+            <el-button type="danger" @click="queryRecordByCondition">查询</el-button>
           </el-form-item>
           <el-form-item>
-            <el-button type="danger" @click="onSubmit">重置</el-button>
+            <el-button type="danger" @click="resetRecord">重置</el-button>
           </el-form-item>
           <div style="float: right">
             <el-form-item>
@@ -26,7 +40,6 @@
               <el-button type="danger" @click="downloadFile('report')" :disabled="multipleSelection.length == 0">下载算法评价报告</el-button>
             </el-form-item>
           </div>
-
         </el-form>
 
       </div>
@@ -152,8 +165,8 @@
         </template>
       </el-dialog>
 
-<!--      <el-button style="margin-left: 10px;" type="primary" @click="goToMain">更换设置并执行</el-button>-->
-      <el-button style="margin-left: 10px;" type="primary" @click="showEvalResult" :disabled="evalResult.length === 0">算法评价结果</el-button>
+<!--      <el-button style="margin-left: 10px;" type="primary" @click="goToMain">更换设置并执行</el-button> :disabled="evalResult.length === 0" -->
+      <el-button style="margin-left: 10px;" type="primary" @click="showEvalResult" >算法评价结果</el-button>
     </el-form-item>
 <!--    <el-form-item label="            ">-->
 <!--      <el-button type="primary" @click="goToAlgorithmEval">算法评价结果</el-button>-->
@@ -207,8 +220,11 @@ console.log("deviceName", deviceName)
 console.log("algoImageName", algoImageName)
 console.log("worldPath", worldPath)
 
-// const testTime = ref("1726113464184")
-const testTime = ref("")
+const selectLevel = ref("")
+const algoLevels = ['较差', '一般', '良好', '优秀']
+
+const testTime = ref("1726113464184")
+// const testTime = ref("")
 
 const resetEvalTableData = ref([])
 
@@ -311,7 +327,10 @@ const showEvalResult = async (value: string) => {
   console.log("sceneId", sceneId)
   if (testTime.value != "") {
     // 查询算法评价记录
-    let response = await axios.get('/local/simulation/query/eval/record?sceneId=' + sceneId + "&testTime=" + testTime.value)
+    let response = await axios.post('/local/simulation/query/test/record', {
+      'scene_id': sceneId,
+      'test_time': testTime.value,
+    })
 
     if (!response.data.status){ // 不存在
       proxy.$message.error("算法评价结果查询失败!");
@@ -329,6 +348,37 @@ const showEvalResult = async (value: string) => {
   }
 }
 
+// 根据条件筛选结果
+// 正常情况下包含分页需要发送请求以根据条件查询数据,但本页面不包含分页且查询条件较少,因此直接通过filter筛选数据以节省网络资源
+const queryRecordByCondition = async () => {
+  // 含分页 - 发送请求
+  // let response = await axios.post('/local/simulation/query/test/record', {
+  //   'scene_id': sceneId,
+  //   'test_time': testTime.value,
+  //   "algo_evaluation_level": selectLevel.value
+  // })
+  //
+  // if (!response.data.status){ // 不存在
+  //   proxy.$message.error("算法评价结果查询失败!");
+  //   return
+  // }
+  // // 解析结果
+  // evalTableData.value = JSON.parse(response.data.details)
+
+  console.log("selectLevel.value", selectLevel.value)
+  // 不含分页 - filter
+  if (selectLevel.value !== "" && selectLevel.value != undefined) { // 查询条件不为空
+    evalTableData.value = resetEvalTableData.value.filter(d => d["algo_evaluation_level"] === selectLevel.value)
+  } else { // 查询条件为空,重置结果
+    resetRecord()
+  }
+}
+
+// 重置结果
+const resetRecord = () => {
+  evalTableData.value = resetEvalTableData.value
+}
+
 const runSimulation = () => {
   // 是否加载默认障碍物
   let random_flag = form.isRandom

+ 1 - 1
src/views/ReportView.vue

@@ -93,7 +93,7 @@
             <span class="el-form-item__label" style="font-size: 14px;">算法镜像选择:</span>
             <el-select
                 v-model="selectImageName"
-                placeholder="Select image"
+                placeholder="请选择"
                 size="default"
                 @click.native="getDockerImages('pji_nav')"
                 style="width: 180px; "