PDF预览 vue如何通过路由传参,同时获取传过来的参数_加蓓努力我先飞的博客-程序员宅基地

技术标签: 前端开发  vue  

vue 路由跳转,路由传参的几种方式

1.配置好路由

 {
    
        path: '/Interation/CreditPDF', //路径
        name: 'CreditPDF',
        meta: {
    
            requireAuth: true
        },
        component: () =>
            import ('@/views/credit/CreditPDF'),//这里是文件所在的位置
    },

2. 路由跳转

2.1. router-link

<router-link :to="{ path: '/Interation/CreditPDF', params: { name: 'name', dataObj: data }, query: { name: 'name', dataObj: data } }"> </router-link>

2.2、$router方式跳转

2.2.1.传参和获取参数(1)

 checkReport(){
    
       const routeUrl = this.$router.resolve({
    
        path: "/Interation/CreditPDF",//路径
        query: {
     
          orderSn:this.report.order,
          reportSn:this.report.report
        }
      });
      window.open(routeUrl.href, "_blank");
    },
this.$router.push({
    
            path: '/Interation/CreditPDF',            
            query: {
    
                name: 'name', 
                dataObj: this.msg
           }
        })
this.$router.push('/Interation/CreditPDF?code=123')
 const orderSn = this.$route.query.orderSn
 const reportSn = this.$route.query.reportSn
 console.log('orderSn,reportSn',orderSn,reportSn);

2.2.2 传参和获取参数(2)

this.$router.push({
    
            name: '/Interation/CreditPDF',            
            params: {
    
                name: 'name', 
                dataObj: this.msg
           }
        })
this.$router.params.参数名

pdf预览

1.下载

在官网下载pdfjs http://mozilla.github.io/pdf.js/getting_started/#download
在这里插入图片描述

2.放入项目

将解压后的pdf文件夹放在static目录下
在这里插入图片描述

2333.pdf,的路径是/static/2333.pdf
viewer.html的路径是/static/pdf/web/viewer.html

<template>
  <div id="Credit" :style="availHeight">
  </div>
</template>
<script>
export default {
    
     name: "Credit",
    data() {
    
      return {
    
        availHeight:{
    
          height:'1040px',
          // background:'pink',
        },
      }
    },
    mounted(){
    
    // this.$route.params
      const orderSn = this.$route.query.orderSn
      const reportSn = this.$route.query.reportSn
      console.log('orderSn,reportSn',orderSn,reportSn);
	this.availHeight.height=window.screen.availHeight
   //  var url = window.location.origin+"/getReport?"+ "order11=${order11}" + "&order22=${order22}"+ "&report=PDF";//测试用的假接口
     var url = window.location.origin+"/static/2333.pdf";
	var pdfUrl = window.location.origin+"/static/pdf/web/viewer.html?file=" + encodeURIComponent(url);
	 $('#Credit').append('<iframe class="prism-player" id="iframe" src='+pdfUrl+' style="height:100%;width:100%" ></iframe>');

    },
// var url = encodeURIComponent(window.location.origin+'/other/202101/dc88623a-74c4-49c4-bc95-7e34d9cf6163.pdf')
// window.open(window.location.origin + window.location.pathname+'static/pdf/web/viewer.html?file='+url)
}
</script>
<style lang="sass" scoped>
</style>

或者

<template>
  <div id="CreditRisksAnalyzePDF" :style="availHeight">

  </div>
</template>
<script>
export default {
    
  name: "CreditRisksAnalyzePDF",
  data() {
    
    return {
    
      availHeight: {
    
        height: "1040px",
      },
    };
  },
  mounted() {
    
    let address = "";
    let devType = process.env.NODE_ENV;
    switch (devType) {
    
      case "Formal":
        address = "http://11.11.11.111:8081";
        break;
      case "New":
        address = "http://11.11.11.111:8081";
        break;
      default:
        address = "http://11.11.11.111:8081";
    }
    console.log("devType", devType);
    const orderSn = this.$route.query.orderSn;
    const reportSn = this.$route.query.reportSn;
    console.log("orderSn,reportSn", orderSn, reportSn);
    this.availHeight.height = window.screen.availHeight;
    // console.log('this.availHeight.height',this.availHeight.height);
    var url =address +"/data/getReport?" +"orderSn=" +orderSn +"&reportSn=" +reportSn +"&reportStyle=PDF";
    // var url = window.location.origin+"/static/2333.pdf";
    var pdfUrl =window.location.origin +window.location.pathname +"static/pdf/web/viewer.html?file=" +encodeURIComponent(url);
    $("#CreditRisksAnalyzePDF").append('<iframe class="prism-player" id="iframe" src=' +pdfUrl +' style="height:100%;width:100%" ></iframe>'
    );
  },
  // var url = encodeURIComponent(window.location.origin+'/other/202101/dc88623a-74c4-49c4-bc95-7e34d9cf6163.pdf')
  // window.open(window.location.origin + window.location.pathname+'static/pdf/web/viewer.html?file='+url)
};
</script>
<style lang="sass" scoped>
</style>

