forked from drone/command-center-dashboard

chenyao
2025-04-18 dfac8531d4ed65183ebffcbc7f88aea16f6ac64b
src/views/Home/HomeLeft/InspectionRaskDetails/InspectionRaskDetailsDialog.vue
@@ -20,19 +20,19 @@
               <el-input class="ztzf-input" v-model="searchForm.key_word" placeholder="请输入任务/机巢名称" clearable />
            </el-form-item>
            <el-form-item label="关联算法">
               <el-select class="ztzf-select" v-model="searchForm.ai_types" placeholder="请选择">
               <el-select :teleported="false" class="ztzf-select" v-model="searchForm.ai_types" placeholder="请选择">
                  <el-option v-for="item in taskAlgorithm" :key="item.id" :label="item.dictValue" :value="item.dictKey" />
               </el-select>
            </el-form-item>
            <el-form-item label="任务状态">
               <el-select class="ztzf-select" v-model="searchForm.status" placeholder="请选择" clearable>
               <el-select :teleported="false" class="ztzf-select" v-model="searchForm.status" placeholder="请选择" clearable>
                  <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="item.value" />
               </el-select>
            </el-form-item>
         </div>
         <div class="search-row">
            <el-form-item label="选择机巢">
               <el-select class="ztzf-select" v-model="searchForm.device_sn" placeholder="请选择">
               <el-select :teleported="false" class="ztzf-select" v-model="searchForm.device_sn" placeholder="请选择">
                  <el-option
                     v-for="item in deviceList"
                     :label="item.nickname"
@@ -43,6 +43,7 @@
            </el-form-item>
            <el-form-item>
               <el-date-picker
                  popper-class="custom-date-picker"
                  class="ztzf-date-picker"
                  v-model="dateRange"
                  type="daterange"
@@ -88,7 +89,9 @@
                           ? 'finish '
                           : scope.row.status === 5
                           ? 'fail '
                           : ' '">
                           : ' '
                     "
                  >
                     {{
                        scope.row.status === 1
                           ? '待执行'
@@ -110,7 +113,11 @@
                  <span>{{ scope.row.event_number ? scope.row.event_number : '/' }}</span>
               </template>
            </el-table-column>
            <el-table-column label="操作" width="80"><div class="ztzf-view">查看</div></el-table-column>
            <el-table-column label="操作" width="80">
               <template #default="scope">
                  <div class="ztzf-view" @click="viewDetail(scope.row)">查看</div>
               </template>
            </el-table-column>
         </el-table>
      </div>
      <!-- 分页 -->
@@ -128,6 +135,18 @@
         />
      </div>
   </el-dialog>
   <!-- 当前任务详情 -->
   <CurrentTaskDetails
      v-if="isShowCurrentTaskDetails"
      v-model:show="isShowCurrentTaskDetails"
      :id="currentTaskDetailsId"
   />
   <!-- 历史任务详情 -->
   <DeviceJobDetails
      v-if="deviceJobDetailsShow"
      v-model:show="deviceJobDetailsShow"
      :wayLineJodInfoId="wayLineJodInfoId"
   />
</template>
<script setup>
import { pxToRem } from '@/utils/rem'
@@ -135,6 +154,8 @@
import { getDictionary } from '@/api/system/dict'
import { selectDevicePage } from '@/api/home/machineNest'
import { getMultipleDictionary } from '@/api/system/dictbiz'
import CurrentTaskDetails from '@/components/CurrentTaskDetails/CurrentTaskDetails.vue'
import DeviceJobDetails from '@/components/DeviceJobDetails/DeviceJobDetails.vue'
const isShowDetailsDialog = defineModel('show')
const dateRange = ref('')
const searchForm = reactive({
@@ -148,7 +169,7 @@
const statusOptions = [
   { label: '待执行', value: 1 },
   { label: '执行中', value: 2 },
   { label: '已完成', value: 3 },
   { label: '已执行', value: 3 },
   { label: '执行失败', value: 5 },
]
@@ -215,7 +236,6 @@
}
// 获取任务列表
const getJobList = () => {
   // 事件状态:0 =待处理,1=待分拨,2=待处理,3=处理中,4=已完成 5=已完结
   jobList(taskDetailParams).then(res => {
      if (res.data.code !== 0) return
      taskDetailData.value = res.data.data.records
@@ -251,12 +271,35 @@
      return 'success-row'
   }
}
// 查看
const isShowCurrentTaskDetails = ref(false)
const currentTaskDetailsId = ref(null)
const deviceJobDetailsShow = ref(false)
const wayLineJodInfoId = ref(null)
const viewDetail = row => {
   if (row.status === 1 || row.status === 2) {
      currentTaskDetailsId.value = row.id
      isShowCurrentTaskDetails.value = true
   }
   if (row.status === 3 || row.status === 5) {
      wayLineJodInfoId.value = row.id
      deviceJobDetailsShow.value = true
   }
}
onMounted(() => {
   requestDictionary()
   getJobList()
   getDeviceList()
})
</script>
<style lang="scss">
/* 修改日期单元格背景色 */
.custom-date-picker .el-picker-panel__body {
   background: #012350 !important;
   color: #fff !important;
}
</style>
<style scoped lang="scss">
.search-row {
   display: flex;
@@ -331,7 +374,7 @@
}
// 执行中
.distributed {
   color: #FFA768;
   color: #ffa768;
}
// 已执行
.finish {