比对模式的检测报告生成和下载

This commit is contained in:
2025-09-23 16:14:03 +08:00
parent d4992db198
commit 5730b9c5cf
5 changed files with 174 additions and 9 deletions

View File

@@ -89,7 +89,7 @@
</el-tabs>
<template #footer>
<el-button type="primary" size="small" @click="handleChooseClick">重新选择</el-button>
<el-button type="primary">确认生成</el-button>
<el-button type="primary" @click="handleConfirmGenerate">确认生成</el-button>
</template>
<!-- 选择检测数据源弹框-->
<el-dialog
@@ -157,11 +157,20 @@
<script setup lang="ts" name="reportPopup">
import { getMonitorDataSourceResult, getMonitorResult, updateMonitorResult } from '@/api/result/result'
import { type MonitorResult } from '@/api/result/interface'
import { generateDevReport } from '@/api/plan/plan'
import { useCheckStore } from '@/stores/modules/check'
import { ElMessage } from 'element-plus'
const dialogVisible = ref(false)
const dialogSourceVisible = ref(false)
const devData = ref<any>()
const activeName = ref<number>(0)
const checkStore = useCheckStore()
// 定义 emit 事件
const emit = defineEmits<{
(e: 'reportGenerated'): void
}>()
const resultData = ref<MonitorResult[]>([])
const resultSourceData = ref<any>({})
const whichTimeData = ref<any>([])
@@ -228,6 +237,26 @@ const handleSureChoose = () => {
dialogSourceVisible.value = false
})
}
// 处理确认生成报告
const handleConfirmGenerate = async () => {
try {
await generateDevReport({
planId: checkStore.plan.id,
devIdList: [devData.value.id],
scriptId: checkStore.plan.scriptId,
planCode: checkStore.plan.code + '',
pageNum: 1,
pageSize: 999
})
ElMessage.success({ message: `报告生成成功!` })
dialogVisible.value = false
emit('reportGenerated') // 触发事件通知父组件
} catch (error) {
ElMessage.error('报告生成失败')
console.error('报告生成错误:', error)
}
}
defineExpose({
open
})