在这里插入图片描述
出错的话试试这个
注释viewer.js的代码:

//    if (fileOrigin !== viewerOrigin) {
    
//      throw new Error('file origin does not match viewer\'s');
//    }

在这里插入图片描述

仅供学习参考

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ingenuou_/article/details/118704398

智能推荐

Hadoop的高可用模式_Ajie_Joker的博客-程序员宅基地

Hadoop的高可用模式(个人理解)hadoop的高可用模式就是实现hadoop的主从,主节点的namenode挂掉以后,从节点的namenode可以直接顶替master继续使用使用三台虚拟机,名称分别为 master node1 node21.配置免密3、免密钥 (远程执行命令)在两个主节点生成密钥文件master和node1都操作 ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa ssh-copy-id ip master-->master,

java 中使用logback日志,并实现日志按天分类压缩保存_java -jar 怎么把log日志按时间归类-程序员宅基地

在最新的Java开发手册(泰山版)中,对日志的记录有一条强制的要求:**【强制】**所有日志文件至少保存15天,因为有些异常具备以“周”为频次发生的特点。对于当天日志,以“应用名.log”来保存,保存在/home/admin/应用名/logs/</font>目录下,过往日志格式为: {logname}.log.{保存日期},日期格式:yyyy-MM-dd**说明:**以mppserver应用为例,日志保存在/home/admin/mppserver/logs/mppserver.log,历史_java -jar 怎么把log日志按时间归类

java图像平滑_图像平滑处理(示例代码)_云糖宝的博客-程序员宅基地

1,均值滤波:任意一个点的像素都是周围N*N个像素值的均值,将N*N的大小称为核的大小核大小一般用元组表示:(行,列)#图像平滑:均值滤波#函数blur#dst=cv2.blur(src,核):核的格式=(行,列)import cv2a=cv2.imread("imagelenaNoise.png")r=cv2.blur(a,(5,5))cv2.imshow("original",a)cv2.im..._javafx 图片平滑

分布式文件存储相关概念_分布式文件存储协议-程序员宅基地

分布式文件存储相关概念_分布式文件存储协议

日志正则表达式模板_希嘉日志 正则表达式-程序员宅基地

结果logger.error("Logger: "+e.getMessage()+"\n\tat "+this.getClass().getName()+"."+Thread.currentThread().getStackTrace()[1].getMethodName()+"("+Thread.currentThread().getStackTrace()[1].getFileName()+":"+Thread.currentThread().getStackTrace()[1].getLineNum_希嘉日志 正则表达式

随便推点

智能数据分流Smart Data Offload_data to offload-程序员宅基地

泰尔网 2014-06-09 14:06:18 来源 [电信网技术] 作者 Adrian Schumacher摘要1 引言智能手机、平板电脑和其他移动设备使得事实上能够从任何地方方便地访问互联网,因为蜂窝通信网络能够在诸如HSPA+和LTE这样的宽带链路上传递丰富的内容,而HSPA+和LTE的速率类似家庭或办公室内的有线网络速率。然而,当许多移动用户_data to offload

基于ARM64的python3安装opencv_arm python3-程序员宅基地

参考链接https://blog.csdn.net/qq_25005909/article/details/78554469!!!_arm python3

微博大V@爱可可:arXiv论文怎么读?_大v拼音-程序员宅基地

来源 | 爱可可爱生活(公众号ID:ai_co_co)长话短说,先看图:总的来说,arXiv学海无涯,泛舟有道:想清楚,巧选择,多泛读,勤总结。其实不止arXiv,其他论..._大v拼音

oracle数据库下载要钱吗,oracle数据库要钱的吗-程序员宅基地

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件展开所有Oracle软件本身是免费的,因此任何人都可以从Oracle的官方网站下载并安装Oracle的数据库软件。收费是许可证,这是软件授权。如果数据库用于商业目的,则需要购买相应的Oracle产品。执照。如果仅用于学习或教育目的,则免费。现在,Oracle根据CPU数量(进程)和用户数量(命名用户Plus)有两种授权..._oracle sql要钱吗

【若依】开源框架学习笔记 01_MichelleChung的博客-程序员宅基地

假期学习一下若依框架,顺便记录一下学习笔记。

join 异步阻塞介绍-程序员宅基地

join 异步阻塞介绍join 操作的原理是:阻塞当前的线程,直到准备合并的目标线程的执行完成。线程的 join 合并流程:在 Java 中,线程(Thread)的合并流程是:假设线程 A 调用了线程 B 的 B.join 方法,合并 B线程。那么,线程 A 进入阻塞状态,直到 B 线程执行完成。使用 join 实现异步泡茶喝的实践案例流程图:代码实现:public class JoinDemo { public static final int SLEEP_GAP = 5