|
@@ -1,25 +1,42 @@
|
|
|
<template>
|
|
|
- <view class="pdf-container" v-if="pdfUrl" >
|
|
|
- <template v-if="systemInfo.platform == 'android'">
|
|
|
- <web-view
|
|
|
- :src="pdfUrl1"
|
|
|
- class="web-view"></web-view>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <web-view :src="pdfUrl" class="web-view"></web-view>
|
|
|
- </template>
|
|
|
+ <view class="pdf-container" v-if="pdfUrl">
|
|
|
+ <button @click="handleOpen">PDF预览</button>
|
|
|
</view>
|
|
|
+ <uni-popup ref="popup" type="bottom" background-color="#fff" border-radius="10px 10px 0 0" :mask-click="false" :animation="false">
|
|
|
+ <view style="height:90vh;padding: 0;margin: 0">
|
|
|
+ <uni-nav-bar shadow left-icon="left" title="PDF预览" @clickLeft="handleBack" />
|
|
|
+ <web-view :src="pdfUrl1" v-if="showPdfUrl" class="web-view" style="margin-top: 50px"></web-view>
|
|
|
+ </view>
|
|
|
+ </uni-popup>
|
|
|
+
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
+ import {
|
|
|
+ nextTick,
|
|
|
+ ref
|
|
|
+ } from "vue"
|
|
|
const props = defineProps({
|
|
|
pdfUrl: {
|
|
|
type: String
|
|
|
}
|
|
|
})
|
|
|
- const systemInfo = uni.getSystemInfoSync();
|
|
|
-
|
|
|
- const pdfUrl1 = `/hybrid/html/web/viewer.html?file=${encodeURIComponent(props.pdfUrl)}`
|
|
|
+ const showPdfUrl = ref(false)
|
|
|
+ let pdfUrl1 = '';
|
|
|
+ const popup = ref(null)
|
|
|
+
|
|
|
+ function handleOpen() {
|
|
|
+ popup.value.open('bottom')
|
|
|
+ pdfUrl1 = `/hybrid/html/web/viewer.html?file=${encodeURIComponent(props.pdfUrl)}`;
|
|
|
+ setTimeout(() => {
|
|
|
+ showPdfUrl.value = true;
|
|
|
+ }, 50)
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleBack() {
|
|
|
+ popup.value.close()
|
|
|
+ showPdfUrl.value = false;
|
|
|
+ }
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss">
|