From 72253913e5cd11a05cbd11eb3f76e9989bd0d760 Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Wed, 17 Sep 2025 15:56:56 +0800
Subject: [PATCH] feat:更新数据中心

---
 src/views/flightLog/flightLog.vue |  130 +++++++++++++++++++++++++++----------------
 1 files changed, 82 insertions(+), 48 deletions(-)

diff --git a/src/views/flightLog/flightLog.vue b/src/views/flightLog/flightLog.vue
index 8aeea44..1b94e7c 100644
--- a/src/views/flightLog/flightLog.vue
+++ b/src/views/flightLog/flightLog.vue
@@ -3,6 +3,8 @@
   <div class="flight">
     <div class="search-box">
       <el-form :model="params" inline>
+        <div style="display: flex;justify-content: space-between">
+          <div>
         <el-form-item label="日期:">
           <el-date-picker
             v-model="rangTime"
@@ -10,12 +12,18 @@
             range-separator="至"
             start-placeholder="开始日期"
             end-placeholder="结束日期"
+            clearable
+            @change="changeselect"
           />
         </el-form-item>
+      </div>
+      <div>
         <el-form-item>
           <el-button type="primary" @click="getList">搜索</el-button>
           <el-button @click="cancelSearch">取消</el-button>
         </el-form-item>
+      </div>
+      </div>
       </el-form>
       <div>
         <el-button :type="tabType === '全部'?'primary':'default'" @click="handleAll"><el-icon><Folder /></el-icon>全部</el-button>
@@ -39,12 +47,12 @@
         </el-table-column>
         <el-table-column prop="end_time" label="标签" align="center">
           <template #default="scope">
-            <el-select v-model="scope.row.label_id" @change="handleUpdateLabel">
+            <el-select v-model="scope.row.label_id" @change="handleUpdateLabel(scope.row)">
               <el-option
-                v-for="item in labelList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
+                v-for="item in tagList"
+                :key="item.id"
+                :label="item.label_name"
+                :value="item.id"
               ></el-option>
             </el-select>
           </template>
@@ -52,8 +60,10 @@
 				<el-table-column label="操作" width="200" align="center">
 					<template #default="scope">
             <!-- <el-button icon="el-icon-view" type="text" @click="handleDetail(scope.row)">查看</el-button> -->
-						<!-- <el-button icon="el-icon-delete" type="text" @click="handleDelete">删除</el-button> -->
-            <el-button type="text" @click="handleStar(scope.row)"><el-icon><Star /></el-icon>收藏</el-button>
+						<!-- <el-button icon="el-icon-delete" type="text" @click="handleDelete">删除</el-button> --> 
+            <el-button type="text" @click="handleStar(scope.row)">
+              <el-icon><Star /></el-icon>
+              {{ scope.row.is_favorite ? '取消收藏':'收藏' }}</el-button>
             <el-button type="text" @click="handleExport(scope.row)"><el-icon><Download /></el-icon>导出</el-button>
 					</template>
 				</el-table-column>
@@ -95,60 +105,52 @@
 	</el-dialog> -->
 </template>
 <script setup>
-import { getHistoryTrack, exportFlyLog, addStar, updateDroneFlight } from '@/api/logs';
+import { getHistoryTrack, cancelStar, addStar, updateDroneFlight } from '@/api/logs';
+import { flightLogPage } from '@/api/airspace/airspace';
 import { downloadXls } from '@/utils/util';
+import { exportBlob } from '@/api/common'
+import { ElMessage, ElMessageBox, ElLoading } from 'element-plus';
 
 const total = ref(0)
 let rangTime = ref([])
 const params = ref({
   isFavorite: false,
-  page: '1',
-  page_size: '10',
+  page: 1,
+  page_size: 10,
   startTime: '',
   endTime: '',
 });
 
 let tableList = ref([])
 
-let isShowView = ref(false)
+// let isShowView = ref(false)
 
-let rowView = ref({})
+// let rowView = ref({})
 
-let isShowEditView = ref(false)
+// let isShowEditView = ref(false)
 
 let tabType = ref('全部')
