|
|
- <template>
- <div>
- <div class="edit-container">
- <div class="edit-top">
- <div class="left-top">
- <img src="@/assets/images/back.png" @click="cancel()" />
- <div class="left-title"></div>
- </div>
- <div class="center-top">
- </div>
- <div class="right-top">
- <el-button @click="cancel()">{{ $t('form.cancel') }}</el-button>
- <el-button type="primary" @click="yuedu" v-if="form.zt == 0">{{
- $t('page.business.study.studyMethod.yuedu') }}</el-button>
- </div>
- </div>
- <div class="edit-content ">
- <div class="pdf-layout">
- <div class="pdf-content">
- <pdf id="pdfBox" :page="pageNum" :src="pdfSrc" @progress="loadedRatio = $event"
- @num-pages="totalPages = $event"></pdf>
- </div>
- <div class="btn-layout" v-if="totalPages">
- <div class="pageNum">{{ pageNum }} / {{ totalPages }}</div>
- <el-button-group>
- <el-button round plain type="primary" icon="el-icon-arrow-left" size="mini"
- @click="prePage">上一页</el-button>
- <el-button round plain type="primary" size="mini" @click="nextPage">下一页<i
- class="el-icon-arrow-right el-icon--right"></i></el-button>
- </el-button-group>
- </div>
- </div>
- </div>
- </div>
- <Yd ref="Yd" @callback="closeYd"/>
- </div>
- </template>
-
- <script>
- import { mapGetters } from 'vuex'
- import pdf from 'vue-pdf'
- import Yd from './Yd.vue'
- export default {
- name: "Xq",
- components: { pdf, Yd },
- data() {
- return {
- pdfSrc: '',
- open: false,
- pageNum: 1,
- loadedRatio: 0, // 当前页面的加载进度,范围是0-1 ,等于1的时候代表当前页已经完全加载完成了
- totalPages: 0, //pdf总页数
- form: {},
- }
- },
- computed: {
- ...mapGetters([
- 'nickName'
- ]),
- },
- created() {
-
- },
- methods: {
- yuedu() {
- this.$refs.Yd.show(this.form)
- },
-
- cancel() {
- this.$emit('close')
- },
-
- show(row) {
- this.open = true
- this.form = row
- this.pdfSrc = process.env.VUE_APP_FILE_DOMAIN + row.fileUrl
- this.getPageNum()
- },
-
- // 获取PDF总页数
- getPageNum() {
- let loadingTask = pdf.createLoadingTask(this.fileUrl);
- loadingTask.promise
- .then((pdf) => {
- this.totalPages = pdf.numPages;
- this.$nextTick(() => {
- this.setWatermarkContent();
- });
- })
- .catch((err) => {
- this.$message.warning("pdf加载失败");
- });
- },
- // 上一页
- prePage() {
- let page = this.pageNum;
- page = page > 1 ? page - 1 : this.totalPages;
- this.pageNum = page;
- window.scrollTo(0, 0);
- },
-
- // 下一页
- nextPage() {
- let page = this.pageNum;
- page = page < this.totalPages ? page + 1 : 1;
- this.pageNum = page;
- window.scrollTo(0, 0);
- },
-
- closeYd(val) {
- this.form.zt = val
- }
- }
- }
- </script>
- <style lang="scss">
- .pdf-layout {
- display: flex;
- flex-direction: column;
- align-items: center;
- }
-
- .pdf-content {
- min-width: 1000px;
- min-height: 550px;
- position: relative;
- margin: 0 auto
- }
-
- .btn-layout {
- display: flex;
- flex-direction: column;
- align-items: center;
- }
-
- .content-edit {
- background: #f5f5f5;
- padding: 0;
-
- .edit-top {
- background: #fff;
- padding: 10px 20px;
- margin-bottom: 10px;
- display: flex;
- flex-direction: row;
- align-items: center;
- justify-content: space-between;
-
- .left-top {
- flex-shrink: 0;
- display: flex;
- flex-direction: row;
- align-items: center;
-
- img {
- height: 16px;
- margin-right: 20px;
- cursor: pointer;
- }
-
- .right-top {}
-
- }
- }
-
- .edit-content {
- background: #fff;
- padding: 20px;
- min-height: 500px;
-
- .edit-form {
- width: 800px;
- margin: 0 auto;
- }
- }
- }
- </style>
|