forked from drone/command-center-dashboard

罗广辉
2025-04-15 1894e98229bb29c92bddae1fd87d4786494531b2
src/views/SignMachineNest/MachineRight/MachineStatus/MachineTableDetails/DeviceJob/DeviceJobDetails/DeviceJobDetails.vue
@@ -18,7 +18,7 @@
                  <div v-for="(item, index) in infoList" :key="index">
                     <div class="itemBox">
                        <div class="itemTitle">{{ item.name }}:</div>
                        <div class="itemValue">{{ item.value ? item.value :''}}</div>
                        <div class="itemValue">{{ item.value ? item.value : '' }}</div>
                     </div>
                  </div>
               </div>
@@ -37,17 +37,24 @@
               <p class="more">更多</p>
            </div>
            <div class="imgListBox">
               <el-image
                  class="imgItem"
                  v-for="(item, index) in achievementList"
                  :key="index"
                  :src="item.url"
                  :preview-src-list="achievementList.map(i => i.url)"
                  show-progress
                  preview-teleported
                  :initial-index="index"
                  fit="cover"
               />
               <!-- 图片显示 -->
               <template v-if="mediaType === 'image'">
                  <el-image
                     class="imgItem"
                     v-for="(item, index) in achievementList"
                     :key="index"
                     :src="item.url"
                     :preview-src-list="achievementList.map(i => i.url)"
                     show-progress
                     preview-teleported
                     :initial-index="index"
                     fit="cover"
                  />
               </template>
               <!-- 视频显示 -->
               <template v-else-if="mediaType === 'video'">
                  <video v-for="(item, index) in achievementList" :key="index" :src="item.url" controls></video>
               </template>
            </div>
         </div>
         <DeviceJobDetailsMap v-if="isShow" class="contentRight" :detailsData="detailsData" />
@@ -90,34 +97,38 @@
   creator_name: null,
   way_lines: [],
})
// 任务成果
const mediaType = ref('')
const total = ref(0)
const achievementList = ref([])
const wayLineJodInfoId = inject('wayLineJodInfoId')
const getAchievement = () => {
   getJobInfoFiles({ jobInfoId: wayLineJodInfoId.value }).then(res => {
      for (let i = 0; i < res.data.data.length; i++) {
         const url = res.data.data[i].url || ''
         const ext = String(url)?.split('.')?.pop().toLowerCase() || ''
         const images = ['jpg', 'jpeg', 'png', 'gif', 'webp']
         const videos = ['mp4', 'webm', 'ogg', 'mov']
         mediaType.value = images.includes(ext) ? 'image' : videos.includes(ext) ? 'video' : ''
      }
      achievementList.value = res.data.data
      total.value = res.data.data.length
   })
}
const getDetails = () => {
   getJobDetails({ wayLineJobInfoId: wayLineJodInfoId.value }).then(res => {
   console.log('res',res);
      detailsData.value = res.data.data
      infoList.value.forEach(item => {
         if (item.name === '任务时间') {
            item.value = detailsData.value.begin_time.slice(0,10) + '-' + detailsData.value.end_time.slice(0,10)
         }
      else if (item.name === '任务频次') {
            item.value === undefined ?'': detailsData.value.rep_rule_type + '-' + detailsData.value.rep_rule_val
         }
         else {
            item.value = detailsData.value.begin_time.slice(0, 10) + '-' + detailsData.value.end_time.slice(0, 10)
         } else if (item.name === '任务频次') {
            item.value = detailsData.value.rep_rule_type + ' -- ' + detailsData.value.rep_rule_val
         } else {
            item.value = detailsData.value?.[item.field] || ''
         }
      })
      flystatus.value = res.data.data.ai_type_str
      // console.log('历史任务详情', res.data.data)
   })
}
@@ -231,7 +242,7 @@
      .imgListBox {
         display: flex;
         flex-wrap: wrap;
         gap: 0 10px;
         gap: 10px;
         .imgItem {
            width: 200px;