Merge branch 'master' of http://192.168.1.125:3000/root/pqs-9100_client
This commit is contained in:
@@ -6,8 +6,9 @@
|
||||
width="750"
|
||||
draggable
|
||||
:close-on-click-modal="false"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-tabs v-model="activeName" @tab-click="handleTabClick">
|
||||
<el-tabs v-if="dialogVisible" v-model="activeName" @tab-click="handleTabClick">
|
||||
<el-tab-pane
|
||||
v-for="(result, index) in resultData"
|
||||
:key="result.monitorId"
|
||||
@@ -89,7 +90,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 +158,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>([])
|
||||
@@ -178,7 +188,9 @@ const rules = {
|
||||
whichTime: [{ required: true, message: '请选择次数', trigger: 'change' }],
|
||||
resultType: [{ required: true, message: '请选择数据源和检测结论', trigger: 'change' }]
|
||||
}
|
||||
|
||||
const handleClose = () => {
|
||||
activeName.value = 0
|
||||
}
|
||||
const open = (data: any) => {
|
||||
devData.value = data
|
||||
getResultData()
|
||||
@@ -228,6 +240,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
|
||||
})
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
:append-to-body="true"
|
||||
/>
|
||||
<!-- 报告生成弹框 -->
|
||||
<ReportResultPopup ref="reportPopup"></ReportResultPopup>
|
||||
<ReportResultPopup ref="reportPopup" @reportGenerated="handleReportGenerated"></ReportResultPopup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -214,13 +214,13 @@ import { type Device } from '@/api/device/interface/device'
|
||||
import { type ColumnProps, type ProTableInstance } from '@/components/ProTable/interface'
|
||||
import { type Plan } from '@/api/plan/interface'
|
||||
import { type StandardDevice } from '@/api/device/interface/standardDevice'
|
||||
import { downloadDevData, generateDevReport, getBoundPqDevList } from '@/api/plan/plan'
|
||||
import { downloadDevData, downloadDevDataWithHeaders, generateDevReport, getBoundPqDevList } from '@/api/plan/plan'
|
||||
import { getPqDev } from '@/api/device/device'
|
||||
import { useAppSceneStore, useModeStore } from '@/stores/modules/mode' // 引入模式 store
|
||||
import { useCheckStore } from '@/stores/modules/check'
|
||||
import { CheckData } from '@/api/check/interface'
|
||||
import { useAuthStore } from '@/stores/modules/auth'
|
||||
import { useDownload } from '@/hooks/useDownload'
|
||||
import { useDownload, useDownloadWithServerFileName } from '@/hooks/useDownload'
|
||||
import { documentedPqDev } from '@/api/device/report'
|
||||
import { ResultEnum } from '@/enums/httpEnum'
|
||||
import { getPqMonList } from '@/api/device/monitor/index.ts'
|
||||
@@ -1029,6 +1029,7 @@ const openDrawer = async (title: string, row: any) => {
|
||||
// 单个设备报告生成
|
||||
if (title === '报告生成') {
|
||||
if (modeStore.currentMode == '比对式'){
|
||||
console.log(row)
|
||||
reportPopup.value?.open(row)
|
||||
}else{
|
||||
await generateDevReport({
|
||||
@@ -1045,9 +1046,9 @@ const openDrawer = async (title: string, row: any) => {
|
||||
}
|
||||
|
||||
if (title === '报告下载') {
|
||||
await useDownload(
|
||||
downloadDevData,
|
||||
row.createId,
|
||||
await useDownloadWithServerFileName(
|
||||
downloadDevDataWithHeaders,
|
||||
row.createId, // 备用文件名
|
||||
{
|
||||
planId: checkStore.plan.id,
|
||||
devId: row.id
|
||||
@@ -1117,6 +1118,11 @@ const handleQuitClicked = () => {
|
||||
emit('batchGenerateClicked') // 触发事件
|
||||
}
|
||||
|
||||
// 处理报告生成完成事件
|
||||
const handleReportGenerated = () => {
|
||||
emit('batchGenerateClicked') // 触发事件通知父组件刷新数据
|
||||
}
|
||||
|
||||
defineExpose({ changeActiveTabs })
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
Reference in New Issue
Block a user