52 lines
1.6 KiB
Vue
52 lines
1.6 KiB
Vue
|
|
<template>
|
|||
|
|
<view class="up-pdf-reader" :style="{ height: height }">
|
|||
|
|
<web-view :fullscreen="false"
|
|||
|
|
:src="viewerUrl" :style="{ width: '750rpx', height: height }"
|
|||
|
|
:webview-styles="{ width: '750rpx', height: height }"
|
|||
|
|
frameborder="0"
|
|||
|
|
></web-view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import props from './props.js';
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* pdfReader PDF阅读器
|
|||
|
|
* @description 基于pdf.js的PDF阅读器组件
|
|||
|
|
* @tutorial https://uview-plus.jiangruyi.com/components/pdfReader.html
|
|||
|
|
* @property {String} src PDF文件地址
|
|||
|
|
* @property {String} height 组件高度,默认为'700px'
|
|||
|
|
* @property {String} pdfjsDomain pdfjs资源域名,默认为'https://uview-plus.jiangruyi.com/h5'
|
|||
|
|
* @example <up-pdf-reader src="https://example.com/file.pdf"></up-pdf-reader>
|
|||
|
|
*/
|
|||
|
|
export default {
|
|||
|
|
name: 'up-pdf-reader',
|
|||
|
|
mixins: [props],
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
baseUrlInner: 'https://uview-plus.jiangruyi.com/h5',
|
|||
|
|
viewerUrl: ''
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
watch: {
|
|||
|
|
baseUrl: function (val) {
|
|||
|
|
this.baseUrl = val;
|
|||
|
|
},
|
|||
|
|
src: function (val) {
|
|||
|
|
this.viewerUrl = `${this.baseUrlInner}/static/pdfjs/web/viewer.html?file=` + encodeURIComponent(val);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
mounted() {
|
|||
|
|
if (this.baseUrl) {
|
|||
|
|
this.baseUrlInner = this.baseUrl;
|
|||
|
|
}
|
|||
|
|
this.viewerUrl = `${this.baseUrlInner}/static/pdfjs/web/viewer.html?file=` + encodeURIComponent(this.src);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss" scoped>
|
|||
|
|
.up-pdf-reader {
|
|||
|
|
}
|
|||
|
|
</style>
|