vue3上傳的文件在線查看

1、npm install @vue-office/pdf vue-demi? ?安裝依賴

2、npm install @vue-office/excel vue-demi ?安裝依賴

3、npm install @vue-office/docx vue-demi? ?安裝依賴

4、編寫一個通用組件,現在只支持?.docx,.xlsx,.pdf?格式的文件,其他文件渲染不成功

<template><el-dialog v-model="lookFileVisible" title="查看文件" width="70%" :before-close="handleClose"><vue-office-docxv-if="currentAttachment.type === 'docx'":src="DownloadImgServerUrl + currentAttachment.src"style="height: 50vh;"@rendered="renderedHandler"@error="errorHandler"/><iframe v-if="currentAttachment.type === 'pdf'" style="width:100%;height:50vh;" :src="currentAttachment.src" frameBorder="0"></iframe><vue-office-excel:src="DownloadImgServerUrl + currentAttachment.src"v-if="currentAttachment.type === 'xlsx'"style="height: 50vh;"@rendered="renderedHandler"@error="errorHandler"/></el-dialog>
</template><script  lang="ts" setup>
import VueOfficeDocx from '@vue-office/docx'
import VueOfficeExcel from '@vue-office/excel'
import '@vue-office/docx/lib/index.css'
import '@vue-office/excel/lib/index.css'
import { onMounted, ref, watch } from 'vue';
import Tool from '../../../../global';
import { FileCenterModel } from '../class/FileCenterModel';
import { ElMessage } from 'element-plus';
const UploadImgServerUrl = new Tool().UploadImgServerUrl
const DownloadImgServerUrl = new Tool().DownloadImgServerUrl
const props = defineProps({lookFileVisible: Boolean,infoLookFile: FileCenterModel
})
//defineEmits用于定義回調事件,里面是數組,可以定義多個事件
const emits = defineEmits(["CloselookFile"])
const handleClose = (done: () => void) => {emits("CloselookFile")
}
// const docx=ref('a7285e21-d108-4887-a7cf-04455e141003.docx');// 'http://xxx.com/test6.docx', //設置文檔網絡地址,可以是相對地址
// const excel=ref('cd0d46a9-971f-47c8-af5f-ba6e796d511e.xls');//: 'http://xxx.com/test3.xls', //設置文檔網絡地址,可以是相對地址
// const pdf=ref('');//: 'http://xxx.com/test1.pdf'
const currentAttachment = ref({type: 'docx',src: '',
})
//監聽
watch(() => props.infoLookFile,(newInfo, oldInfo) => {// console.log(newInfo,'>>>>>>>>>>>>>>>>>>>>>>>')if (newInfo != undefined) {let currInfo: FileCenterModel = (JSON.parse(newInfo as any)) as FileCenterModelcurrentAttachment.value.type = currInfo.fileSuffix;currentAttachment.value.src = currInfo.fileUrl;} else {}}
);
const renderedHandler =() => {ElMessage({message: '文件渲染完成!',type: 'success',})console.log("渲染完成")
}
const errorHandler = (err) => {ElMessage({message: '文件渲染失敗',type: 'error',})console.log("渲染失敗",err)
}
onMounted(() => {})
</script>

5、調用

<template><lookFileVue :lookFileVisible="lookFileVisible" :infoLookFile="infoLookFile" @CloselookFile="CloselookFile"></lookFileVue>
</template><script lang="ts" setup>import { reactive, ref, onMounted, toRaw, watch } from 'vue'import lookFileVue from '../FileCenter/components/LookFile.vue'//查看文件
const lookFileVisible = ref(false)
const infoLookFile = ref()
const lookFile = (row: FileCenterModel) =>{// downfile(row)// down(row.fileUrl, row.fileName, row.id)// console.log("查看文件地址", row)lookFileVisible.value = trueinfoLookFile.value = JSON.stringify(row)
}
const CloselookFile = () => {lookFileVisible.value = falseinfoLookFile.value = undefined
}
</script>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/94983.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/94983.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/94983.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習中基于響應的模型知識蒸餾實現示例

在 https://blog.csdn.net/fengbingchun/article/details/149878692 中介紹了深度學習中的模型知識蒸餾&#xff0c;這里通過已訓練的DenseNet分類模型&#xff0c;基于響應的知識蒸餾實現通過教師模型生成學生模型&#xff1a; 1. 依賴的模塊如下所示&#xff1a; import arg…

【數據可視化-82】中國城市幸福指數可視化分析:Python + PyEcharts 打造炫酷城市幸福指數可視化大屏

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

TikTok網頁版訪問障礙破解:IP限制到高效運營的全流程指南

在跨境電商與社媒運營的數字化浪潮中&#xff0c;TikTok網頁版因其多賬號管理便捷性、內容采集高效性等優勢&#xff0c;成為從業者的核心工具&#xff0c;然而“頁面空白”“地區不支持” 等訪問問題卻頻繁困擾用戶。一、TikTok網頁版的核心應用場景與技術特性&#xff08;一&…

spring的知識點:容器、AOP、事物

一、Spring 是什么? Spring 是一個開源的 Java 企業級應用框架,它的核心目標是簡化 Java 開發。 它不是單一的工具,而是一個 “生態系統”,包含了很多模塊(如 Spring Core、Spring Boot、Spring MVC 等),可以解決開發中的各種問題(如對象管理、Web 開發、事務控制等)…

HTML ISO-8859-1:深入解析字符編碼標準

HTML ISO-8859-1:深入解析字符編碼標準 引言 在HTML文檔中,字符編碼的選擇對于確保網頁內容的正確顯示至關重要。ISO-8859-1是一種廣泛使用的字符編碼標準,它定義了256個字符,覆蓋了大多數西歐語言。本文將深入探討HTML ISO-8859-1的原理、應用及其在現代網頁開發中的重要…

【計算機網絡 | 第4篇】分組交換

文章目錄前言&#x1f95d;電路交換&#x1f34b;電路交換技術的優缺點電路交換的資源分配機制報文交換&#x1f34b;報文交換技術的優缺點存儲轉發技術分組交換&#x1f426;?&#x1f525;分組交換的過程分組交換解決的關鍵問題傳輸過程的關鍵參數工作原理分組傳輸時延計算網…

LLM - AI大模型應用集成協議三件套 MCP、A2A與AG-UI

文章目錄1. 引言&#xff1a;背景與三協議概覽2. MCP&#xff08;Model Context Protocol&#xff09;起源與動因架構與規范要點開發實踐3. A2A&#xff08;Agent-to-Agent Protocol&#xff09;起源與動因架構與規范要點開發實踐4. AG-UI&#xff08;Agent-User Interaction P…

機器學習DBSCAN密度聚類

引言 在機器學習的聚類任務中&#xff0c;K-means因其簡單高效廣為人知&#xff0c;但它有一個致命缺陷——假設簇是球形且密度均勻&#xff0c;且需要預先指定簇數。當數據存在任意形狀的簇、噪聲點或密度差異較大時&#xff0c;K-means的表現往往不盡如人意。這時候&#xff…

RecyclerView 緩存機制

一、四級緩存體系1. Scrap 緩存&#xff08;臨時緩存&#xff09;位置&#xff1a;mAttachedScrap 和 mChangedScrap作用&#xff1a;存儲當前屏幕可見但被標記為移除的 ViewHolder用于局部刷新&#xff08;如 notifyItemChanged()&#xff09;特點&#xff1a;生命周期短&…

大模型SSE流式輸出技術

文章目錄背景&#xff1a;為什么需要流式輸出SSE 流式輸出很多廠商還是小 chunk背景&#xff1a;為什么需要流式輸出 大模型的響應通常很長&#xff0c;比如幾百甚至幾千個 token&#xff0c;如果等模型一次性生成完才返回&#xff1a; 延遲高&#xff1a;用戶要等很久才能看…

[Flutter] v3.24 AAPT:錯誤:未找到資源 android:attr/lStar。

推薦超級課程&#xff1a; 本地離線DeepSeek AI方案部署實戰教程【完全版】Docker快速入門到精通Kubernetes入門到大師通關課AWS云服務快速入門實戰 前提 將 Flutter 升級到 3.24.4 后&#xff0c;構建在我的本地電腦上通過&#xff0c;但Github actions 構建時失敗。 Flutt…

go語言標準庫學習, fmt標準輸出,Time 時間,Flag,Log日志,Strconv

向外輸出 fmt包實現了類似C語言printf和scanf的格式化I/O。主要分為向外輸出內容和獲取輸入內容兩大部分。 內置輸出 不需要引入標準庫&#xff0c;方便 package mainfunc main() {print("我是控制臺打印&#xff0c;我不換行 可以自己控制換行 \n我是另一行")prin…

ElementUI之表格

文章目錄使用ElementUI使用在線引入的方式表格1. 帶狀態表格row-class-name"Function({row, rowIndex})/String"2. 固定表頭(height"string/number"屬性)2.1 屬性的取值2.2 動態響應式高度使用演示2.3 ??自定義滾動條樣式??2.4 表頭高度定制獲取一行信…

K8S 的 Master組件

K8S 的 Master 組件有哪些&#xff1f;每個組件的作用&#xff1f; K8s 大腦的 4 大核心模塊&#xff0c;掌控全局&#xff01; Kubernetes 集群的 Master&#xff08;主節點&#xff09; 就像一座 指揮中心&#xff0c;負責整個集群的調度、管理和控制。它由 4 大核心組件組成…

如何 讓ubuntu 在root 下安裝的docker 在 普通用戶下也能用

在 Ubuntu 系統中&#xff0c;如果 Docker 是以 root 用戶安裝的&#xff0c;普通用戶默認無法直接使用 Docker 命令&#xff08;會報權限錯誤&#xff09;。要讓普通用戶也能使用 Docker&#xff0c;可以按照以下步驟操作&#xff1a;方法 1&#xff1a;將用戶加入 docker 用戶…

模板方法模式:優雅封裝算法骨架

目錄 一、模板方法模式 1、結構 2、特性 3、優缺點 3.1、優點 3.2、缺點 4、使用場景 5、實現示例 5.1、抽象類 5.2、實現類 5.3、測試類 一、模板方法模式 模板方法模式&#xff08;Template Method Pattern&#xff09;是一種行為設計模式&#xff0c;它在一個方…

韋東山STM32_HAl庫入門教程(SPI)學習筆記[09]內容

&#xff08;1&#xff09;SPI程序層次一、核心邏輯&#xff1a;“SPI Flash 操作” 是怎么跑起來的&#xff1f;要讀寫 SPI Flash&#xff0c;需同時理解 硬件連接&#xff08;怎么接線&#xff09; 和 軟件分層&#xff08;誰負責發指令、誰負責控制邏輯&#xff09;&#xf…

線上Linux服務器的優化設置、系統安全與網絡安全策略

一、Linux服務器的優化設置 線上Linux的優化配置序號基礎優化配置內容說明1最小化安裝系統【僅安裝需要的&#xff0c;按需安裝、不用不裝】&#xff0c;必須安裝的有基本開發環境、基本網絡包、基本應用包。2ssh登錄策略優化 Linux服務器上的ssh服務端配置文件是【/et…

基于人眼視覺特性的相關圖像增強基礎知識介紹

目錄 1. 傳統的灰度級動態范圍優化配置方法 2.基于視覺特性的灰度級動態范圍調整優化 1. 傳統的灰度級動態范圍優化配置方法 傳統的灰度級動態范圍調整方法主要包括線性動態范圍調整及非線性動態 范圍調整。線性動態范圍調整是最簡單的灰度級動態范圍調整方法&#xff0c;觀察…

Selenium使用超全指南

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快概述selenium是網頁應用中最流行的自動化測試工具&#xff0c;可以用來做自動化測試或者瀏覽器爬蟲等。官網地址為&#xff1a;相對于另外一款web自動化測試工具QT…