From 5808f76456ca0d40de5074f132b73a5a488e3e13 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 09 Dec 2025 09:12:03 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v9.0/9.0.1' into test

---
 src/views/dataCenter/components/searchData.vue |  113 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 89 insertions(+), 24 deletions(-)

diff --git a/src/views/dataCenter/components/searchData.vue b/src/views/dataCenter/components/searchData.vue
index eba767a..8a4b29c 100644
--- a/src/views/dataCenter/components/searchData.vue
+++ b/src/views/dataCenter/components/searchData.vue
@@ -1,9 +1,11 @@
 <template>
   <div class="search-box-test">
     <el-form :model="searchForm" inline>
-      <div class="search-first">
-        <el-form-item label="行政区划:">
+      <el-row :gutter="24">
+        <el-col :span="4">
+        <el-form-item label="行政区划:" >
           <el-tree-select
+          :disabled="viewDetailsDisabled"
             popper-class="custom-tree-select"
             v-model="searchForm.areaCode"
             :data="deptTreeData"
@@ -14,12 +16,16 @@
             @node-click="handleNodeClick"
           />
         </el-form-item>
+        </el-col>
+          <el-col :span="4">
         <el-form-item label="所属机巢:">
           <el-select
+          :disabled="viewDetailsDisabled"
             :teleported="false"
             v-model="searchForm.deviceSn"
             placeholder="请选择"
             clearable
+            @change="handleSearch"
           >
             <el-option
               v-for="item in machineData"
@@ -29,11 +35,16 @@
             />
           </el-select>
         </el-form-item>
+          </el-col>
+        <el-col :span="4">
         <el-form-item label="任务名称:">
-          <el-input v-model="searchForm.jobName" placeholder="请输入" clearable />
+          <el-input  :disabled="viewDetailsDisabled" v-model="searchForm.jobName" placeholder="请输入" clearable />
         </el-form-item>
-        <el-form-item>
+        </el-col>
+        <el-col :span="8">
+        <el-form-item label="选择日期:">
           <el-date-picker
+           :disabled="viewDetailsDisabled"
             popper-class="custom-date-picker"
             v-model="dateRange"
             type="daterange"
@@ -56,12 +67,16 @@
             }"
           />
         </el-form-item>
+        </el-col>
+        <el-col :span="4">
         <el-form-item label="文件格式:">
           <el-select
+          :disabled="foldersDisabled || viewDetailsDisabled"
             :teleported="false"
             v-model="searchForm.resultType"
             placeholder="请选择"
             clearable
+             @change="handleSearch"
           >
             <el-option
               v-for="item in fileFormatOption"
@@ -72,14 +87,18 @@
             />
           </el-select>
         </el-form-item>
+        </el-col>
+        <el-col :span="4">
         <el-form-item label="文件类别:">
           <el-select
-            :disabled="disabled"
+
+            :disabled="disabled || foldersDisabled || viewDetailsDisabled"
             :teleported="false"
             v-model="searchForm.photoType"
             placeholder="请选择"
             clearable
             @clear="changePhotoType"
+             @change="handleSearch"
           >
             <el-option
               v-for="item in CategoryOption"
@@ -89,21 +108,23 @@
             />
           </el-select>
         </el-form-item>
-      </div>
-      <div class="search-first">
+        </el-col>
+        <el-col :span="4">
         <el-form-item label="文件名称:">
-          <el-input v-model="searchForm.name" placeholder="请输入" clearable />
+          <el-input :disabled="foldersDisabled || viewDetailsDisabled" v-model="searchForm.name" placeholder="请输入" clearable />
         </el-form-item>
-        <div class="search-btn">
-          <el-button type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
-          <el-button icon="el-icon-refresh" @click="handleReset">清空</el-button>
-        </div>
-      </div>
+        </el-col>
+        <el-col :span="4">
+          <el-button :disabled="viewDetailsDisabled" type="primary" icon="el-icon-search" @click="handleSearch">搜索</el-button>
+          <el-button :disabled="viewDetailsDisabled" icon="el-icon-refresh" @click="handleReset">清空</el-button>
+        </el-col>
+      </el-row>
       <div class="search-first">
         <div class="search-btn">
 <!--          <el-button type="primary" icon="el-icon-download" @click="allDownloadFun"-->
 <!--            >全部下载</el-button-->
 <!--          >-->
+        <el-button v-if="!viewDetailsDisabled" type="primary" plain  @click="handleswitchFolders" ><el-icon><FolderOpened /></el-icon></el-button>
           <div class="downloadBtn" @click="htsjzx === 100 && downloadFun()">
             <el-progress v-if="htsjzx !== 100" :percentage="htsjzx" :show-text="false" striped striped-flow :duration="1" />
             <div class="downloadBtnText">
@@ -113,6 +134,7 @@
               </template>
             </div>
           </div>
+           <el-button v-if="viewDetailsDisabled" type="primary" plain  @click="handleBack" >返回</el-button>
         </div>
       </div>
     </el-form>
