From 2cb7fb5ed332bc92e8164da8cc8754d32c8adcd9 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 27 Nov 2025 09:38:34 +0800
Subject: [PATCH] Merge branch 'feature/v8.0/8.0.4' into test

---
 src/views/job/components/DeviceJobDetails.vue |   76 ++++++++++++++++++++++++-------------
 1 files changed, 49 insertions(+), 27 deletions(-)

diff --git a/src/views/job/components/DeviceJobDetails.vue b/src/views/job/components/DeviceJobDetails.vue
index 69e6e52..a53d84c 100644
--- a/src/views/job/components/DeviceJobDetails.vue
+++ b/src/views/job/components/DeviceJobDetails.vue
@@ -113,9 +113,11 @@
 						ref="fullscreenVideo"
 						class="fullscreen-video"
 						:src="currentVideoUrl"
-						:style="{ width: pxToRem(1600), height: '80vh' }"
+						:style="{ width: pxToRem(1567), height: '80vh' }"
 						controls
-						autoplay
+            preload="auto"
+            @play="handleVideoPlay"
+            @ended="handleVideoEnded"
 					></video>
 				</div>
 			</el-dialog>
@@ -169,6 +171,24 @@
 const VideoShow = ref(false)
 const showAll = ref(false) // 是否展示全部
 let loadingData
+const fullscreenVideo = ref(null)
+// 视频播放事件处理
+const handleVideoPlay = (event) => {
+  if (event.target.playbackRate !== 0.75) {
+    event.target.playbackRate = 0.75
+
+  }
+}
+const handleVideoEnded = index => {
+  // 获取当前视频
+  const video = fullscreenVideo.value
+
+  // 重置视频播放时间为 0
+  video.currentTime = 0
+
+  // 重新加载视频
+  video.load()
+}
 // 原图
 const yuanImages = ref([])
 function convertVideoUrlToThumbnail(videoUrl) {
@@ -180,35 +200,37 @@
 	return videoUrl.replace(/\.mp4$/, '_small.jpg')
 }
 const infoList = ref([
-	{ name: '任务编号', value: '', field: 'job_info_num' },
-	{ name: '任务名称', value: '', field: 'name' },
-	{ name: '任务类型', value: '', field: 'industry_type_str' },
-	{ name: '飞行事件', value: '', field: 'event_number' },
-	{ name: '所属机巢', value: '', field: 'device_names' },
-	{ name: '所属部门', value: '', field: 'dept_name' },
-	{ name: '任务时间', value: '', field: 'cycle_time_value' },
-	{ name: '关联算法', value: '', field: 'ai_type_str' },
-	{ name: '任务描述', value: '', field: 'remark' },
+  { name: '任务编号', value: '', field: 'job_info_num' },
+  { name: '任务名称', value: '', field: 'name' },
+  { name: '任务类型', value: '', field: 'industry_type_str' },
+  { name: '飞行事件', value: '', field: 'event_number' },
+  { name: '所属机巢', value: '', field: 'device_names' },
+  { name: '所属部门', value: '', field: 'dept_name' },
+  { name: '任务时间', value: '', field: 'cycle_time_value' },
+  { name: '关联算法', value: '', field: 'ai_type_str' },
   { name: '自定义识别区', value: '', field: 'enable_custom_area' },
-	// { name: '任务执行次数', value: '', field: 'job_num' },
+  { name: '创建人', value: '', field: 'creator_name' },
+  { name: '任务描述', value: '', field: 'remark' },
+  // { name: '任务执行次数', value: '', field: 'job_num' },
 ])
 // 机巢状态
 const flystatus = ref('')
 const detailsData = ref({
-	id: null,
-	remark: null,
-	is_monitoring: null,
-	industry_type_str: null,
-	area_code: null,
-	ai_type_str: null,
-	begin_time: null,
-	end_time: null,
-	device_names: null,
-	create_time: null,
-	name: null,
-	event_number: null,
-	creator_name: null,
-	way_lines: [],
+  id: null,
+  remark: null,
+  is_monitoring: null,
+  industry_type_str: null,
+  area_code: null,
+  ai_type_str: null,
+  enable_custom_area:null,
+  begin_time: null,
+  end_time: null,
+  device_names: null,
+  create_time: null,
+  name: null,
+  event_number: null,
+  creator_name: null,
+  way_lines: [],
 })
 // 任务成果
 const total = ref(0)
@@ -292,7 +314,7 @@
 // 播放
 const videoRef = ref(null);
 const currentVideoIndex = ref(-1)
-const fullscreenVideo = ref(null)
+
 const enterFullScreen = (index) => {
 	currentVideoIndex.value = index
 	VideoShow.value = true

--
Gitblit v1.9.3