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/dataCenter/dataCenter.vue |   94 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 69 insertions(+), 25 deletions(-)

diff --git a/src/views/dataCenter/dataCenter.vue b/src/views/dataCenter/dataCenter.vue
index 31fa8ad..7acdbd8 100644
--- a/src/views/dataCenter/dataCenter.vue
+++ b/src/views/dataCenter/dataCenter.vue
@@ -13,10 +13,10 @@
         <el-table
           v-loading="loadings"
           element-loading-text="加载中"
-          stripe
           :data="tableData"
           class="custom-header"
           @selection-change="handleSelectionChange"
+          @cell-click="handleCellClick"
         >
           <el-table-column type="selection" width="55" />
           <el-table-column label="序号" type="index" width="60">
@@ -35,7 +35,14 @@
           </el-table-column>
           <el-table-column property="nestName" label="所属机巢" />
           <el-table-column property="jobName" label="任务名称" show-overflow-tooltip />
-          <el-table-column prop="nickName" label="文件名称" show-overflow-tooltip />
+          <el-table-column prop="nickName" label="文件名称" width="160">
+            <template #default="scope">
+              <el-tooltip-copy :content="scope.row.nickName" :showCopyText="true">
+                {{scope.row.nickName}}
+              </el-tooltip-copy>
+            </template>
+          </el-table-column>
+
           <el-table-column property="link" label="缩略图" width="120">
             <template #default="scope">
               <img
@@ -45,13 +52,21 @@
                 :src="scope.row?.smallUrl"
                 alt=""
               />
-              <img
-                v-else-if="scope.row?.resultType === 1"
-                :src="convertVideoUrlToThumbnail(scope.row?.link)"
-                alt=""
-                class="imageBox"
-                @click="enterFullScreen(scope.row)"
-              />
+              <!-- 视频 -->
+              <div v-else-if="scope.row?.resultType === 1" class="videoItem1">
+                <img
+                  :src="convertVideoUrlToThumbnail(scope.row?.link)"
+                  alt=""
+                  class="imageBox"
+                  @click="enterFullScreen(scope.row)"
+                />
+                <img
+                  class="playBox"
+                  @click="enterFullScreen(scope.row)"
+                  src="@/assets/images/dataCenter/videoplay.png"
+                  alt=""
+                />
+              </div>
               <!-- 正射 -->
               <el-image
                 v-else-if="scope.row?.resultType === 4"
@@ -73,7 +88,7 @@
           <el-table-column property="photoType" label="文件类别">
             <template #default="scope">
               <span>{{
-                photoTypeMap[scope.row.photoType] ? photoTypeMap[scope.row.photoType] : 'tif'
+                photoTypeMap[scope.row.photoType] ? photoTypeMap[scope.row.photoType] : '--'
               }}</span>
             </template>
           </el-table-column>
@@ -82,21 +97,24 @@
               <span>{{ resultTypeMap[row?.resultType] }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="操作" width="150" align="center">
+          <el-table-column label="操作" width="200" align="center">
             <template #default="scope">
-              <span class="look" @click="lookDetail(scope.row)">查看</span>
-              <span
-                class="delete"
-                @click="deleteDetail(scope.row)"
-                v-if="scope.row.resultType !== 2"
-                >删除</span
+              <el-button icon="el-icon-view" type="text" @click="lookDetail(scope.row)"
+                >查看</el-button
               >
-
-              <span
-                class="location"
-                @click="positionDetail(scope.row)"
+              <el-button
+                v-if="scope.row.resultType !== 2"
+                icon="el-icon-delete"
+                type="text"
+                @click="deleteDetail(scope.row)"
+                >删除</el-button
+              >
+              <el-button
                 v-if="shouldShowLocation(scope.row)"
-                >定位</span
+                type="text"
+                @click="positionDetail(scope.row)"
+              >
+                <img :src="positionicon" class="custom-icon" />定位</el-button
               >
             </template>
           </el-table-column>
@@ -188,7 +206,7 @@
               文件类型:{{
                 photoTypeMap[dialogDetailList?.photoType]
                   ? photoTypeMap[dialogDetailList?.photoType]
-                  : 'tif'
+                  : '--'
               }}
             </div>
             <div>
@@ -258,6 +276,8 @@
 </template>
 
 <script setup>
+import videoplay from '@/assets/images/dataCenter/videoplay.png';
+import positionicon from '@/assets/images/dataCenter/positionicon.png';
 import { useStore } from 'vuex';
 import { PublicCesium } from '@/utils/cesium/publicCesium';
 import { Cartesian3 } from 'cesium';
@@ -291,6 +311,7 @@
 import { getShowImg, getSmallImg, getzsSmallImg } from '@/utils/util';
 import { onMounted, watch } from 'vue';
 import dayjs from 'dayjs';
+import ElTooltipCopy from '@/components/ElTooltipCopy.vue';
 
 function bytesToMB(bytes, decimalPlaces = 2) {
   if (typeof bytes !== 'number' || bytes < 0) return '0';
@@ -697,6 +718,14 @@
   viewer = null;
   isMapInitialized.value = false;
 }
+function handleCellClick(row, column) {
+  console.log(row,column.no)
+  if (column.no === 5) {
+    navigator.clipboard.writeText(row.nickName).then(() => {
+      ElMessage.success('复制文件名称成功')
+    })
+  }
+}
 onMounted(() => {
   getaiImagesPage();
   // 监听打开全景事件
@@ -730,7 +759,12 @@
       cursor: pointer;
       margin-right: 10px;
     }
-
+    .custom-icon {
+      width: 14px;
+      height: 14px;
+      margin-right: 5px;
+      vertical-align: middle;
+    }
     .delete {
       color: #ff241c;
       margin-right: 10px;
@@ -756,7 +790,17 @@
     width: 76px;
     height: 72px;
   }
-
+  .videoItem1 {
+    .playBox {
+      width: 20px;
+      height: 20px;
+      position: absolute;
+      top: 46%;
+      left: 43%;
+      transform: translate(-50%, -50%);
+      cursor: pointer;
+    }
+  }
   .videoDialog :deep(.el-dialog) {
     height: 600px;
     width: 54%;

--
Gitblit v1.9.3