forked from drone/command-center-dashboard

chenyao
2025-04-09 cc1aacf766bc902001f460fdfce20a9ec2ea097d
src/views/TaskManage/SearchBox.vue
@@ -53,9 +53,10 @@
          />
        </el-form-item>
        <el-form-item label="任务算法">
          <el-select v-model="searchForm.ai_type" placeholder="请选择算法" clearable>
          <!-- <el-select v-model="searchForm.ai_types" placeholder="请选择算法" clearable>
            <el-option v-for="item in taskAlgorithm" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
          </el-select>
          </el-select> -->
          <TaskAlgorithmBusiness :showAlgorithm="true" @algorithmChange="algorithmChange"/>
        </el-form-item>
      </div>
      <div class="search-row">
@@ -70,9 +71,10 @@
          </el-select>
        </el-form-item>
        <el-form-item label="任务类型">
          <el-select v-model="searchForm.industry_type" placeholder="请选择类型" clearable>
          <!-- <el-select v-model="searchForm.industry_type" placeholder="请选择类型" clearable>
            <el-option v-for="item in taskBusiness" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
          </el-select>
          </el-select> -->
          <TaskAlgorithmBusiness :showBusiness="true" @businessChange="businessChange"/>
        </el-form-item>
      </div>
    </div>
@@ -80,7 +82,8 @@
  </div>
</template>
<script setup>
import { getDictionary, deptsByAreaCode, getDockInfo } from '@/api/home/common';
import { deptsByAreaCode, getDockInfo } from '@/api/home/common';
import TaskAlgorithmBusiness from './components/TaskAlgorithmBusiness.vue';
const isExpand = ref(false);
const toggleExpand = () => {
@@ -89,7 +92,7 @@
const dateRange = ref([]);
const searchForm = reactive({
  ai_type: '', // 算法类型
  ai_types: [], // 算法类型
  area_code: '', // 区域code
  create_dept: '', // 创建部门
  date_enum: '', // 日期枚举,可用值:TODAY,CURRENT_WEEK,CURRENT_MONTH,CURRENT_YEAR
@@ -109,13 +112,13 @@
  { label: '执行失败', value: 5 }
];
const emit = defineEmits(['search']);
const emit = defineEmits(['search','addTask']);
const handleSearch = () => {
  emit('search', {
    ...searchForm,
    start_date: `${dateRange.value[0]} 00:00:00`,
    end_date: `${dateRange.value[1]} 23:59:59`
    start_date: dateRange.value.length ? `${dateRange.value[0]} 00:00:00` : '',
    end_date: dateRange.value.length ? `${dateRange.value[1]} 23:59:59` : ''
  });
};
@@ -129,24 +132,29 @@
// 新增任务
const addTask = () => {
  // 跳转新增任务页面
  window.open('/#/task/add');
  emit('addTask');
};
let taskAlgorithm = ref([]);
let taskBusiness = ref([]);
// let taskAlgorithm = ref([]);
// let taskBusiness = ref([]);
// 请求字典字段
const requestDictionary = () => {
  getDictionary('SF,HYLB').then((res) => {
    if (res.code !== 0) {
      // 处理数据
      taskAlgorithm.value = res.data.data['SF'];
      taskBusiness.value = res.data.data['HYLB'];
    }
  });
// const requestDictionary = () => {
//   getDictionary('SF,HYLB').then((res) => {
//     if (res.code !== 0) {
//       // 处理数据
//       taskAlgorithm.value = res.data.data['SF'];
//       taskBusiness.value = res.data.data['HYLB'];
//     }
//   });
// };
const algorithmChange = (val) => {
  searchForm.ai_types = val;
};
const businessChange = (val) => {
  searchForm.industry_type = val;
};
let deptData = ref([]);
// 所属部门信息
@@ -183,7 +191,7 @@
onMounted(() => {
  requestDictionary();
  // requestDictionary();
  getDeptsByAreaCode();
  requestDockInfo();
});
@@ -192,10 +200,11 @@
<style lang="scss" scoped>
.search-box {
  position: absolute;
  top: 120px;
  left: 450px;
  width: calc(100% - 400px - 400px - 100px);
  top: 340px;
  left: 40px;
  width: calc(100% - 80px);
  height: 60px;
  line-height: 60px;
  background: rgba(31, 62, 122, 0.95);
  // padding: 10px 20px;
  transition: all 0.3s;
@@ -204,7 +213,7 @@
  }
  .search-row {
    display: flex;
    justify-content: space-between;
    // justify-content: space-between;
    align-items: center;
    
    .search-items {
@@ -228,6 +237,7 @@
    z-index: 10;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    margin-bottom: 60px; // 为分页预留空间
  }
  :deep(.el-form) {
@@ -265,5 +275,15 @@
        line-height: 18px;
      }
    }
    :deep(.el-pagination) {
      position: fixed;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(31, 62, 122, 0.95);
      padding: 15px 20px;
      border-radius: 4px;
      box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
    }
}
</style>