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