You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.9 KiB
81 lines
1.9 KiB
<template>
|
|
<el-dialog
|
|
:title="title"
|
|
:v-loading="loadingPDF"
|
|
:visible.sync="isShowPDF"
|
|
:modal-append-to-body="false"
|
|
:append-to-body="true"
|
|
top="1vh"
|
|
>
|
|
<div>
|
|
<el-button-group>
|
|
<el-button type="primary" icon="el-icon-arrow-left" size="mini" @click="prePage">上一页</el-button>
|
|
<el-button type="primary" size="mini" @click="nextPage">下一页<i class="el-icon-arrow-right el-icon--right"></i></el-button>
|
|
</el-button-group>
|
|
<div style="marginTop: 10px; color: #409EFF">{{ pageNum }} / {{ pageTotalNum }}</div>
|
|
<pdf
|
|
:page="pageNum"
|
|
:src="urlPDF"
|
|
@progress="loadedRatio = $event"
|
|
@num-pages="pageTotalNum=$event"
|
|
></pdf>
|
|
</div>
|
|
<span slot="footer" class="dialog-footer">
|
|
<el-button @click="close">取 消</el-button>
|
|
</span>
|
|
</el-dialog>
|
|
</template>
|
|
<script>
|
|
|
|
import pdf from 'vue-pdf'
|
|
|
|
export default {
|
|
name: 'Pdf',
|
|
components: {
|
|
pdf,
|
|
},
|
|
data() {
|
|
return {
|
|
// urlPDF: 'http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf',
|
|
pageNum: 1,
|
|
pageTotalNum: 1, //总页数
|
|
loadedRatio: 0, // 当前页面的加载进度,范围是0-1 ,等于1的时候代表当前页已经完全加载完成了
|
|
}
|
|
},
|
|
props: {
|
|
urlPDF: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
title: {
|
|
type: String,
|
|
default: '',
|
|
},
|
|
isShowPDF: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
loadingPDF: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
},
|
|
methods: {
|
|
// 上一页
|
|
prePage() {
|
|
let page = this.pageNum
|
|
page = page > 1 ? page - 1 : this.pageTotalNum
|
|
this.pageNum = page
|
|
},
|
|
// 下一页
|
|
nextPage() {
|
|
let page = this.pageNum
|
|
page = page < this.pageTotalNum ? page + 1 : 1
|
|
this.pageNum = page
|
|
},
|
|
close(){
|
|
this.$emit('closePDF')
|
|
}
|
|
}
|
|
}
|
|
</script>
|