Vue 传参打开新页面,并打印部分内容

2 篇文章 0 订阅

一、需求

输入单号,点击“打印”按钮 ---> 弹出新页面,打印单号信息

在这里插入图片描述
图一
你还
图二

二、代码实现

1. 传参到新页面
<el-form-item label="单号" prop="noticeNumber">
	<el-input v-model="searchForm.noticeNumber"></el-input>
</el-form-item>
<el-button @click="deliveryPrint(searchForm.noticeNumber)" style="width: auto;">
    打印单号对应的出库领用单
</el-button>

//打印出库单
deliveryPrint(noticeNumber){
    if(noticeNumber) {
        let routeData = this.$router.resolve({
            path: "/components/deliveryPrint", //路由path
            query: {
                noticeNumber: noticeNumber
            }
        });
        window.open(routeData.href, '_blank');
    }else {
        this.$message.error("当前单号为空!");
    }
}
2. 新页面 deliveryPrint.vue 接收参数
<template>
    <div id="printArea">
         {{this.$route.query.noticeNumber}}
     </div>
</template>
3. 新页面弹出打印弹框
4. 取消弹框自动关闭该页面
data() {
    return {
        noticeNumber: "",
    };
},
methods: {
	pagePrint(){
	    var print = document.getElementById("printArea"); //这一句
	    document.body.innerHTML = print.innerHTML;        //和这一句 
	    //上面两句是因为使用了element-ui的布局和标签页,打开新页面时仍然会携带顶部栏和侧边栏,
	    //这两句可以将body设置为本vue页面,将外部边框隐藏掉
	    window.print(); //弹出打印框
	    window.close(); //取消则关闭当前页面
    }
},
watch: {
	noticeNumber: function() { //监听赋值,在数据加载完毕后执行
        this.$nextTick(function(){
            this.pagePrint();
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值