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