forked from drone/command-center-dashboard

罗广辉
2025-04-21 2800fa4f32f3900509cb4d6eefaf2bfaf54efdd7
src/views/SignMachineNest/MachineRight/InspectionRaskList.vue
@@ -9,7 +9,7 @@
               <div :class="tabIndex === 2 ? 'active' : ''" @click="tabClick(2)">历史任务</div>
            </div>
            <div class="search-box">
               <el-input v-model="searchText" placeholder="请输入搜索内容" class="input-with-select">
               <el-input v-model="searchText" placeholder="请输入关键字" class="input-with-select">
                  <template #append>
                     <el-button :icon="Search" @click="searchNickName" />
                  </template>
@@ -24,15 +24,14 @@
            :infinite-scroll-disabled="busy"
            infinite-scroll-immediate="true"
         >
            >
            <div class="item" v-for="(item, index) in tableList">
               <div class="left" @click="taskClick(item)">
                  <div class="left-t">
                     <span>{{ index + 1 }}.</span>
                     {{ item.name }}
                     <span class="status" :class="item.status === 2 ? 'active' : ''">
                     <div>{{ index + 1 }}.</div>
                     <div class="t-name">{{item.name}}</div>
                     <div class="status" :class="item.status === 2 ? 'active' : ''">
                        {{ getStatusText(item.status) }}
                     </span>
                     </div>
                  </div>
                  <div class="left-b">
                     <img src="../../../assets/images/signMachineNest/machineRight/date.png" alt="" />
@@ -82,8 +81,7 @@
let viewer = null
let { taskDetails, workspace_id, getTaskDetails } = useTaskDetails()
let { wsInfo, removeWS } = useDroneWS(workspace_id) //ws信息,是一个ref对象
const wsInfo = inject('wsInfo')
const store = useStore()
// 设备任务详情
let currentInfoId = ref('')
@@ -93,6 +91,7 @@
// 单个机巢信息
const singleUavHome = computed(() => store.state.home.singleUavHome)
const osdVisible = computed(() => store.state.home.osdVisible);
const isMore = ref(true)
// 控制加载状态
@@ -201,6 +200,12 @@
const taskClick = item => {
   if (tabIndex.value === 1) {
      // 展示当前任务详情
      if (!item?.device_sns?.length) return ElMessage.warning('没有device_sns');
      if (item?.device_sns?.length !== 1) {
         // todo 后续开发
         ElMessage.success('即将跳转到集群调度');
         return
      }
      currentInfoId.value = item.wayline_job_info_id
      isShowCurrentTaskDetails.value = true
   } else {
@@ -212,9 +217,25 @@
watch([() => tabIndex.value, () => tableList.value], async ([newTabIndex, newTableList]) => {
   if (newTabIndex == 1 && newTableList.length > 0) {
      await getTaskDetails(newTableList[0].wayline_job_info_id)
      const params = {
         // 航线信息id
         wayLineJobInfoId:newTableList[0].wayline_job_info_id,
         // 当前航线id
         waylineJobId:newTableList[0].id,
      }
      await getTaskDetails(params)
   }
})
// 监听如果当前任务飞行完毕,当前任务即消失
watch(() => store.state.home.deviceState, async (newValue) => {
   const deviceInfo = newValue?.deviceInfo[osdVisible.value.sn];
   if (!deviceInfo) return
   // 重新刷新数据
   if (deviceInfo?.mode_code === 14) {
      getJobList()
   }
});
const { init: initTaskWayline, removeEntitys } = useTaskWayline()
@@ -312,13 +333,19 @@
         .left {
            cursor: pointer;
            .left-t {
               display: flex;
               height: 24px;
               font-size: 16px;
               margin-bottom: 4px;
               .t-name {
                  width: 180px;
                  white-space: nowrap; // 不换行
                  overflow: hidden; // 超出隐藏
                  text-overflow: ellipsis; // 显示省略号
               }
               .status {
                  text-align: center;
                  font-size: 12px;
                  display: inline-block;
                  width: 48px;
                  height: 20px;
                  background: rgba(76, 166, 255, 0.08);
@@ -335,6 +362,10 @@
            .left-b {
               height: 21px;
               line-height: 21px;
               width: 260px; // 添加固定宽度
               white-space: nowrap; // 不换行
               overflow: hidden; // 超出隐藏
               text-overflow: ellipsis; // 显示省略号
               img {
                  width: 16px;
                  height: 16px;