Forráskód Böngészése

pc端直接获取PDF信息

cxmo 1 éve
szülő
commit
c319f0f2aa
2 módosított fájl, 44 hozzáadás és 13 törlés
  1. 9 0
      src/api/report.js
  2. 35 13
      src/views/report/PreviewPDF.vue

+ 9 - 0
src/api/report.js

@@ -258,4 +258,13 @@ export const apiReportClassifyMenuList=params=>{
  */
 export const apiReportChapterAudioSet=params=>{
     return post('/report/report_chapter/set',params)
+}
+
+/**
+ * 获取PDF详情
+ * @param pdf_id 
+ * @returns 
+ */
+ export const apiGetPDFDetail = params=>{
+    return httpGet('/report/pdf/detail',params)
 }

+ 35 - 13
src/views/report/PreviewPDF.vue

@@ -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>