Эх сурвалжийг харах

feat: 总任务新增初步完成

WANGKANG 3 сар өмнө
parent
commit
1dbf83a9eb

+ 71 - 20
src/views/demo/algorithmTaskTrack/index.vue

@@ -47,7 +47,7 @@
     <FormDialog ref="formDialogRef" />
     <ImportExcel ref="dialogRef" />
     <el-dialog v-model="dialogVisibleAddTask" title="可辨识性分析总任务新增" width="700" @open="handleOpenAddTask()" :before-close="handleClose">
-      <el-form :model="formAddTask" :rules="rulesAddTask" label-width="auto" style="max-width: 600px">
+      <el-form ref="formAddTaskRef" :model="formAddTask" :rules="rulesAddTask" label-width="auto" style="max-width: 600px">
         <el-form-item label="任务名称" prop="name">
           <el-input v-model="formAddTask.name" placeholder="请输入任务名称" />
         </el-form-item>
@@ -69,26 +69,41 @@
             </el-button>
           </div>
         </el-form-item>
+        <el-form-item label="选择可见光转红外模型" v-show="formAddTask.ifToInfrared" prop="toInfraredModelId">
+          <el-select v-model="formAddTask.toInfraredModelId" placeholder="请选择可见光转红外模型" clearable>
+            <el-option v-for="item in toInfraredModelList" :key="item.value" :label="item.label" :value="item.value" />
+          </el-select>
+        </el-form-item>
         <el-form-item label="选择数据集" prop="inputDatasetOssId">
           <el-select v-model="formAddTask.inputDatasetOssId" placeholder="请选择数据集" clearable>
             <el-option v-for="item in datasetList" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="上传数据集" prop="inputDatasetOssId">
-          <File ref="fileUploadRef" :file-type="['zip']" file-size="4096" @update:model-value="fileUploadDatasetChange" />
+          <File ref="fileUploadRef" :file-type="['zip']" :file-size="4096" @update:model-value="fileUploadDatasetChange" />
         </el-form-item>
-        <el-form-item label="选择视觉算法" prop="visionAlgorithmId">
-          <el-select v-model="formAddTask.visionAlgorithmId" placeholder="请选择视觉算法" clearable>
-            <el-option v-for="item in visionAlgorithmList" :key="item.value" :label="item.label" :value="item.value" />
-          </el-select>
+        <el-form-item label="选择视觉算法" prop="trackSequenceAlgorithmId">
+          <div class="form-item1">
+            <el-select v-model="formAddTask.trackSequenceAlgorithmId" placeholder="请选择视觉算法" clearable>
+              <el-option v-for="item in visionAlgorithmList" :key="item.value" :label="item.label" :value="item.value" />
+            </el-select>
+            <el-button
+              @click="setAlgorithmParams(formAddTask.trackSequenceAlgorithmId, 'trackSequenceAlgorithmParams')"
+              style="margin-left: 10px"
+              :disabled="formAddTask.trackSequenceAlgorithmId == undefined || formAddTask.trackSequenceAlgorithmId == ''"
+            >
+              <SvgIcon :name="'Setting'" style="margin-right: 5px" />
+              设置算法参数
+            </el-button>
+          </div>
         </el-form-item>
-        <el-form-item label="选择目标检测模型" prop="algorithmModel_TD_Id">
+        <el-form-item label="选择目标检测模型" prop="TD_modelId">
           <el-select v-model="formAddTask.TD_modelId" placeholder="请选择目标检测模型" clearable>
             <el-option v-for="item in targetDetectionModelList" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
-        <el-form-item label="选择视觉算法模型" prop="algorithmModel_Vision_Id">
-          <el-select v-model="formAddTask.algorithmModel_Vision_Id" placeholder="请选择视觉算法模型" clearable>
+        <el-form-item label="选择视觉算法模型" prop="trackSequenceModelId">
+          <el-select v-model="formAddTask.trackSequenceModelId" placeholder="请选择视觉算法模型" clearable>
             <el-option v-for="item in visionAlgorithmModelList" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
@@ -96,7 +111,22 @@
           <el-checkbox v-model="formAddTask.ifEvaluate" />
         </el-form-item>
         <el-form-item label="上传真实标签" prop="inputEvaluateLabelOssId" v-show="formAddTask.ifEvaluate">
