feat:【IoT 物联网】初始化 IoT 固件详情页 100%(取消记录)

pull/789/MERGE
YunaiV 2025-07-03 19:12:45 +08:00
parent b8abe77bfe
commit d1cbda5197
3 changed files with 21 additions and 15 deletions

View File

@ -31,13 +31,8 @@ export const IoTOtaTaskRecordApi = {
return await request.get({ url: `/iot/ota/task/record/page`, params })
},
// 查询 OTA 任务记录详情
getOtaTaskRecord: async (id: number) => {
return await request.get({ url: `/iot/ota/task/record/get?id=` + id })
},
// 取消 OTA 任务记录
cancelOtaTaskRecord: async (id: number) => {
return await request.post({ url: `/iot/ota/task/record/cancel?id=` + id })
return await request.put({ url: `/iot/ota/task/record/cancel?id=` + id })
}
}

View File

@ -116,10 +116,17 @@
<el-table-column label="操作" align="center" width="80">
<template #default="scope">
<el-button
v-if="scope.row.status === IoTOtaTaskRecordStatusEnum.UPGRADING.value"
v-if="
[
IoTOtaTaskRecordStatusEnum.PENDING.value,
IoTOtaTaskRecordStatusEnum.PUSHED.value,
IoTOtaTaskRecordStatusEnum.UPGRADING.value
].includes(scope.row.status)
"
link
type="danger"
@click="handleCancelUpgrade(scope.row)"
v-hasPermi="['iot:ota-task-record:cancel']"
>
取消
</el-button>
@ -154,7 +161,6 @@ import { formatDate } from '@/utils/formatTime'
defineOptions({ name: 'OtaTaskDetail' })
const message = useMessage() //
const dialogVisible = ref(false) //
const taskId = ref<number>() //
@ -242,6 +248,7 @@ const handleTabClick = (tab: TabsPaneContext) => {
}
/** 取消升级 */
const emit = defineEmits(['success']) // success
const handleCancelUpgrade = async (record: OtaTaskRecord) => {
try {
await message.confirm('确认要取消该设备的升级任务吗?')
@ -250,7 +257,9 @@ const handleCancelUpgrade = async (record: OtaTaskRecord) => {
//
await getRecordList()
await getStatistics()
// TODO @AI succes
await getTaskInfo()
//
emit('success')
} catch (error) {
console.error('取消升级失败', error)
}

View File

@ -91,7 +91,7 @@
/>
<!-- 任务详情弹窗 -->
<OtaTaskDetail ref="taskDetailRef" />
<OtaTaskDetail ref="taskDetailRef" @success="refresh" />
</ContentWrap>
</template>
@ -169,18 +169,20 @@ const handleCancelTask = async (id: number) => {
await IoTOtaTaskApi.cancelOtaTask(id)
message.success('取消成功')
//
await getTaskList()
emit('success')
await refresh()
} catch (error) {
console.error('取消任务失败', error)
}
}
/** 刷新数据 */
const refresh = async () => {
await getTaskList()
emit('success')
}
/** 初始化 */
onMounted(() => {
getTaskList()
})
/** 暴露方法供父组件调用 */
defineExpose({ getTaskList })
</script>