闫增涛
2024-11-22 40b16e5fc85c445e0f21cfb75c10f6839fbacdfe
src/views/readerPages/home.vue
@@ -1,30 +1,190 @@
<template>
  <div class="homePage">
    <webHome v-if="!homeBoxHide"/>
    <mobileHome v-if="homeBoxHide"/>
    <webHome v-if="homeBoxWebHide" />
    <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" v-if="dialogState.dialogVisible">
        <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 screenWidth = ref(
  window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth
)
const homeBoxHide = ref(false)
const homeBoxWebHide = ref(false)
const dialogState = reactive({
  dialogVisible: false,
  pdfTitle: '',
  isClear: false,
  p_md5: ''
})
onMounted(() => {
  if (screenWidth.value < 420) {
    homeBoxHide.value = true
  }else{
    homeBoxWebHide.value = false
  } else {
    homeBoxWebHide.value = true
    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%;
}
.custom-dialog {
  .el-dialog {
  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';
    }
  }
}
.pdfModal {
  width: 100%;
  height: 90vh;
  .pdfBox-component {
    width: 100%;
    height: 100%;
    position: relative;
    .preview {
      width: 100%;
      height: 100%;
      .imageBox {
        height: calc(100% - 30px);
        overflow-x: hidden;
        overflow-y: auto;
        background: #ccc;
        box-sizing: border-box;
        img {
          margin: 0 auto;
          display: flex;
          justify-content: center;
        }
      }
      .imageBox:hover {
        cursor: zoom-in !important;
      }
      ::v-deep .el-dialog__header {
        background-color: rgba(0, 0, 0, 0.8);
        .header_title {
          display: flex;
          justify-content: space-between;
          align-items: center;
          color: #fff;
          font-weight: 900;
          font-size: 16px;
          font-family: 'FZLTXIHJW';
          span:nth-child(2):hover {
            cursor: pointer;
          }
        }
        ::v-deep .el-dialog__title,
        ::v-deep .el-dialog__headerbtn .el-dialog__close {
          color: #fff;
          font-weight: 900;
          font-size: 16px;
          font-family: 'FZLTXIHJW';
        }
      }
      .bottom_tool {
        height: 30px;
        background-color: rgba(0, 0, 0, 0.8);
        display: flex;
        justify-content: flex-end;
        align-items: center;
        svg {
          margin-right: 15px;
          fill: #d1d1d1;
        }
        svg:hover {
          fill: #fff;
          cursor: pointer;
        }
      }
    }
    .notBox {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: calc(100% - 30px);
      min-height: 300px;
    }
  }
}
</style>