吉安感知网项目-前端
罗广辉
2026-06-06 5e2926edddb3e89f1aa3882290fec577246e5e2c
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -82,15 +82,22 @@
                     任务成果({{ taskResultList.length || 0 }}条)
                  </div>
                  <div class="imgBox">
                     <div v-for="item in taskResultList">
                     <div v-for="item in taskResultList.filter(item => item.resultUrl && [1,2,3].includes( item.attachmentType))">
                        <el-image
                           v-if="item.attachmentType === 0 && item.resultUrl"
                           v-if="item.attachmentType === 1"
                           :src="item.resultUrl"
                           :preview-src-list="[item.resultUrl]"
                           fit="cover"
                           preview-teleported
                        />
                        <div class="video-btn" v-if="item.attachmentType === 1 && item.resultUrl" @click="videoClick(item)">
                        <el-image
                           v-if="item.attachmentType === 2"
                           :src="item.resultUrl"
                           :preview-src-list="[item.resultUrl]"
                           fit="cover"
                           preview-teleported
                        />
                        <div class="video-btn" v-if="item.attachmentType === 3" @click="videoClick(item)">
                           <el-icon :size="30" color="#fff">
                              <VideoPlay />
                           </el-icon>
@@ -299,7 +306,7 @@
import { queryAirById, airlineListApi, algorithmGroupedApi } from '@/api/zkxt'
import * as Cesium from 'cesium'
import { useStore } from 'vuex'
import { getTaskTypeLabel, taskTypeCascaderProps, toTaskTypeCascaderValue, toTaskTypeRequestValue } from '../taskTypeOptions'
import { getTaskTypeLabel, taskTypeCascaderProps } from '../taskTypeOptions'
// 初始化表单数据
const initForm = () => ({
@@ -581,7 +588,6 @@
   const res = await gdPatrolTaskDetailApi({ id: row.id })
   formData.value = { ...initForm(), ...res.data.data }
   formData.value.patrolTaskType = toTaskTypeCascaderValue(formData.value.patrolTaskType)
   // 确保 algorithmIds 是数组
   if (formData.value.algorithmIds && typeof formData.value.algorithmIds === 'string') {
      formData.value.algorithmIds = formData.value.algorithmIds.split(',').filter(Boolean)
@@ -666,6 +672,18 @@
      width: calc((100% - 40px) / 5); /* 5列布局,减去4个10px间隙 */
      height: 110px;
      flex-shrink: 0;
      position: relative;
      overflow: hidden;
      border-radius: 4px;
      cursor: pointer;
      box-shadow: inset 0 0 0 1px rgba(17, 31, 68, 0.08);
      transition: box-shadow 0.16s ease;
      &:hover {
         box-shadow:
            inset 0 0 0 2px rgba(76, 52, 255, 0.48),
            0 8px 20px rgba(76, 52, 255, 0.24);
      }
   }
   .el-image {
      width: 100%;
@@ -674,11 +692,42 @@
   .video-btn {
      width: 100%;
      height: 100%;
      background-color: #9E9E9E;
      position: relative;
      overflow: hidden;
      //border: 1px solid #D8D6FF;
      border-radius: 4px;
      background:
         linear-gradient(135deg, rgba(76, 52, 255, 0.14), rgba(76, 52, 255, 0) 48%),
         linear-gradient(180deg, #F4F5FF 0%, #E9ECFF 100%);
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      &::before {
         content: "";
         position: absolute;
         inset: 0;
         background-image: linear-gradient(
            90deg,
            rgba(76, 52, 255, 0.05) 0,
            rgba(76, 52, 255, 0.05) 1px,
            transparent 1px,
            transparent 12px
         );
         opacity: 0.42;
      }
      .el-icon {
         position: relative;
         z-index: 1;
         width: 42px;
         height: 42px;
         border-radius: 50%;
         background: rgba(76, 52, 255, 0.72);
         box-shadow: 0 4px 12px rgba(76, 52, 255, 0.2);
      }
   }
}
:deep(.el-timeline-item__timestamp) {