vue如何在線預(yù)覽各類型文件
更新時(shí)間:2023年11月17日 10:44:33 作者:如果會(huì)御劍
這篇文章主要介紹了vue如何在線預(yù)覽各類型文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
此文章是在vue-admin-template后臺(tái)上做的功能
1.新建組件previewFile => index.vue
<template>
<div :class="['dialog-box',isCollapse?'analysis-dialog':'analysis']">
<el-dialog
:title="`${file.title}文件預(yù)覽`"
:visible.sync="file.dialogVisible"
:before-close="handleClose"
:width="isCollapse?'calc(100% - 54px)':'calc(100% - 238px)'"
top="0"
>
<div>
<iframe
class="child"
frameborder="0"
:src="'http://view.xdocin.com/xdoc?_xdoc=' + file.fileurl"
:style="{ height: height }"
/>
</div>
</el-dialog>
</div>
</template><script>
import { mapGetters } from 'vuex'
export default {
props: {
file: {
type: Object,
default: function() {
return {
fileurl: '',
dialogVisible: false,
title: ''
}
}
}
},
data() {
return {
height: window.innerHeight - 120 + 'px',
dialogVisible: false
}
},
// 這里是用來(lái)判斷左邊菜單欄是否打開
computed: {
...mapGetters(['sidebar']),
isCollapse() {
return !this.sidebar.opened
}
},
methods: {
handleClose() {
this.file.dialogVisible = false
}
}
}
</script><style scoped>
.child {
width: 100%;
height: 100%;
border: 0;
}
.dialog-box>>>.el-dialog__headerbtn{
font-size: 34px;
}
.analysis>>>.el-dialog{
left: 119px;
}
.analysis-dialog>>>.el-dialog{
left: 27px;
}
</style>上面用到vuex只是用來(lái)判斷左邊菜單欄是否打開,用來(lái)適配彈窗的寬度而已,如果不需要可以刪除,不影響功能。


2.引用組件
<div>
<div>
<el-button
size="mini"
type="success"
@click="handlepreview"
>預(yù)覽</el-button>
</div>
<!-- 預(yù)覽文件 -->
<preview-file :file="file" />
</div>
<script>
export default {
components: {
PreviewFile: () => import('@/components/previewFile/index.vue')
},
data(){
return{
file: {
fileurl: '',
dialogVisible: false,
title: ''
}
}
},
methods:{
// 預(yù)覽
handlepreview() {
// console.log(index, row)
// 這里的id是傳給后端接口的id,沒有可以不傳
downtemplate({ id: row.id }).then(res => {
this.file.fileurl = encodeURIComponent(res.data),//后端請(qǐng)求回來(lái)的文件地址url
this.file.dialogVisible = true,//彈窗
this.file.title = row.title,//文件名稱
})
},
}
}
</script>總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue插件draggable實(shí)現(xiàn)拖拽移動(dòng)圖片順序
這篇文章主要為大家詳細(xì)介紹了vue插件draggable實(shí)現(xiàn)拖拽移動(dòng)圖片順序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Vite+Electron快速構(gòu)建VUE3桌面應(yīng)用的實(shí)現(xiàn)
本文主要介紹了Vite+Electron快速構(gòu)建VUE3桌面應(yīng)用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
vue項(xiàng)目中向數(shù)組添加元素的3種方式
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中向數(shù)組添加元素的3種方式,在Vue中添加元素到數(shù)組非常簡(jiǎn)單,文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10
vue集成openlayers加載geojson并實(shí)現(xiàn)點(diǎn)擊彈窗教程
這篇文章主要為大家詳細(xì)介紹了vue集成openlayers加載geojson并實(shí)現(xiàn)點(diǎn)擊彈窗教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09

