最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue預(yù)覽本地pdf文件方法之vue-pdf組件使用

 更新時(shí)間:2024年03月21日 11:20:16   作者:菜鳥茜  
這篇文章主要介紹了vue預(yù)覽本地pdf文件方法之vue-pdf組件使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1、npm安裝

npm install --save vue-pdf

2、頁面引入

3、具體實(shí)現(xiàn)

<div class="pdf" v-show="fileType === 'pdf'">
<p class="arrow">
    <span @click="changePdfPage(0)" class="turn" 
             :class="{grey: currentPage==1}">Preview</span>
    {{currentPage}} / {{pageCount}}
    <span @click="changePdfPage(1)" class="turn" 
            :class="{grey: currentPage==pageCount}">Next</span>
</p>                              
<pdf  :src="pdfSrc" :page="currentPage" @num-pages="pageCount=$event" 
        @page-loaded="currentPage=$event"   @loaded="loadPdfHandler">
</pdf>
</div>

4、method方法

// 改變PDF頁碼,val傳過來區(qū)分上一頁下一頁的值,0上一頁,1下一頁
      changePdfPage (val) {
        // console.log(val)
        if (val === 0 && this.currentPage > 1) {
          this.currentPage--
          // console.log(this.currentPage)
        }
        if (val === 1 && this.currentPage < this.pageCount) {
          this.currentPage++
          // console.log(this.currentPage)
        }
      },
 
      // pdf加載時(shí)
      loadPdfHandler (e) {
        this.currentPage = 1 // 加載的時(shí)候先加載第一頁
      },

5、完整代碼

<template>
    <div>
        <div style="text-align: left;">
        <H2>行業(yè)資料</H2>
        <el-divider>
        </el-divider>
        <el-container>
            <el-aside width="300px" style="border: 1px solid #eee;height: 1000px; background-color: #D3DCE6;">
                <div class="myTree">
                <el-tree default-expand-all :props="defaultProps" :data="tableData"  @node-click="handleNodeClick"></el-tree>
                </div>
            </el-aside>
            <el-container  style="border: 1px solid #eee;margin-left: 10px;">
                <div class="pdf" v-show="fileType === 'pdf'">
                    <p class="arrow">
                        <span :class="{grey: currentPage==1}" @click="changePdfPage(0)" class="turn">Preview</span>
                        {{currentPage}} / {{pageCount}}
                        <span :class="{grey: currentPage==pageCount}" @click="changePdfPage(1)" class="turn">Next</span>
                    </p>
                    <pdf
                            :page="currentPage"
                            :src="pdfSrc"
                            @loaded="loadPdfHandler"
                            @num-pages="pageCount=$event"
                            @page-loaded="currentPage=$event">
                    </pdf>
                </div>
            </el-container>
        </el-container>
        </div>
    </div>
</template>
<script>
  import pdf from 'vue-pdf'
 
  export default {
    name: "IndustryInformation",
    components: {pdf},
    data(){
      return {
        currentPage: 0, // pdf文件頁碼
        pageCount: 0, // pdf文件總頁數(shù)
        fileType: 'pdf', // 文件類型
        pdfSrc: '',  // pdf文件地址
        defaultProps: {
          children: 'children',
          label: 'name'
        },
 
        tableData: [{
          id: 1,
          name: '道路工程資料',
          children:[
            {
              id: 2,
              name: '公路工程資料編制概述',
              children:[
                {
                  id: 21,
                  name: '路面工程部分分項(xiàng)劃分表',
                  src: '/1.pdf',
                },
                {
                  id: 13,
                  name: '一般建設(shè)項(xiàng)目單位工程劃分表',
                  src: '/2.pdf',
                },
                {
                  id: 14,
                  name: '路基工程部分分項(xiàng)劃分表',
                  src: '/3.pdf',
                },
                {
                  id: 33,
                  name: '橋梁工程部分分項(xiàng)劃分表',
                  src: '/4.pdf',
                },
                {
                  id: 34,
                  name: '隧道工程部分分項(xiàng)劃分表',
                  src: '/5.pdf',
                }
              ]
            },
            {
              id: 3,
              name: '公路工程竣工資料',
              children:[
                {
                  id: 7,
                  name: '公路工程竣工文件編排層次',
                  src: '/5.pdf',
                },
                {
                  id: 8,
                  name: '工程洽商記錄表',
                  src: '/4.pdf',
                },
                {
                  id: 9,
                  name: '工程設(shè)計(jì)表更、洽商一覽表',
                  src: '/3.pdf',
                }
              ]
            }
          ]}]
      }
    },
    methods:{
      // 改變PDF頁碼,val傳過來區(qū)分上一頁下一頁的值,0上一頁,1下一頁
      changePdfPage(val) {
        // console.log(val)
        if (val === 0 && this.currentPage > 1) {
          this.currentPage--
          // console.log(this.currentPage)
        }
        if (val === 1 && this.currentPage < this.pageCount) {
          this.currentPage++
          // console.log(this.currentPage)
        }
      },
 
      // pdf加載時(shí)
      loadPdfHandler(e) {
        this.currentPage = 1 // 加載的時(shí)候先加載第一頁
      },
 
      handleNodeClick(data) {
        this.pdfSrc = data.src;
      }
 
    }
  }
