vue打印图片以及通过url传递参数

文章介绍了在Vue项目中如何使用vue-print-nb插件来打印图片,包括引入、注册组件以及通过ID绑定图片。同时,讨论了在路由中传递参数的方法,如通过$route.params获取URL参数,并在beforeRouteEnter钩子中处理这些参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打印图片

1、终端执行  npm i vue-print-nb
2、main.js 中全局引入
import Print from ‘vue-print-nb’; //引入
Vue.use(Print); //注册
3、通过id绑定要打印的图片
<el-image id="imagePrint"
        style="width: 100px; height: 100px"
        :src="require('@/assets/img/icon.png')">
</el-image>
4、v-print绑定按钮
<el-button v-print="printObj">打印</el-button>

5.打印照片配置参数
data() {
  return {
    printObj:{
      id:'imagePrint',//必须携带,
      popTitle:"",//打印配置页上方的标题
    },
  }
},
其他的参数一般不需要配置

url传递参数

我当时面临的需求是通过二维码跳转至某页面,这个过程需要传递参数。这种条件下我不能用以前的push。本来好兄弟让我通过window.location.href去拿url再拼接走一遍,最后还是百度出来了,以下是我总结的方法。由于保密性质,以下代码只看形似。

首先是在route的index.js中配置路由
 {
	 path: '/message/:name/:sex',
	 component: () =>import('@/components/student/message')
 },
 url请求如下:
 http://localhost'/message/zhangsan/男
 可以在mounted方法里对参数进行处理。
 let a=this.$route.params.name;//zhangsan
 let b=this.$route.params.sex;//男

自己的路要自己走,不拉别人陪跑。

续写:

本来以为这样已经可以了,但是吧,因为修改了路由,导致必须请求时必须带入参数,一般路由也是不需要的,就算我强行使用这个方法,因为我们用的若依框架,这么请求会导致界面没有左侧菜单栏的。公司的前端教我使用以下的方法拦截url:

vue文件是若依菜单指向的,这个方法是与mounted同级的
beforeRouteEnter(to, from, next) {
    next(vm => {
      vm.newId= to.query.newId? to.query.newId: null;
    });
  },
  url如下:
  http://localhost'/message/zhangsan?newId=123456

完结撒花

vue-print-nb是一个Vue.js的插件,用于在浏览器中打印指定的内容。它可以通过配置参数来实现批量打印URL。 以下是使用vue-print-nb批量打印URL的步骤: 1. 在终端中执行以下命令安装vue-print-nb插件: ```shell npm i vue-print-nb ``` 2. 在main.js文件中全局引入vue-print-nb插件: ```javascript import Print from 'vue-print-nb'; Vue.use(Print); ``` 3.Vue组件中,使用v-for指令循环生成多个包含URL的元素,例如: ```html <template> <div> <div v-for="(url, index) in urlList" :key="index"> <img :src="url" style="width: 100px; height: 100px"> </div> <el-button @click="printUrls">打印</el-button> </div> </template> ``` 4.Vue组件的data中定义urlList数组,用于存储要打印URL列表: ```javascript data() { return { urlList: [ 'https://example.com/image1.jpg', 'https://example.com/image2.jpg', 'https://example.com/image3.jpg' ] } } ``` 5.Vue组件的methods中定义printUrls方法,用于触发打印操作: ```javascript methods: { printUrls() { this.$print({ ids: this.urlList.map((url, index) => `imagePrint${index}`), popTitle: "批量打印URL" }); } } ``` 在上述代码中,我们使用v-for指令循环生成多个包含URL的div元素,并为每个div元素设置了一个唯一的id(例如imagePrint0、imagePrint1、imagePrint2)。然后,在printUrls方法中,我们通过this.$print方法调用vue-print-nb插件的打印功能,传递了要打印的元素的id列表和打印配置参数。 这样,当点击"打印"按钮时,vue-print-nb插件会将指定的URL批量打印出来。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值