From f0c7f4845fb40bb75b2c9eb61a790e9b8ea7401a Mon Sep 17 00:00:00 2001 From: zhangwei <1504152376@qq.com> Date: 星期三, 27 八月 2025 11:25:43 +0800 Subject: [PATCH] 'feat上传附件及预览文件' --- src/views/system/component/pdfPreview.vue | 38 +++++++++++++++++++++++++++++++++----- 1 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/views/system/component/pdfPreview.vue b/src/views/system/component/pdfPreview.vue index 54cdfa1..8681f05 100644 --- a/src/views/system/component/pdfPreview.vue +++ b/src/views/system/component/pdfPreview.vue @@ -6,7 +6,6 @@ > <iframe id="printIframe" - :src="pdfSrc" frameborder="0" style="width: 100%; height: 100%" @load="iframeLoaded" @@ -16,10 +15,14 @@ <script setup lang="ts"> import { ref, defineProps } from "vue"; -defineProps({ - pdfSrc: { - type: String, - default: "" +const props = defineProps({ + // fileInfo: { + // type: String, + // default: "" + // } + fileInfo: { + type: Object, + required: true } }); let isLoading = ref(true); @@ -28,6 +31,31 @@ isLoading.value = false; }; +console.log(props.fileInfo, "props.fileInfo"); + +const pdfUrl = props.fileInfo.filePath; +// 鐢╢etch鑾峰彇鏂囦欢娴侊紝寮哄埗杞负棰勮鏍煎紡 +fetch(pdfUrl) + .then(response => { + // 妫�鏌ュ搷搴旀槸鍚︽垚鍔� + if (!response.ok) throw new Error("鏂囦欢鑾峰彇澶辫触"); + // 寮哄埗鑾峰彇Blob瀵硅薄锛堟寚瀹歅DF绫诲瀷锛� + return response.blob(); + }) + .then(blob => { + // 鐢熸垚涓存椂棰勮URL锛堟祻瑙堝櫒鏈湴涓存椂閾炬帴锛屾棤涓嬭浇瑙﹀彂锛� + const blobUrl = URL.createObjectURL( + new Blob([blob], { type: "application/pdf" }) // 鏄庣‘鎸囧畾PDF绫诲瀷 + ); + // 璧嬪�肩粰iframe骞舵樉绀� + const iframe = document.getElementById("printIframe"); + iframe.src = blobUrl; + iframe.style.display = "block"; + document.getElementById("loading").style.display = "none"; + }) + .catch(error => { + // document.getElementById("loading").innerText = `鍔犺浇澶辫触锛�${error.message}`; + }); </script> <style> .pdf-container { -- Gitblit v1.9.1