|
@@ -2,12 +2,14 @@
|
|
|
import { useRoute } from 'vue-router';
|
|
|
import { ref,reactive, onMounted} from "vue";
|
|
|
import VuePdfEmbed from "vue-pdf-embed";
|
|
|
-import { ElMessage, ElLoading } from 'element-plus'
|
|
|
+import { ElMessage, ElLoading } from 'element-plus';
|
|
|
+import {apiGetPDFDetail} from '@/api/report.js'
|
|
|
const route = useRoute();
|
|
|
-
|
|
|
-const pdfSrc = route.query.pdfSrc ||''
|
|
|
+let LOADING
|
|
|
const pdfState = reactive({
|
|
|
- source:pdfSrc,
|
|
|
+ pdf_id:route.query.pdf_id||0,
|
|
|
+ pdf_url:'',
|
|
|
+ pdf_name:''
|
|
|
})
|
|
|
let showHint = ref(false)
|
|
|
const loadingFailed = ()=>{
|
|
@@ -18,21 +20,41 @@ const loadingFailed = ()=>{
|
|
|
const loadedPDF=()=>{
|
|
|
LOADING.close()
|
|
|
}
|
|
|
-let LOADING
|
|
|
+const getPDFDetail = (pdf_id)=>{
|
|
|
+ LOADING = ElLoading.service({
|
|
|
+ target:'.preview-pdf-wrap',
|
|
|
+ text:'正在加载PDF'
|
|
|
+ })
|
|
|
+ apiGetPDFDetail({pdf_id}).then(res=>{
|
|
|
+ if(res.code!==200) return
|
|
|
+ pdfState.pdf_url = res.data.pdf_url
|
|
|
+ pdfState.pdf_name = res.data.pdf_name
|
|
|
+ })
|
|
|
+}
|
|
|
+// 向小程序发送数据
|
|
|
+const handleDataToXcx=()=>{
|
|
|
+ const postData={
|
|
|
+ path:'/pages-report/previewPDF',
|
|
|
+ params:{
|
|
|
+ pdf_id:route.query.pdf_id||0,
|
|
|
+ },
|
|
|
+ title:pdfState.pdf_name,
|
|
|
+ shareImg:''
|
|
|
+ }
|
|
|
+ wx.miniProgram.postMessage({ data: postData })
|
|
|
+}
|
|
|
+
|
|
|
onMounted(()=>{
|
|
|
- if(route.query.pdfSrc.length){
|
|
|
- LOADING = ElLoading.service({
|
|
|
- target:'.preview-pdf-wrap',
|
|
|
- text:'正在加载PDF'
|
|
|
- })
|
|
|
- }
|
|
|
+ getPDFDetail(route.query.pdf_id)
|
|
|
+ handleDataToXcx()
|
|
|
+
|
|
|
})
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<div class="preview-pdf-wrap">
|
|
|
- <template v-if="pdfState.source.length">
|
|
|
- <vue-pdf-embed :source="pdfState.source" @loading-failed="loadingFailed" @loaded="loadedPDF"/>
|
|
|
+ <template v-if="pdfState.pdf_url.length">
|
|
|
+ <vue-pdf-embed :source="pdfState.pdf_url" @loading-failed="loadingFailed" @loaded="loadedPDF"/>
|
|
|
<p v-if="showHint" class="hint">加载PDF失败!</p>
|
|
|
</template>
|
|
|
<template v-else>
|