| | |
| | | </el-tooltip-copy> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="任务编号" width="160"> |
| | | <el-table-column prop="name" label="任务名称" width="160"> |
| | | <template #default="scope"> |
| | | <el-tooltip-copy :content="scope.row.name" :showCopyText="true"> |
| | | {{scope.row.name}} |
| | | </el-tooltip-copy> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dept_name" label="所属部门" width="200" align="center" /> |
| | | <el-table-column prop="device_names" label="所属机巢" /> |
| | | <el-table-column prop="device_names" label="所属机巢" show-overflow-tooltip/> |
| | | <el-table-column prop="ai_type_str" label="关联算法" show-overflow-tooltip align="center" /> |
| | | <el-table-column label="任务状态" align="center"> |
| | | <template #default="scope"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="cycle_time_value" label="任务时间" show-overflow-tooltip /> |
| | | <el-table-column prop="dept_name" label="创建部门" width="200" align="center" /> |
| | | <el-table-column prop="creator_name" label="创建人" align="center" show-overflow-tooltip /> |
| | | <el-table-column label="操作" width="200" align="center"> |
| | | <template #default="scope"> |
| | |
| | | <el-button icon="el-icon-view" type="text" @click="handleDetail(scope.row)">查看</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <template #empty> |
| | | <el-empty |
| | | class="custom-empty" |
| | | :image-size="100" |
| | | > |
| | | <template #description> |
| | | <span class="custom-text">暂无数据</span> |
| | | </template> |
| | | </el-empty> |
| | | </template> |
| | | </el-table> |
| | | </div> |
| | | <div class="pagination"> |
| | | <div class="pagination" v-if="jobListData.length > 0"> |
| | | <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background |
| | | :page-sizes="[10, 20, 30, 40, 50, 100]" :size="size" v-model:current-page="jobListParams.current" |
| | | v-model:page-size="jobListParams.size" layout="total, sizes, prev, pager, next, jumper" :total="total" |
| | |
| | | <!-- <CurrentTaskDetails |
| | | v-if="isShowCurrentTaskDetails" |
| | | v-model:show="isShowCurrentTaskDetails" |
| | | :wayLineJodInfoId="rowData.id" |
| | | :wayLineJobInfoId="rowData.id" |
| | | /> --> |
| | | <!-- 历史任务详情 --> |
| | | <DeviceJobDetails v-if="isShowDeviceJobDetails" v-model:show="isShowDeviceJobDetails" :wayLineJodInfoId="rowData.id" |
| | | :batchNo="rowData.batch_no" /> |
| | | <DeviceJobDetails v-if="isShowDeviceJobDetails" v-model:show="isShowDeviceJobDetails" :wayLineJobInfoId="rowData.id" |
| | | :batchNo="rowData.batch_no" :jobId="jobId"/> |
| | | <CancelTaskDialog ref="cancelTaskDialogRef" v-model:isShowCancelTask="isShowCancelTask" :row-data="rowData" |
| | | @refresh="getJobList" /> |
| | | </template> |
| | |
| | | |
| | | // 查看当前任务详情 如果是一台机则显示详情 如果是多台机则进入集群调度(暂未开发) |
| | | let rowData = ref({}) |
| | | const jobId = ref('') |
| | | const handleDetail = row => { |
| | | if (!row.device_sns.length) return ElMessage.warning('没有device_sns') |
| | | if (row.device_sns.length !== 1) return ElMessage.success('即将跳转到集群调度') |
| | | rowData.value = row ? row : {} |
| | | if (row.device_sns.length > 1 && (row.status === 2 || row.status === 1)) { |
| | | const adminUrl = `${import.meta.env.VITE_APP_AREA_NAME}/command-center-dashboard/#/clusterScheduling` |
| | | const targetPath = `taskNo=${encodeURIComponent(rowData.value.job_info_num)}` |
| | | window.open(`${adminUrl}?${targetPath}`, '_blank') |
| | | return |
| | | } |
| | | jobId.value = rowData.value?.job_id |
| | | if (row.status === 2 || row.status === 1) { |
| | | // isShowCurrentTaskDetails.value = true |
| | | // 跳转大屏当前任务详情 |
| | | const adminUrl = `${import.meta.env.VITE_APP_AREA_NAME}/command-center-dashboard/#/taskManage` |
| | | const targetPath = `id=${encodeURIComponent(rowData.value.id)}&batchNo=${encodeURIComponent(rowData.value.batch_no)}` |
| | | const targetPath = `id=${encodeURIComponent(rowData.value.id)}&batchNo=${encodeURIComponent(rowData.value.batch_no)}&dockSn=${encodeURIComponent(rowData.value.device_sns[0])}` |
| | | window.open(`${adminUrl}?${targetPath}`, '_blank') |
| | | } else { |
| | | isShowDeviceJobDetails.value = true |
| | |
| | | |
| | | |
| | | const changeKey = inject('changeKey') |
| | | // 轮询查询是否刷新 |
| | | const polling = setInterval(async () => { |
| | | const res = await statusChangedApi() |
| | | if (res.data.data.DEVICE_REFRESH || res.data.data.JOB_REFRESH) { |
| | | getJobList() |
| | | changeKey.value++ |
| | | } |
| | | }, 4000) |
| | | const jobUpdateKey = computed(() => store.state.common.jobUpdateKey) |
| | | const deviceUpdateKey = computed(() => store.state.common.deviceUpdateKey) |
| | | |
| | | watch([jobUpdateKey,deviceUpdateKey],()=>{ |
| | | getJobList() |
| | | changeKey.value++ |
| | | }) |
| | | |
| | | onBeforeUnmount(() => { |
| | | clearInterval(polling) |
| | | // clearInterval(polling) |
| | | }) |
| | | |
| | | onMounted(() => { |
| | |
| | | flex: 1; |
| | | margin-top: 18px; |
| | | overflow: auto; |
| | | :deep(.el-scrollbar__view) { |
| | | height: 100%; |
| | | } |
| | | :deep(.el-table--fit,.el-scrollbar__view) { |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .custom-empty { |
| | | //font-family: Source Han Sans CN, Source Han Sans CN; |
| | | //margin-top: 15%; |
| | | //.custom-text { |
| | | // color: #fff; |
| | | // font-size: 16px; |
| | | //} |
| | | } |
| | | |
| | | .btnItem { |
| | | height: 27px; |
| | |
| | | |
| | | :deep(.el-pagination) { |
| | | display: flex; |
| | | padding: 20px 0; |
| | | justify-content: right; |
| | | } |
| | | |