From 987cb959286674aea227210070934492346bdd95 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 16 Apr 2025 16:55:39 +0800
Subject: [PATCH] feat: 当前任务详情50%
---
src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue | 56 ++++++++++++++++++++++++++++++++++----------------------
1 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue b/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue
index 2b3276d..fc29ad6 100644
--- a/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue
+++ b/src/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/CurrentTaskDetails.vue
@@ -9,16 +9,19 @@
:destroy-on-close="true"
>
<div class="content-container" v-if="isShow">
- <TaskDetailsHead/>
- <TaskDetailsLeft/>
<!-- 视频直播 -->
<div class="video-container">
- <LiveVideo :videoUrl="currentLiveUrl" />
+ <LiveVideo :videoUrl="currentLiveUrl" :controls="false" />
</div>
<!-- 展示地图 -->
<RealTimeMap class="realTimeMap" />
- <ControlPanel />
-<!-- <ControlPanel v-if="deviceOsdInfo?.data?.sn" />-->
+ <TaskDetailsRight v-if="isAutoControl" />
+ <template v-else>
+ <TaskDetailsHead />
+ <TaskDetailsLeft />
+ </template>
+ <!-- 控制面板,里面有方法需要立即执行,不可用v-if -->
+ <ControlPanel v-show="!isAutoControl" />
</div>
</el-dialog>
</template>
@@ -33,10 +36,14 @@
import { getWebsocketUrl } from '@/websocket/util/config'
import { useConnectWebSocket } from '@/utils/websocket/connect-websocket'
import { EBizCode } from '@/utils/staticData/enums'
-import ControlPanel from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/ControlPanel.vue'
-import { KeyCode } from '@/hooks/controlDrone/useManualControl'
+import ControlPanel from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/ControlPanel/ControlPanel.vue'
import TaskDetailsHead from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/TaskDetailsHead.vue'
import TaskDetailsLeft from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/TaskDetailsLeft.vue'
+import TaskDetailsRight from '@/views/TaskManage/TaskIntermediateContent/CurrentTaskDetails/TaskDetailsRight.vue'
+import { ElMessage } from 'element-plus'
+
+const isAutoControl = ref(true)
+provide('isAutoControl', isAutoControl)
const isShow = defineModel('show')
const props = defineProps({
@@ -46,14 +53,12 @@
default: () => ({}),
},
})
-let taskDetails = ref({})
const currentLiveUrl = ref('')
const machineNestUrl = ref('')
-
const droneLiveUrl = ref('')
-provide('taskDetails', taskDetails)
-
+let taskDetails = ref({})
const deviceOsdInfo = ref({})
+provide('taskDetails', taskDetails)
provide('deviceOsdInfo', deviceOsdInfo)
// 机巢直播
@@ -89,7 +94,8 @@
getJobDetails({ wayLineJobInfoId: props.rowData.id }).then(async res => {
taskDetails.value = res.data.data
currentLiveUrl.value = await getDeviceLiveUrl()
- createWsConnect(taskDetails.value.way_lines[0].workspace_id)
+ taskDetails.value.workspace_id = taskDetails.value.way_lines[0]?.workspace_id
+ createWsConnect()
})
}
@@ -106,25 +112,31 @@
break
}
}
+
+// 创建ws连接
let connectWs
-const createWsConnect = workspaceId => {
+const createWsConnect = () => {
+ const workspaceId = taskDetails.value.workspace_id
+ if (!workspaceId) return
let webSocketUrl = getWebsocketUrl() + '&workspace-id=' + workspaceId
// 监听ws 消息
connectWs = useConnectWebSocket(messageHandler, webSocketUrl)
}
+
+watch(
+ () => taskDetails.value.workspace_id,
+ () => {
+ createWsConnect()
+ }
+)
const removeEvent = () => {
connectWs?.close()
deviceOsdInfo.value = {}
}
-// 监听 rowData 变化
-watch(isShow, newVal => {
- if (newVal) {
- getTaskDetails()
- } else {
- removeEvent()
- }
+onMounted(() => {
+ getTaskDetails()
})
onBeforeUnmount(() => {
@@ -144,10 +156,12 @@
width: 1782px;
height: 1002px;
padding: 0;
+
.el-dialog__body {
width: 100%;
height: 100%;
}
+
.el-dialog__header {
height: 0;
overflow: hidden;
@@ -178,8 +192,6 @@
width: 100%;
height: 100%;
}
-
-
.realTimeMap {
position: absolute;
--
Gitblit v1.9.3