无人机管理后台前端(已迁走)
张含笑
2025-12-09 5808f76456ca0d40de5074f132b73a5a488e3e13
src/views/algorithmMange/algorithmMange.vue
@@ -1,33 +1,35 @@
<template>
  <div class="algorithmMange">
    <div class="ztzf-search-mange">
    <div class="ztzf-form-search">
      <el-form :model="params" inline>
       <div class="search-contain">
        <div>
        <el-row :gutter="24">
          <el-col :span="4">
          <el-form-item label="算法名称:">
            <el-input v-model="params.algName" placeholder="请输入算法名称" clearable />
          </el-form-item>
          </el-col>
          <el-col :span="4">
          <el-form-item label="算法类型:">
            <el-select class="ztzf-select" :teleported="false" v-model="params.algTypeCode" placeholder="请选择算法类型" clearable>
              <el-option v-for="item in sfTypes" :key="item.id" :label="item.dictValue" :value="item.dictKey" ></el-option>
            </el-select>
          </el-form-item>
        </div>
        <div class="btns">
          </el-col>
          <el-col :span="4">
            <el-button type="primary" @click="getList" :icon="Search">搜索</el-button>
            <el-button @click="cancelSearch" :icon="Delete">清空</el-button>
        </div>
       </div>
          </el-col>
        </el-row>
      </el-form>
    </div>
    <div class="mange-table">
         <el-table border :data="tableList" class="ztzf-table-mange">
            <el-table-column label="序号" type="index" width="60"></el-table-column>
        <el-table-column prop="model_name" label="算法名称" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column prop="alg_name" label="算法名称" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column prop="alg_type" label="算法类型" align="center"></el-table-column>
            <el-table-column prop="qua_rate" label="最低准确率" align="center">
          <template #header>
            <el-tooltip placement="bottom" effect="light" content="AI识别率高于最低准确率时会生成待审核状态的事件">
            <el-tooltip placement="top" effect="dark" content="AI识别率高于最低准确率时会生成待审核状态的事件">
              <el-icon><QuestionFilled /></el-icon>
            </el-tooltip>
            <span>最低准确率</span>
@@ -35,7 +37,7 @@
        </el-table-column>
            <el-table-column prop="pass_rate" label="最高准确率" align="center">
          <template #header>
            <el-tooltip placement="bottom" effect="light" content="AI识别率高于最高准确率时会生成待处理状态的事件">
            <el-tooltip placement="top" effect="dark" content="AI识别率高于最高准确率时会生成待处理状态的事件">
              <el-icon><QuestionFilled /></el-icon>
            </el-tooltip>
            <span>最高准确率</span>
@@ -46,6 +48,7 @@
            {{ scope.row.event_type == 0 ? '常规类' : '紧急类' }}
          </template>
        </el-table-column>
        <el-table-column prop="version" label="算法版本" align="center"/>
            <el-table-column prop="remark" label="算法描述" show-overflow-tooltip />
            <el-table-column label="操作" width="180" align="center">
               <template #default="scope">
@@ -53,9 +56,19 @@
                  <el-button icon="el-icon-edit" type="text" @click="handleEdit(scope.row)">编辑</el-button>
               </template>
            </el-table-column>
        <template #empty>
          <el-empty
            class="custom-empty"
            :image-size="100"
          >
            <template #description>
              <span class="custom-text">暂无数据</span>
            </template>
          </el-empty>
        </template>
         </el-table>
      </div>
      <div class="pagination">
      <div class="pagination" v-if="tableList.length > 0">
         <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
            :page-sizes="[10, 20, 30, 40, 50, 100]" :size="params.size" v-model:current-page="params.current"
            v-model:page-size="params.size" layout="total, sizes, prev, pager, next, jumper" :total="total"
@@ -160,8 +173,8 @@
      validator: (rule, value, callback) => {
        if (!/^\d+(\.\d+)?$/.test(value)) {
          callback(new Error('请输入有效的数字(整数或小数)'));
        } else if (parseFloat(value) < 0.4) {
          callback(new Error('最低准确率不能小于0.4'));
        } else if (parseFloat(value) < 0.1) {
          callback(new Error('最低准确率不能小于0.1'));
        } else if (parseFloat(value) >= parseFloat(editParams.value.pass_rate)) {
          callback(new Error('最低准确率必须小于最高准确率'));
        } else {
@@ -177,8 +190,8 @@
      validator: (rule, value, callback) => {
        if (!/^\d+(\.\d+)?$/.test(value)) {
          callback(new Error('请输入有效的数字(整数或小数)'));
        } else if (parseFloat(value) > 0.8) {
          callback(new Error('最高准确率不能大于0.8'));
        } else if (parseFloat(value) > 1) {
          callback(new Error('最高准确率不能大于1'));
        } else {
          callback();
        }
@@ -281,12 +294,19 @@
    .mange-table {
      height: 0;
      flex: 1;
      margin-top: 18px;
      //margin-top: 18px;
      overflow: auto;
      :deep(.el-scrollbar__view) {
        height: 100%;
      }
      :deep(.el-table--fit,.el-scrollbar__view) {
        height: 100%;
      }
    }
    :deep(.el-pagination) {
      display: flex;
      justify-content: right;
      padding: 20px 0;
    }
    :deep(.el-pagination button) {