-const ruleFormRef = ref()
-let editParams = ref({
-  model_name: '',
-  alg_type: '',
-  qua_rate: '',
-  pass_rate: '',
-  event_type: '',
-  remark: ''
-})
-
-let labelList = ref([
-  {
-    value: '1',
-    label: '标签1'
-  },
-  {
-    value: '2',
-    label: '标签2'
-  },
-  {
-    value: '3',
-    label: '标签3'
-  },
-])
+// const ruleFormRef = ref()
+// let editParams = ref({
+//   model_name: '',
+//   alg_type: '',
+//   qua_rate: '',
+//   pass_rate: '',
+//   event_type: '',
+//   remark: ''
+// })
 
 function timeFormatConvert(time) {
+  if (!time) return '/'
   const date = new Date(time);
   return date.toLocaleString();
 }
 
 function cancelSearch() {
+  rangTime.value = []
   params.value = {
+    startTime: '',
+    endTime: '',
     isFavorite: false,
     page: '1',
     page_size: '10',
@@ -157,8 +159,13 @@
 }
 
 function getList() {
-  params.value.startTime = rangTime.value[0] ? rangTime.value[0].getTime() : ''
-  params.value.endTime = rangTime.value[1]? rangTime.value[1].getTime() : ''
+  params.value.startTime = rangTime.value?.length ? rangTime.value[0].getTime() : ''
+  params.value.endTime = rangTime.value?.length? new Date(
+    rangTime.value[1].getFullYear(),
+    rangTime.value[1].getMonth(),
+    rangTime.value[1].getDate(),
+    23, 59, 59
+  ).getTime() : ''
   getHistoryTrack(params.value).then(res => {
     tableList.value = res.data.data.list || []
     total.value = res.data.data.pagination.total || 0
@@ -166,7 +173,10 @@
 }
 
 function handleAll() {
+  params.value.isFavorite = false
+  params.value.page = 1
   tabType.value = '全部'
+  getList()
 }
 
 function handleStartList() {
@@ -190,25 +200,42 @@
 
 // 收藏
 function handleStar(row) {
-  addStar({ flight_log_id: row.id }).then(res => {
-    getList()
-  })
+  if (row.is_favorite) {
+    cancelStar(row.id).then(res => {
+      ElMessage.success('取消收藏成功')
+      getList()
+    })
+  } else {
+    addStar({ flight_log_id: row.id }).then(res => {
+      ElMessage.success('收藏成功')
+      getList()
+    })
+  }
 }
 
 // 打标签
 function handleUpdateLabel(row) {
-  updateDroneFlight({ flight_log_id: row.id, states: row.states }).then(res => {
-    getList()
+  updateDroneFlight({ id: row.id, label_id: row.label_id }).then(res => {
+    // getList()
+    ElMessage.success('标签成功')
   })
 }
 
 // 导出
 function handleExport(row) {
-  exportFlyLog({ flight_id: row.id }).then(res => {
-    console.log(res)
-    downloadXls(res.data.data, `${row.job_name}.xls`);
-  })
+  exportBlob(
+        `/drone-device-core/log/droneFlightLogInfo/export/${row.id}`
+      ).then(res => {
+        downloadXls(res.data, `${row.job_name}.xlsx`)
+      })
 }
+
+// 日期选择
+// const changeselect = () => {
+//   params.value.startTime = rangTime.value[0] ? rangTime.value[0].getTime() : ''
+//   params.value.endTime = rangTime.value[1]? rangTime.value[1].getTime() : ''
+//   getList()
+// };
 
 function handleSizeChange(val) {
   params.value.page_size = val
@@ -218,8 +245,15 @@
   params.value.page = val
   getList()
 }
+let tagList = ref([])
+function tagManageList() {
+  flightLogPage({ current:1, size: 99 }).then(res => {
+    tagList.value = res.data.data.records || []
+  })
+}
 
 onMounted(() => {
+  tagManageList()
   getList()
 })
 </script>

--
Gitblit v1.9.3