From 6eeb82e56306d645a290a0f5ba202efe3ef2385d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期二, 27 十月 2026 17:49:09 +0800
Subject: [PATCH] feat(report): 新增PDF报告预览功能并重构报告下载流程
---
src/views/CNAS/process/reportResults/index.vue | 21 +++++++++++++++++++--
1 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/src/views/CNAS/process/reportResults/index.vue b/src/views/CNAS/process/reportResults/index.vue
index b594601..91094c0 100644
--- a/src/views/CNAS/process/reportResults/index.vue
+++ b/src/views/CNAS/process/reportResults/index.vue
@@ -114,14 +114,18 @@
</el-form>
<template #footer><span class="dialog-footer">
<el-button @click="downloadDialogVisible = false">鍙� 娑�</el-button>
+ <el-button :disabled="!downloadRow" @click="previewReport(downloadRow)">棰勮鏈夌珷鎶ュ憡</el-button>
<el-button type="primary" :loading="downloadingReportId !== null"
@click="downloadSelectedReport">涓� 杞�</el-button>
</span></template>
</el-dialog>
+ <report-preview ref="reportPreview" />
</div>
</template>
<script>
+import ReportPreview from '@/components/ReportPreview/index.vue'
+import { reportFilename } from '@/utils/reportPreview'
import limsTable from "@/components/Table/lims-table.vue";
import {
exportProcessReport,
@@ -137,7 +141,8 @@
export default {
name: 'ReportResults',
components: {
- limsTable
+ limsTable,
+ ReportPreview
},
data() {
return {
@@ -171,8 +176,13 @@
dataType: "action",
fixed: "right",
label: "鎿嶄綔",
- width: "180px",
+ width: "230px",
operation: [
+ {
+ name: "棰勮",
+ type: "text",
+ clickFun: row => this.previewReport(row),
+ },
{
name: "涓嬭浇",
type: "text",
@@ -305,6 +315,13 @@
this.addInfo = { ...row }
this.addDialogVisible = true;
},
+ previewReport(row) {
+ this.$refs.reportPreview.open([{
+ key: 'stamped', label: '鏈夌珷鎶ュ憡', format: 'pdf',
+ filename: reportFilename(row.insReportCode || '鏈夌珷鎶ュ憡', 'pdf'),
+ load: signal => downloadStampedReport(row.id, 'pdf', signal)
+ }])
+ },
handleDownload(row) {
this.downloadRow = row
this.selectedDownloadFormat = 'pdf'
--
Gitblit v1.9.3