From 80790ccc8b8ee6ac8db201f0f6c2d136fefd5a69 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Sat, 12 Apr 2025 08:52:59 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard

---
 src/views/TaskManage/SearchBox.vue |  106 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 56 insertions(+), 50 deletions(-)

diff --git a/src/views/TaskManage/SearchBox.vue b/src/views/TaskManage/SearchBox.vue
index c04afdc..dfa9c47 100644
--- a/src/views/TaskManage/SearchBox.vue
+++ b/src/views/TaskManage/SearchBox.vue
@@ -21,6 +21,7 @@
           <el-form-item>
             <el-button type="primary" @click="handleSearch">查询</el-button>
             <el-button @click="handleReset">重置</el-button>
+            <el-button @click="addTask">新增任务</el-button>
             <el-button type="text" @click="toggleExpand">
               {{ isExpand ? '收起' : '展开' }}
               <el-icon class="el-icon--right">
@@ -52,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">
@@ -69,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>
@@ -79,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 = () => {
@@ -88,15 +92,15 @@
 
 const dateRange = ref([]);
 const searchForm = reactive({
-  ai_type: '', // 算法类型
+  ai_types: [], // 算法类型
   area_code: '', // 区域code
   create_dept: '', // 创建部门
   date_enum: '', // 日期枚举,可用值:TODAY,CURRENT_WEEK,CURRENT_MONTH,CURRENT_YEAR
   device_sn: '', // 设备编号
-  end_date: '', // 结束时间
+  end_date: null, // 结束时间
   industry_type: '', // 行业key
   key_word: '', // 模糊搜索关键词(匹配名称/昵称/设备sn)
-  start_date: '', // 开始时间
+  start_date: null, // 开始时间
   status: '' // 作业状态
 });
 
@@ -108,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` : null,
+    end_date: dateRange.value.length ? `${dateRange.value[1]} 23:59:59` : null
   });
 };
 
@@ -126,20 +130,31 @@
   handleSearch();
 };
 
-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 addTask = () => {
+  emit('addTask');
 };
 
+// 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 algorithmChange = (val) => {
+  searchForm.ai_types = val;
+};
+
+const businessChange = (val) => {
+  searchForm.industry_type = val;
+};
 
 let deptData = ref([]);
 // 所属部门信息
@@ -156,27 +171,6 @@
 // 机巢
 let machineData = ref([]);
 
-// 处理部门数据为树形结构
-const handleDeptData = (data) => {
-  deptTreeData.value = []; // 初始化数组
-  data.forEach(item => {
-    let treeNode = {
-      id: item.area_code,
-      name: item.area_name,
-      children: []
-    };
-    // 处理设备子节点
-    if (item.devices && item.devices.length > 0) {
-      item.devices.forEach(device => {
-        treeNode.children.push({
-          id: device.device_sn,
-          name: device.nickname
-        });
-      });
-    }
-    deptTreeData.value.push(treeNode);
-  });
-};
 // 部门下得机巢
 const requestDockInfo = () => {
   getDockInfo().then((res) => {
@@ -197,7 +191,7 @@
 
 
 onMounted(() => {
-  requestDictionary();
+  // requestDictionary();
   getDeptsByAreaCode();
   requestDockInfo();
 });
@@ -206,19 +200,20 @@
 <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;
+  // padding: 10px 20px;
   transition: all 0.3s;
   &.is-expand {
     height: auto;
   }
   .search-row {
     display: flex;
-    justify-content: space-between;
+    // justify-content: space-between;
     align-items: center;
     
     .search-items {
@@ -242,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) {
@@ -279,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>
\ No newline at end of file

--
Gitblit v1.9.3