From cb7ee6216f6067cc80aab52536ebc9c0f0ba1b7d Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 25 Nov 2025 19:11:12 +0800
Subject: [PATCH] Merge branch 'refs/heads/feature/v8.0/8.0.3' into test

---
 src/views/tickets/component/AddEditDetails.vue |   10 +++--
 src/views/tickets/orderLog.vue                 |   23 +++++------
 src/views/dataCenter/dataCenter.vue            |   21 ++++++++++
 src/views/tickets/component/SearchBox.vue      |   10 ++++-
 src/views/job/components/DeviceJobDetails.vue  |   21 ++++++++++
 src/views/authority/role.vue                   |   14 +++++++
 6 files changed, 79 insertions(+), 20 deletions(-)

diff --git a/src/views/authority/role.vue b/src/views/authority/role.vue
index 9082ed2..85811e3 100644
--- a/src/views/authority/role.vue
+++ b/src/views/authority/role.vue
@@ -24,6 +24,11 @@
                    :props="props">
           </el-tree>
         </el-tab-pane>
+        <el-tab-pane label="大屏菜单">
+          <el-tree :data="menuGrantListOld" show-checkbox node-key="id" ref="treeMenuApp" :default-checked-keys="menuTreeObjOld"
+                   :props="props">
+          </el-tree>
+        </el-tab-pane>
         <!-- <el-tab-pane label="数据权限">
           <el-tree
             :data="dataScopeGrantList"
@@ -82,11 +87,13 @@
       },
       menuGrantList: [],
       menuGrantListApp: [],
+      menuGrantListOld: [],
       dataScopeGrantList: [],
       apiScopeGrantList: [],
       apiGrantList: [],
       menuTreeObj: [],
       menuTreeObjApp: [],
+      menuTreeObjOld: [],
       dataScopeTreeObj: [],
       apiScopeTreeObj: [],
       selectionList: [],
@@ -350,6 +357,13 @@
           this.box = true
         })
       })