-          <File ref="fileUploadEvaluateLabelRef" :file-type="['txt']" file-size="4096" @update:model-value="fileUploadChangeEvaluateLabel" />
+          <File ref="fileUploadEvaluateLabelRef" :file-type="['txt']" :file-size="4096" @update:model-value="fileUploadChangeEvaluateLabel" />
+        </el-form-item>
+        <el-form-item label="选择视觉评估算法" prop="trackSequenceEvaluateAlgorithmId" v-show="formAddTask.ifEvaluate">
+          <div class="form-item1">
+            <el-select v-model="formAddTask.trackSequenceEvaluateAlgorithmId" placeholder="请选择视觉评估算法" clearable>
+              <el-option v-for="item in visionEvaluateAlgorithmList" :key="item.value" :label="item.label" :value="item.value" />
+            </el-select>
+            <el-button
+              @click="setAlgorithmParams(formAddTask.trackSequenceEvaluateAlgorithmId, 'trackSequenceEvaluateAlgorithmParams')"
+              style="margin-left: 10px"
+              :disabled="formAddTask.trackSequenceEvaluateAlgorithmId == undefined || formAddTask.trackSequenceEvaluateAlgorithmId == ''"
+            >
+              <SvgIcon :name="'Setting'" style="margin-right: 5px" />
+              设置算法参数
+            </el-button>
+          </div>
         </el-form-item>
         <el-form-item label="备注" prop="remarks">
           <el-input v-model="formAddTask.remarks" placeholder="请输入备注" />
@@ -198,17 +228,26 @@ const handleClose = (done: () => void) => {
     })
 }
 const formAddTask = ref({})
+const formAddTaskRef = ref()
 const addAlgorithmTaskTrack = async () => {
-  console.log('formAddTask: ', formAddTask.value)
-  console.log(fileUploadRef.value.uploadFileListExport)
-  const res = await addAlgorithmTaskTrackApi(formAddTask.value)
-  if (res.code === 200) {
-    ElMessage.success('新增可辨识性分析总任务成功')
-    dialogVisibleAddTask.value = false
-    proTable.value?.getTableList()
-  } else {
-    ElMessage.error('新增可辨识性分析总任务失败')
-  }
+  formAddTaskRef.value
+    .validate()
+    .then(async () => {
+      console.log('formAddTask: ', formAddTask.value)
+      console.log(fileUploadRef.value.uploadFileListExport)
+      const res = await addAlgorithmTaskTrackApi(formAddTask.value)
+      if (res.code === 200) {
+        ElMessage.success('新增可辨识性分析总任务成功')
+        dialogVisibleAddTask.value = false
+        proTable.value?.getTableList()
+      } else {
+        ElMessage.error('新增可辨识性分析总任务失败')
+      }
+    })
+    .catch(() => {
+      console.log('error')
+      ElMessage.error('请检查表单')
+    })
 }
 
 const rulesAddTask = {
@@ -313,6 +352,11 @@ const getDatasetList__ = async () => {
   datasetList.value = await getDatasetList('')
 }
 
+const toInfraredModelList = ref<any[]>([])
+const getToInfraredModelList = async () => {
+  toInfraredModelList.value = await getEnumsAlgorithmModelTrack('可见光转红外')
+}
+
 const visionAlgorithmList = ref<any[]>([])
 const getVisionAlgorithmList = async () => {
   visionAlgorithmList.value = await getEnumsAlgorithmConfigTrack('注释轨迹序列', ['预测/推理'])
@@ -328,11 +372,18 @@ const getVisionAlgorithmModelList = async () => {
   visionAlgorithmModelList.value = await getEnumsAlgorithmModelTrack('注释轨迹序列')
 }
 
+const visionEvaluateAlgorithmList = ref<any[]>([])
+const getVisionEvaluateAlgorithmList = async () => {
+  visionEvaluateAlgorithmList.value = await getEnumsAlgorithmConfigTrack('注释轨迹序列', ['测试'])
+}
+
 const handleOpenAddTask = async () => {
   await getDatasetList__()
+  await getToInfraredModelList()
   await getVisionAlgorithmList()
   await getTargetDetectionModelList()
   await getVisionAlgorithmModelList()
+  await getVisionEvaluateAlgorithmList()
 }
 
 // ProTable 实例