Vue+ElementUI實(shí)現(xiàn)文件照片音頻視頻預(yù)覽功能
Vue+ElementUI實(shí)現(xiàn)文件照片音頻視頻預(yù)覽功能,內(nèi)容如下所示:
1. 需求是點(diǎn)擊預(yù)覽按鈕 根據(jù)文件名的后綴去實(shí)現(xiàn)預(yù)覽
2. 具體實(shí)現(xiàn)代碼及邏輯
1.預(yù)覽彈框 <el-dialog :visible.sync="visibleFile" width="40%" :close-on-click-modal="false" @close="cancelHandler" :append-to-body="true"> <audio style=" width: 100%; height: 100px; padding: 30px; margin-top: 10px; " v-if="isVideo" controls :src="previewUrl" ></audio> <video style="padding: 20px; margin-top: 20px" v-if="isAudio" width="100%" height="600" controls :src="previewUrl" ></video> <iframe v-if="isExcel" :src="excelPreviewUrl" frameborder="0" width="100%" height="600" > </iframe> <div style=" width: 100%; height: 600px; display: flex; justify-content: center; align-items: center; " v-if="isImage" > <img class="previewImg" :src="previewUrl" alt="" style="max-width: 100%; max-height: 700px" /> </div> </el-dialog> 2.data定義 isAudio: false, //視頻 isVideo: false, //音頻 isImage: false, //照片 isExcel: false, //文件 excelPreviewUrl: "", //文件地址 previewUrl: "", //視頻、音頻、照片、文件地址 3.methods cancelHandler() { this.visibleFile = false; }, // 預(yù)覽會傳把這一行的文件名拿到 然后取到后綴名,根據(jù)后綴名進(jìn)行判斷 previewHandle(val) { this.visibleFile = true; if (val.fileExtension == "mp3") { this.previewUrl = val.materialUrl; this.isVideo = true; this.isAudio = false; this.isExcel = false; this.isImage = false; } else if (val.fileExtension == "mp4") { this.previewUrl = val.materialUrl; this.isAudio = true; this.isVideo = false; this.isExcel = false; this.isImage = false; } else if (val.fileExtension == "xlsx" || val.fileExtension == "xls") { const encodedFileUrl = encodeURIComponent(val.materialUrl); // 對文件URL進(jìn)行編碼 this.excelPreviewUrl = `https://view.officeapps.live.com/op/view.aspx? src=${encodedFileUrl}`; // 顯示預(yù)覽 this.isAudio = false; this.isVideo = false; this.isExcel = true; this.isImage = false; } else { this.previewUrl = val.materialUrl; // 顯示預(yù)覽 this.isAudio = false; this.isVideo = false; this.isExcel = false; this.isImage = true; } },
到此這篇關(guān)于Vue+ElementUI實(shí)現(xiàn)文件照片音頻視頻預(yù)覽的文章就介紹到這了,更多相關(guān)Vue ElementUI視頻預(yù)覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript前端靜態(tài)資源預(yù)加載實(shí)現(xiàn)示例
這篇文章主要為大家介紹了JavaScript前端靜態(tài)資源預(yù)加載實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11undefined==null引發(fā)的兩者區(qū)別與聯(lián)系
undefined==null引發(fā)的兩者區(qū)別與聯(lián)系2007-12-12基于JavaScript實(shí)現(xiàn)文字超出部分隱藏
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)文字超出部分隱藏 的相關(guān)資料,需要的朋友可以參考下2016-02-02JS打開層/關(guān)閉層/移動層動畫效果的實(shí)例代碼
JS打開層/關(guān)閉層/移動層動畫效果的實(shí)例代碼,需要的朋友可以參考一下2013-05-05JavaScript 組件之旅(四):測試 JavaScript 組件
本期,我們要討論的話題是 JavaScript 的測試,以檢查組件的狀態(tài)和工作方式是否符合預(yù)期,還會介紹一個(gè)可以方便編寫測試用例的測試方法。這里說的測試當(dāng)然是使用自動化的測試手段,這是軟件質(zhì)量保證(QA)的重要環(huán)節(jié)。2009-10-10