+      grantTree({sysType: 2}).then(res => {
+        this.menuGrantListOld = res.data.data.menu
+        getRole(this.ids).then(res => {
+          this.menuTreeObjOld = res.data.data.menu
+          this.box = true
+        })
+      })
     },
     handleDelete () {
       if (this.selectionList.length === 0) {
diff --git a/src/views/dataCenter/dataCenter.vue b/src/views/dataCenter/dataCenter.vue
index 3f150a0..95d19e5 100644
--- a/src/views/dataCenter/dataCenter.vue
+++ b/src/views/dataCenter/dataCenter.vue
@@ -308,7 +308,9 @@
             class="videoBox"
             ref="videoRefs"
             controls
-           
+           preload="auto"
+              @play="handleVideoPlay"
+              @ended="handleVideoEnded(index)"
             :src="currentVideoUrl"
           ></video>
         </div>
@@ -364,6 +366,23 @@
 const currentAreaPosition = ref({ height: 1987280, latitude: 27.636112, longitude: 115.732975 });
 let handler = null;
 const switchFolders = ref(false)
+// 视频播放事件处理
+const handleVideoPlay = (event) => {
+  if (event.target.playbackRate !== 0.75) {
+    event.target.playbackRate = 0.75
+
+  }
+}
+const handleVideoEnded = index => {
+  // 获取当前视频
+  const video = videoRefs.value[index]
+
+  // 重置视频播放时间为 0
+  video.currentTime = 0
+
+  // 重新加载视频
+  video.load()
+}
 function bytesToMB(bytes, decimalPlaces = 2) {
   if (typeof bytes !== 'number' || bytes < 0) return '0';
   return (bytes / 1048576).toFixed(decimalPlaces) + ' MB';
diff --git a/src/views/job/components/DeviceJobDetails.vue b/src/views/job/components/DeviceJobDetails.vue
index 43fd53d..f712736 100644
--- a/src/views/job/components/DeviceJobDetails.vue
+++ b/src/views/job/components/DeviceJobDetails.vue
@@ -115,7 +115,9 @@
 						:src="currentVideoUrl"
 						:style="{ width: pxToRem(1567), height: '80vh' }"
 						controls
-
+            preload="auto"
+            @play="handleVideoPlay"
+            @ended="handleVideoEnded(index)"
 					></video>
 				</div>
 			</el-dialog>
@@ -169,6 +171,23 @@
 const VideoShow = ref(false)
 const showAll = ref(false) // 是否展示全部
 let loadingData
+// 视频播放事件处理
+const handleVideoPlay = (event) => {
+  if (event.target.playbackRate !== 0.75) {
+    event.target.playbackRate = 0.75
+
+  }
+}
+const handleVideoEnded = index => {
+  // 获取当前视频
+  const video = videoRefs.value[index]
+
+  // 重置视频播放时间为 0
+  video.currentTime = 0
+
+  // 重新加载视频
+  video.load()
+}
 // 原图
 const yuanImages = ref([])
 function convertVideoUrlToThumbnail(videoUrl) {
diff --git a/src/views/tickets/component/AddEditDetails.vue b/src/views/tickets/component/AddEditDetails.vue
index 2752d90..e0c0330 100644
--- a/src/views/tickets/component/AddEditDetails.vue
+++ b/src/views/tickets/component/AddEditDetails.vue
@@ -364,12 +364,14 @@
       positions.unshift({latitude: maxItem.latitude, longitude: maxItem.longitude, height:maxItem.drone_height })
       positions.push({latitude: maxItem.latitude, longitude: maxItem.longitude, height:maxItem.drone_height})
       let resultHeight = 0
+      let valueHeight = 0
       await getWaylineMaxTerrainHeight(positions).then(res => {
-        resultHeight = safeHeight.value > (res.data.data + 30) ? safeHeight.value : (res.data.data + 30)
+        resultHeight = (safeHeight.value + maxItem.drone_height) > (res.data.data + 30) ? (safeHeight.value + maxItem.drone_height) : (res.data.data + 30)
+        console.log(resultHeight,maxItem.drone_height, '999')
+        valueHeight = (resultHeight - maxItem.drone_height) > backHeight ? _.round(resultHeight - maxItem.drone_height) : 0
       })
-      let valueHeight = _.round(backHeight - resultHeight, 2)
-      if (valueHeight < 0) {
-        await ElMessageBox.confirm(`当前返航高度存在安全隐患,建议调整为${resultHeight}米以上后进行发布`, '提示', {
+      if (valueHeight > 0) {
+        await ElMessageBox.confirm(`当前返航高度存在安全隐患,建议调整为${valueHeight}米以上后进行发布`, '提示', {
           confirmButtonText: '确定',
           cancelButtonText: '取消',
           type: 'warning'
diff --git a/src/views/tickets/component/SearchBox.vue b/src/views/tickets/component/SearchBox.vue
index 90293a6..05d7d21 100644
--- a/src/views/tickets/component/SearchBox.vue
+++ b/src/views/tickets/component/SearchBox.vue
@@ -115,6 +115,9 @@
 const aiTypeList = inject('aiTypeList')
 
 watch(activeTab, (newTab, oldTab) => {
+  if (newTab === 'all') {
+    searchForm.status = ''
+  }
   if(newTab === 'WAIT_AUDIT') {
     searchForm.status = '1'
   }
@@ -124,7 +127,8 @@
   if(newTab === 'PASS') {
     searchForm.status = '3'
   }
-}, { immediate: true })
+  emit('search', searchForm);
+})
 
 // 周期
 const cycles = ref(['每天', '周一', '周二', '周三', '周四', '周五', '周六', '周末', '周天', '工作日'])
@@ -172,7 +176,9 @@
   searchForm.deal_time = ""
   searchForm.file_id = ""
   searchForm.key_word = ""
-  searchForm.status = ''
+  if (activeTab.value === 'all') {
+    searchForm.status = ''
+  }
   searchForm.rep_fre_type = ''
   dateRange.value = ''
   searchForm.create_start_date = null
diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index 8e580eb..d88bbbb 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -173,17 +173,17 @@
 // tab切换
 function handleTabChange (tab) {
   activeTab.value = tab.paneName
-  orderListParams.status = ''
-  if (tab.paneName === 'WAIT_AUDIT') {
-    orderListParams.status = '1'
-  } else if (tab.paneName === 'REJECTED') {
-    orderListParams.status = '2'
-  } else if (tab.paneName === 'PASS') {
-    orderListParams.status = '3'
-  } else if (tab.paneName === 'DRAFT') {
-    orderListParams.status = '0'
-  }
-  refreshGetOrderList()
+  // orderListParams.status = ''
+  // if (tab.paneName === 'WAIT_AUDIT') {
+  //   orderListParams.status = '1'
+  // } else if (tab.paneName === 'REJECTED') {
+  //   orderListParams.status = '2'
+  // } else if (tab.paneName === 'PASS') {
+  //   orderListParams.status = '3'
+  // } else if (tab.paneName === 'DRAFT') {
+  //   orderListParams.status = '0'
+  // }
+  // refreshGetOrderList()
 }
 
 // 更新统计数
@@ -260,7 +260,6 @@
 const searchClick = params => {
   orderListParams.current = 1
   orderListParams.size = 10
-  console.log('333', params)
   orderListParams.searchParams = params
   getTableList()
 }

--
Gitblit v1.9.3