</script>
<style scoped>
    .myTree /deep/ .el-tree {
        position: relative;
        cursor: default;
        color: #606266;
        background-color: #D3DCE6;
    }
</style>

6、最終效果

后記:

主要是priview和next翻頁不是我想要的效果,因此只能另尋它法。

注意:

pdf文件需要放在public路徑下任意文件夾中,不支持相對路徑

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue.js實(shí)現(xiàn)簡單輪播圖效果

    vue.js實(shí)現(xiàn)簡單輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了vue.js實(shí)現(xiàn)簡單輪播圖效果的相關(guān)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue3項(xiàng)目中ESLint配置和使用

    vue3項(xiàng)目中ESLint配置和使用

    在用vite創(chuàng)建vue3項(xiàng)目時(shí)已經(jīng)選擇了添加ESLint,本文就來介紹一下ESLint在項(xiàng)目中需要怎樣配置和使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • vue-rx的初步使用教程

    vue-rx的初步使用教程

    這篇文章主要介紹了vue-rx的初步使用教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Vue自定義指令學(xué)習(xí)及應(yīng)用詳解

    Vue自定義指令學(xué)習(xí)及應(yīng)用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue中自定義指令的學(xué)習(xí)以及如何利用Vue制作一個(gè)簡單的學(xué)生信息管理系統(tǒng),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • vue豎向步驟條方式

    vue豎向步驟條方式

    這篇文章主要介紹了vue豎向步驟條方式,具有很好的參考價(jià)值,希望對大家有所幫助,
    2023-12-12
  • Vue-Router滾動(dòng)行為的具體使用

    Vue-Router滾動(dòng)行為的具體使用

    在 Vue Router 中,你可以使用滾動(dòng)行為來定義路由切換時(shí)頁面滾動(dòng)的行為,本文就詳細(xì)的介紹一下Vue-Router滾動(dòng)行為的具體使用,感興趣的可以了解一下
    2023-08-08
  • vue中使用TypeScript的方法

    vue中使用TypeScript的方法

    這篇文章主要介紹了vue中使用TypeScript的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • ToB項(xiàng)目如何沉淀業(yè)務(wù)公共組件示例詳解

    ToB項(xiàng)目如何沉淀業(yè)務(wù)公共組件示例詳解

    這篇文章主要為大家介紹了ToB項(xiàng)目如何沉淀業(yè)務(wù)公共組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • vue使用stompjs實(shí)現(xiàn)mqtt消息推送通知

    vue使用stompjs實(shí)現(xiàn)mqtt消息推送通知

    這篇文章主要為大家詳細(xì)介紹了vue中使用stompjs實(shí)現(xiàn)mqtt消息推送通知,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • vscode搭建vue環(huán)境完整圖文教程(適合新手小白)

    vscode搭建vue環(huán)境完整圖文教程(適合新手小白)

    Vue框架的優(yōu)秀設(shè)計(jì)和強(qiáng)大的生態(tài)系統(tǒng)成為了越來越多開發(fā)者選擇Vue的原因,在實(shí)際項(xiàng)目過程中一個(gè)高效的開發(fā)環(huán)境能夠大大提高開發(fā)效率,這篇文章主要給大家介紹了關(guān)于vscode搭建vue環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2023-10-10

最新評論

买车| 县级市| 枣强县| 宁化县| 穆棱市| 洛川县| 安阳市| 喀喇沁旗| 清新县| 梅河口市| 青川县| 遂溪县| 稻城县| 永寿县| 乐东| 正定县| 濉溪县| 淳安县| 桂林市| 渝北区| 保定市| 中西区| 库尔勒市| 桦川县| 筠连县| 通许县| 辽中县| 昌吉市| 石首市| 临江市| 崇仁县| 宿迁市| 保山市| 砀山县| 邯郸县| 澄城县| 伽师县| 潢川县| 朝阳区| 湖北省| 安西县|