无人机管理后台前端(已迁走)
罗广辉
2025-10-11 02409bfbe15f22fc3b5dccadabfd860a660a49d9
src/views/job/components/DeviceJobDetails.vue
@@ -1,7 +1,7 @@
<!-- 历史任务详情 -->
<template>
   <el-dialog class="ztzf-dialog" append-to-body modal-class="detailsOfHistoricalTasks" v-model="isShow" title="历史任务详情"
      :width="pxToRem(1700)" :close-on-click-modal="false" :destroy-on-close="true">
      :width="pxToRem(1800)" :close-on-click-modal="false" :destroy-on-close="true">
      <div class="content">
         <div class="contentLeft">
            <div class="machineTableDetailsTitle"><span>详情</span></div>
@@ -34,7 +34,7 @@
                  <span>{{ total }}</span>
                  个
               </p>
               <div class="rightBox">
               <div class="rightBox" v-if="total">
                  <div class="downloadBtn" @click="htlsrwxq === 100 && downloadFun()">
                     <el-progress v-if="htlsrwxq !== 100" :percentage="htlsrwxq" :show-text="false" striped striped-flow :duration="1" />
                     <div class="downloadBtnText">
@@ -95,7 +95,7 @@
                        :initial-index="index"
                        fit="cover"
                     />
                  <el-dialog
              class="ztzf-dialog"
              append-to-body
@@ -117,13 +117,27 @@
            </div>
         </el-dialog>
                  </div>
               </template>
            </div>
            <el-image-viewer
               v-if="showViewer"
               :url-list="previewUrls"
               :initial-index="activeIndex"
               @close="showViewer = false"
            />
         </div>
         <DeviceJobDetailsMap v-if="isShow" :yuanImages="yuanImages" class="contentRight" :detailsData="detailsData" />
         <div class="content-right" v-if="isShow">
            <DeviceJobDetailsMap
               :detailsData="detailsData"
               :yuanImages="yuanImages"
               @showImageeclick="showImageeclick"
               :jobId="props.jobId"
            />
            <div class="content-map-popups"></div>
         </div>
      </div>
   </el-dialog>
  <!-- 全景360 -->
@@ -137,7 +151,7 @@
<script setup>
import PanoramaPopup from '@/components/PanoramaPopup/PanoramaPopup.vue';
import { getShowImg, getSmallImg, getzsSmallImg,getzsShowImg } from '@/utils/util';
import { getaiImagesPageAPI,cancelDownloadApi,getDownloadStatusApi,attachDownload} from '@/api/dataCenter/dataCenter';
import { getaiImagesPageAPI,cancelDownloadApi,getDownloadStatusApi,attachDownload,aiImagesPage} from '@/api/dataCenter/dataCenter';
import { pxToRem } from '@/utils/rem'
import JobRelatedEvents from './JobRelatedEvents.vue'
import { getEventMediaListApi, getJobDetails, getJobInfoFiles,getJobsAllFiles } from '@/api/job/task'
@@ -203,17 +217,19 @@
)
const getAchievement = () => {
   if (!props.jobId) return
   const attachmentsParams = {
      'wayLineJobId': props.jobId,
      'resultTypes': [0, 1, 3, 4, 5],
      'orderByCreateTime': true,
   }
  const attachmentsParams = {
    'wayLineJobId': props.jobId,
    'resultTypes': [0, 1, 2, 4, 5],
    'orderByCreateTime': true,
    current: 1,
    size: 2000,
  }
   const pageParams = {
      current: 1,
      size: 2000,
   }
      getaiImagesPageAPI(attachmentsParams,pageParams ).then(res => {
  aiImagesPage(attachmentsParams ).then(res => {
      achievementList.value = res.data.data.records.map(i => ({
         ...i,
         checked: false,
@@ -221,7 +237,7 @@
         showUrl: i.resultType === 4 ? getzsShowImg(i.link) : getShowImg(i.link),
      }))
      total.value = res.data.data.total
      console.log('成果数据', res.data.data)
      // console.log('成果数据', res.data.data)
   })
}
const jumpMore = () => {
@@ -258,8 +274,8 @@
      }).then(result => {
         if (result.data.code !== 200) return
         yuanImages.value = result.data.data.records
         console.log('ssssss',yuanImages.value);
      })
      })
      // flystatus.value = res.data.data.ai_type_str
@@ -286,7 +302,7 @@
}
// 下载
const downloadFun = async () => {
   const list = achievementList.value.filter(i => i.checked)
   const list = achievementList.value.filter(i => i.checked)
   console.log('list',list);
   if (!list?.length) return ElMessage.warning('请选择文件')
   if (list.length === 1) {
@@ -312,6 +328,20 @@
const clickpanorama = val => {
   panoramaParamsShow.value = true
   panoramaParamsUrl.value = val.link
}
// 从地图点击图片预览
const showViewer = ref(false)
const activeIndex = ref(0)
const previewUrls = ref([])
const showImageeclick = (list, index, categoriestype) => {
   if (categoriestype === 5) {
      panoramaParamsShow.value = true
      panoramaParamsUrl.value = list[0]
   } else {
      previewUrls.value = list
      activeIndex.value = 0
      showViewer.value = true
   }
}
// 取消下载
function cancelDownload() {
@@ -408,7 +438,7 @@
                  :deep(){
                     .el-progress-bar__outer{
                        height: 26px !important;
                        height: 28px !important;
                        border-radius: 0 !important;
                        background: transparent !important;
@@ -617,11 +647,22 @@
      }
   }
   .contentRight {
      .content-right {
      position: relative;
      width: 0;
      flex-grow: 1;
      background: #19ad8d;
      margin-right: 17px;
      overflow: hidden;
      .content-map-popups {
         pointer-events: none;
         > * {
            pointer-events: auto !important;
         }
      }
   }
}
</style>