vue常用插件之打印功能、二维码插件、批量打印二维码

摘要:
--no-print样式类为不打印区域--˃methods:{handlePrintText(){this.$print}}实现批量打印二维码1、安装二维码插件npmiqrcodejs2-S2、导入插件importQRCodefrom'qrcodejs2';3、使用˂!
  • vue实现打印的两种方法
  • vue实现批量打印二维码 (需安装二维码插件qrcodejs2)

一、vue-print-nb插件

1、安装: npm i vue-print-nb -S

2、全局注册(main.js):

import Print from 'vue-print-nb'
Vue.use(Print)

3、使用:

<div   >
  <p>锄禾日当午</p>
  <p>汗滴禾下土 </p>
  <p>谁知盘中餐</p>
  <p>粒粒皆辛苦</p>
</div>
<button v-print="'#printTest'">打印</button>

二、手动下载插件到本地

插件地址:https://github.com/xyl66/vuePlugs_printjs

1、在src下新建文件夹plugs,将下载好的print.js放入plugs文件夹下

2、全局注册(main.js):

import Print from './plugins/print'
Vue.use(Print) // 注册

3、使用

<div ref="print" >
  <p>打印内容</p>
  <p class="no-print">不要打印我</p>
</div>
<button @click="handlePrintText">打印</button>
<!--no-print样式类 为不打印区域-->
methods:{
  handlePrintText(){
    this.$print(this.$refs.print)
  }
}

实现批量打印二维码

1、安装二维码插件
npm i qrcodejs2 -S

2、导入插件
import QRCode from 'qrcodejs2';

3、使用

<!--设置打印内容在页面上不可见-->
<div style="display:none;">
  <div ref="print" id="printStyle">
   <div   v-for="(item,index) in this.goodsData" :key="index">
      <h2>{{item.name}}</h2>
      <div   ref=codeItem></div>
    </div>
  </div>
</div>
<button @click="handleBatchPrintCode">批量打印</button>
//假设需要批量打印的数组为goodsData:[{name:'商品1', code:'123'},{name:'商品2', code:'456'}]
methods:{
  handleBatchPrintCode(){
    //必须要等到页面加载完成,不然会报错
    this.$nexTick(()=>{
      this.goodsData.forEach((item,index)=>{
        let code = item.code;
        this.$refs.codeItem[index].innerHTML="";
        new QRCode(this.$refs.codeItem[index], {
          text: code, //二维码内容
           200,
          height: 200,
          // colorDark: "#333333", //二维码颜色
          // colorLight: "#ffffff", //二维码背景色
        })
      })
      setTimeout(()=>{
        this.$print(this.$refs.print);
      },200)
    })
  }
}

4、样式问题

//打印样式放在这个里面就可以了
@media print{
  #printStyle .item{
    margin: 10px;
  }
  #printStyle h2{
      font-size: 30px;
  }

}

5、效果图
这两种方法效果一样,点击按钮弹出一个打印弹窗,唯一不同的是调用方法不一样,看个人需求选择使用哪种
vue常用插件之打印功能、二维码插件、批量打印二维码第1张

ps:功能算是实现了,具体还没连打印机,所以没法测试,有问题后面再补充

免责声明:文章转载自《vue常用插件之打印功能、二维码插件、批量打印二维码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇移动端禁止屏幕滚动ICE框架之Slice2CSharp映射---异常的映射下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue如何加入百度ssp广告位代码

vue如何加入百度联盟广告,可以参考 :http://www.cnblogs.com/beileixinqing/p/8379184.html 这里讲述vue如何加入百度ssp媒体的广告 这里是百度异步加载代码的说明 由于vue不能直接在页面中放置很多段js,script标签,所以最好的办法是采用异步加载的方式,vue引用的js只能放在index页面中,所...

Vue表格中对某个数据进行简单处理

Vue表格中对某个数据进行简单处理 在很多的场景中,我们后端从数据库拿到的数据需要进行一些处理再展示到前端上,比如本文举例的论文查重系统中的重复率这一列,该列的数据在数据库是小数形式存在,前端需要展示的是百分比形式。这样我们需要前端对数据进行一个处理。 在vue文件中,首先在列表的代码中,我们需要在需要处理的列中加上属性项:formatter=Functi...

【Vuejs】269- 提升90%加载速度——vuecli下的首屏性能优化

前言 之前用 vuecli做了个博客,是一个单页面项目,大概有十个路由直接 npm run build打包出来,有一个 1M的巨大 js文件 先挂载到服务器上试试好家伙 这加载时间 仿佛过了半个世纪 首屏页面整整加载了 9s 光加载那个大文件就花了 8s这必须得做个优化了,没有用户能忍受 9s的白屏而不关闭页面的 过程中,我还顺便把项目从 vuec...

Vue的mixin的一点使用(table的头部sticky的实现)

大家对mixin应该熟悉,它能全局或者配置mixin的组件添加公共属性与方法。这里展示一次具体的使用。 在使用element-ui时(别的场景一样出现),table过长时滚动时,头部滚出视图了,就无法知道下面内容每一列代表啥。这里的实现方案采用sticky即可,即滚出视图让列表的头部固定在顶部。 这里采用mixin来实现,需要的页面配置mixin即可,代码...

vue 弹框

弹框展示: 代码: 1 <template> 2 <div> 3 <el-col :span="9" style="text-align: right;"> 4 <el-button @click="dialogVisible=true" 5...

vue中记录页面的滚动距离

业务需求:pageOne页面是一个商品列表页面,在这个页面点击商品,就会跳转到pageTwo商品详细页面。此时再从pageTwo页面返回到pageOne页面时,pageOne页面需要做到:1.记录pageOne之前的滚动的距离。2.不重新请求数据。而从其它页面进入到pageOne页面时,pageOne页面不需要记录之前的滚动距离和需要重新请求数据。 1.使...