From c832bf2e80ac465e71b7a1c1f7a59d4252030989 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 05 Aug 2025 17:33:08 +0800
Subject: [PATCH] feat:事件工单滚动条

---
 src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 insertions(+), 3 deletions(-)

diff --git a/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue b/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
index c30beb7..8a16eff 100644
--- a/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
+++ b/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
@@ -10,13 +10,26 @@
 							'0') }}
 					</template>
 				</el-table-column>
-				<el-table-column prop="job_info_num" label="任务编号" show-overflow-tooltip align="center" />
-				<el-table-column prop="name" label="任务名称" show-overflow-tooltip align="center" />
+        <el-table-column prop="job_info_num" label="任务编号" width="160">
+          <template #default="scope">
+            <el-tooltip-copy :content="scope.row.job_info_num" :showCopyText="true">
+              {{scope.row.job_info_num}}
+            </el-tooltip-copy>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="任务编号" width="160">
+          <template #default="scope">
+            <el-tooltip-copy :content="scope.row.name" :showCopyText="true">
+              {{scope.row.name}}
+            </el-tooltip-copy>
+          </template>
+        </el-table-column>
 				<el-table-column prop="dept_name" label="所属部门" width="200" align="center" />
 				<el-table-column prop="device_names" label="所属机巢" />
 				<el-table-column prop="ai_type_str" label="关联算法" show-overflow-tooltip align="center" />
 				<el-table-column label="任务状态" align="center">
 					<template #default="scope">
+						<div class="base_f_c_c">
 						<span :style="{
 							color:
 								scope.row.status === 1
@@ -33,6 +46,16 @@
 						}">
 							{{ scope.row.status ? getStatusText(scope.row.status) : '' }}
 						</span>
+						<el-tooltip
+								class="item"
+								effect="dark"
+								:content="scope.row.reason"
+								placement="top"
+								popper-class="reasonNotFly ztzf-tooltip-box1"
+							>
+								<el-icon v-if="scope.row.status === 5 && scope.row.reason" color="#FF4848"><QuestionFilled /></el-icon>
+							</el-tooltip>
+						</div>
 					</template>
 				</el-table-column>
 				<el-table-column prop="is_circle_job" label="任务类型" align="center">
@@ -90,12 +113,14 @@
 import SearchBox from '../SearchBox.vue'
 import AddTask from './AddTask.vue'
 // import CurrentTaskDetails from '@/components/CurrentTaskDetails/CurrentTaskDetails.vue'
-import { jobList, cancelJobs, taskReturnLines, returnHomeCluster } from '@/api/job/task'
+import { jobList, cancelJobs, taskReturnLines, returnHomeCluster, statusChangedApi } from '@/api/job/task';
 import { ElMessage } from 'element-plus'
 import DeviceJobDetails from '../DeviceJobDetails.vue'
 import CancelTaskDialog from '../CancelTaskDialog.vue'
 import { useStore } from 'vuex'
 import { cloneDeep } from 'lodash'
+import { inject, onBeforeUnmount } from 'vue';
+import ElTooltipCopy from '@/components/ElTooltipCopy.vue';
 const store = useStore()
 const singleUavHome = computed(() => store.state.home.singleUavHome)
 const jobListParams = reactive({
@@ -218,6 +243,33 @@
 	})
 }
 
+function handleCellClick(row, column) {
+	if (column.no === 1) {
+		navigator.clipboard.writeText(row.job_info_num).then(() => {
+			ElMessage.success('复制任务编号成功')
+		})
+	} else if (column.no === 2) {
+		navigator.clipboard.writeText(row.name).then(() => {
+			ElMessage.success('复制任务名称成功')
+		})
+	}
+}
+
+
+const changeKey = inject('changeKey')
+// 轮询查询是否刷新
+const polling = setInterval(async () => {
+  const res = await statusChangedApi()
+  if (res.data.data.DEVICE_REFRESH || res.data.data.JOB_REFRESH) {
+    getJobList()
+    changeKey.value++
+  }
+}, 4000)
+
+onBeforeUnmount(() => {
+  clearInterval(polling)
+})
+
 onMounted(() => {
 	// getJobList()
 })

--
Gitblit v1.9.3