@@ -132,13 +154,13 @@
 const userAreaCode = computed(() => store.getters.userInfo.detail.areaCode);
 const selectedAreaCode = computed(() => store.state.user.selectedAreaCode);
 const htsjzx = computed(() => store.state.common.downloadProgress?.htsjzx || 100)
-
-const emit = defineEmits(['search', 'downFun', 'allDownFun']);
+const emit = defineEmits(['search', 'Reset','downFun', 'allDownFun','handleswitchFolders','handleBack']);
 const startTime = dayjs().subtract(6, 'day').startOf('day');
 const endTime = dayjs().endOf('day');
 const timeRange = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')];
 const dateRange = ref(timeRange);
 const timeFormat = 'YYYY-MM-DD HH:mm:ss';
+const props = defineProps(['searchjobId','switchFolders','viewDetails'])
 const searchForm = reactive({
   jobName: '', //任务名称
   name: '', //文件名称
@@ -148,6 +170,7 @@
   deviceSn: '', // 所属机巢
   resultType: '', //文件格式
   photoType: '', //文件类别
+  wayLineJobId:''
 });
 const disabled = ref(false);
 const treeProps = {
@@ -204,6 +227,26 @@
   },
   { deep: true }
 );
+watch(() => props.searchjobId, (newVal) => {
+  searchForm.wayLineJobId = newVal;
+  handleSearch()
+});
+const foldersDisabled  = ref(false)
+watch(() => props.switchFolders, (newVal) => {
+if(newVal === true){
+  foldersDisabled.value = true
+}else{
+   foldersDisabled.value = false
+}
+});
+const viewDetailsDisabled  = ref(false)
+watch(() => props.viewDetails, (newVal) => {
+if(newVal === true){
+  viewDetailsDisabled.value = true
+}else{
+   viewDetailsDisabled.value = false
+}
+});
 const changePhotoType =(val)=>{
 if(val === undefined){
   searchForm.photoType = ''
@@ -236,14 +279,13 @@
     // 更新搜索表单中的时间
     searchForm.startTime = start.format(timeFormat);
     searchForm.endTime = end.format(timeFormat);
+    handleSearch()
   }
-
 };
 // 部门下得机巢
 const requestDockInfo = () => {
   getRegionTreeAll({ parentCode: userAreaCode.value }).then(res => {
     deptTreeData.value = res.data.data ? [res.data.data] : [];
-
     handleNodeClick({ id: userAreaCode.value });
   });
 };
@@ -251,18 +293,18 @@
   // 处理机巢数据
   searchForm.deviceSn = '';
   machineData.value = '';
-
   const droneList = await getDeviceRegion({ areaCode: data.id });
-
   machineData.value = droneList?.data?.data;
+
   // 默认选中值
   if (signDevice_sn.value) {
     searchForm.deviceSn = signDevice_sn.value;
   }
   // 所属部门重新请求值
-
   deptData.value = [];
   getDeptsByAreaCode();
+  handleSearch();
+
 };
 // 所属部门信息
 const getDeptsByAreaCode = () => {
@@ -300,8 +342,10 @@
   searchForm.deviceSn = '';
   searchForm.resultType = '';
   searchForm.photoType = '';
+  searchForm.wayLineJobId=''
   handleNodeClick({ id: userAreaCode.value });
   handleSearch();
+   emit('Reset', searchForm);
 };
 // 下载
 const downloadFun = () => {
@@ -315,16 +359,29 @@
 function cancelDownload() {
   cancelDownloadApi({ type:'htsjzx' }).then(res =>{
     ElMessage.success('取消成功')
+  }).catch(e =>{
+    EventBus.emit('useGlobalWS-messageHandler', {biz_code: 'DOWNLOAD_PROGRESS',data:{status: 'CANCELLED',type:'htsjzx'}})
   })
 }
-
+// 切换文件夹
+const handleswitchFolders =()=>{
+  emit('handleswitchFolders');
+}
+// 返回按钮
+const handleBack = ()=>{
+  emit('handleBack');
+}
 onMounted(() => {
   requestDockInfo();
   getDownloadStatusApi({type: 'htsjzx'}).then(res =>{
     if (!['CANCELLED','COMPLETED'].includes(res.data.data?.status || 'COMPLETED')){
-      EventBus.emit('useDownloadWs-messageHandler',res.data.data)
+      EventBus.emit('useGlobalWS-messageHandler',res.data.data)
     }
   })
+});
+
+defineExpose({
+  handleReset,
 });
 </script>
 
@@ -341,9 +398,12 @@
     justify-content: space-between;
 
     .search-btn {
+    display: flex;
+    align-items: center;
       margin-right: 32px;
 
       .downloadBtn{
+      margin:0 10px;
         position: relative;
         display: flex;
         align-items: center;
@@ -421,12 +481,17 @@
     }
 
     .el-form-item {
-      margin-bottom: 0;
-      width: 233px;
+      //margin-bottom: 0;
+      width: 100%;
 
       .el-form-item__label {
         color: #363636;
         line-height: 32px;
+        width: 80px;
+      }
+      .el-form-item__content {
+        display: flex;
+        flex: 1;
       }
     }
   }

--
Gitblit v1.9.3