From 11433c56279d667305b0b627e205000851bc0456 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期二, 25 六月 2024 15:34:55 +0800
Subject: [PATCH] 新增pdf预览功能

---
 src/views/readerPages/home.vue |  130 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 122 insertions(+), 8 deletions(-)

diff --git a/src/views/readerPages/home.vue b/src/views/readerPages/home.vue
index 47ca510..19293a9 100644
--- a/src/views/readerPages/home.vue
+++ b/src/views/readerPages/home.vue
@@ -1,30 +1,144 @@
 <template>
   <div class="homePage">
-    <webHome v-if="!homeBoxHide"/>
-    <mobileHome v-if="homeBoxHide"/>
+    <webHome v-if="!homeBoxHide" />
+    <mobileHome v-if="homeBoxHide" />
+  </div>
+  <div class="pdfDialog">
+    <el-dialog
+      v-model="dialogState.dialogVisible"
+      width="60vw"
+      top="2vh"
+      lock-scroll
+      :show-close="false"
+      class="custom-dialog"
+    >
+      <template #header>
+        <div class="header_title">
+          <span>{{ dialogState.pdfTitle }}</span>
+          <span @click="dialogState.dialogVisible = false"> x </span>
+        </div>
+      </template>
+      <div class="pdfModal">
+        <preView :isClear="dialogState.dialogVisible" :md5="dialogState.p_md5"></preView>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script setup lang="ts">
-import { ref, onMounted } from 'vue'
+import { ref, onMounted, reactive, inject } from 'vue'
 import webHome from '@/views//readerPages/webHome.vue'
 import mobileHome from '@/views//readerPages/mobileHome.vue'
+import preView from '../components/pdfview.vue'
+// import { da } from 'element-plus/es/locale'
+const qiankunActions = inject('qiankunActions')
 const screenWidth = ref(
   window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
 )
 const homeBoxHide = ref(false)
-
+const dialogState = reactive({
+  dialogVisible: false,
+  pdfTitle: '',
+  isClear: false,
+  p_md5: ''
+})
 onMounted(() => {
   if (screenWidth.value < 420) {
     homeBoxHide.value = true
-  }else{
+  } else {
     homeBoxHide.value = false
   }
+  window.qiankunActions.setGlobalState({
+    openPDF: (data) => {
+      console.log('鐖跺簲鐢�', data)
+      if (data.data.md5) {
+        const { md5, title } = data.data
+        dialogState.p_md5 = md5
+        dialogState.pdfTitle = title
+      }
+      dialogState.dialogVisible = true
+    }
+  })
 })
 </script>
 
 <style lang="less">
-.homePage{
-    width:100%;
-    height:100%;
+.homePage {
+  width: 100%;
+  height: 100%;
+}
+
+.pdfDialog {
+  .el-overlay {
+    z-index: 2004 !important;
+  }
+}
+.pdfModal {
+  width: 100%;
+  height: 90vh;
+}
+
+.custom-dialog {
+  overflow: hidden !important;
+  padding: 0;
+
+  .el-dialog__body {
+    padding: 0;
+  }
+
+  .el-dialog__header {
+    background-color: rgba(0, 0, 0, 0.8);
+    padding: 0;
+    padding: 10px 0;
+
+    .header_title {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      color: #fff;
+      font-weight: 900;
+      font-size: 16px;
+      font-family: 'FZLTXIHJW';
+      padding: 5px 20px;
+      box-sizing: border-box;
+
+      span:nth-child(2):hover {
+        cursor: pointer;
+      }
+    }
+
+    .el-dialog__title,
+    .el-dialog__headerbtn .el-dialog__close {
+      color: #fff;
+      font-weight: 900;
+      font-size: 16px;
+      font-family: 'FZLTXIHJW';
+    }
+  }
+}
+
+@media screen and (max-width: 1070px) {
+  .pdfModal {
+    width: 100%;
+    height: 80vh;
+  }
+
+  .custom-dialog {
+    .el-dialog {
+      width: 90vw !important;
+    }
+  }
+}
+
+@media screen and (max-width: 800px) {
+  .pdfModal {
+    width: 100%;
+    height: 60vh;
+  }
+
+  .custom-dialog {
+    .el-dialog {
+      width: 90vw !important;
+    }
+  }
 }
 </style>

--
Gitblit v1.9.1