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 | 107 ++++++++++++++++++++++++++++++++---------------------
1 files changed, 65 insertions(+), 42 deletions(-)
diff --git a/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue b/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
index 38d6221..8a16eff 100644
--- a/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
+++ b/src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
@@ -10,8 +10,20 @@
'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" />
@@ -61,43 +73,25 @@
<el-table-column prop="creator_name" label="创建人" align="center" show-overflow-tooltip />
<el-table-column label="操作" width="200" align="center">
<template #default="scope">
- <div
- v-if="scope.row.status === 2"
- class="btnItem"
- link
- type="primary"
- @click="turnBack(scope.row)"
- >
+ <!-- <el-button type="text" @click="rejectDetail(row.id)">驳回原因</el-button> -->
+ <el-button icon="el-icon-back" v-if="scope.row.status === 2" type="text"
+ @click="turnBack(scope.row)">
返航
- </div>
- <div
- v-if="scope.row.status === 1"
- class="btnItem"
- link
- type="primary"
- @click="cancelTask(scope.row)"
- >
+ </el-button>
+ <el-button icon="el-icon-close" v-if="scope.row.status === 1" type="text"
+ @click="cancelTask(scope.row)">
取消任务
- </div>
- <div class="btnItem" link type="primary" @click="handleDetail(scope.row)">查看</div>
+ </el-button>
+ <el-button icon="el-icon-view" type="text" @click="handleDetail(scope.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination">
- <el-pagination
- class="ztzf-pagination"
- popper-class="custom-pagination-dropdown"
- background
- :page-sizes="[10, 20, 30, 40,50,100]"
- :size="size"
- v-model:current-page="jobListParams.current"
- v-model:page-size="jobListParams.size"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total"
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- />
+ <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
+ :page-sizes="[10, 20, 30, 40, 50, 100]" :size="size" v-model:current-page="jobListParams.current"
+ v-model:page-size="jobListParams.size" layout="total, sizes, prev, pager, next, jumper" :total="total"
+ @size-change="handleSizeChange" @current-change="handleCurrentChange" />
</div>
</div>
<!-- 添加任务 -->
@@ -119,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 { 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({
@@ -141,14 +137,14 @@
// 获取任务列表
const getJobList = () => {
- const apiParams = {
- ...cloneDeep(jobListParams),
- searchParams: {
- ...cloneDeep(jobListParams.searchParams),
- status_list: jobListParams.searchParams.status || undefined,
- status: undefined,
- },
- }
+ const apiParams = {
+ ...cloneDeep(jobListParams),
+ searchParams: {
+ ...cloneDeep(jobListParams.searchParams),
+ status_list: jobListParams.searchParams.status || undefined,
+ status: undefined,
+ },
+ }
jobList(apiParams).then(res => {
if (res.data.code !== 0) return
jobListData.value = res.data.data.records
@@ -247,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