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


    • 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 id="printTest" >
      <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 class="item" v-for="(item,index) in this.goodsData" :key="index">
          <h2>{{item.name}}</h2>
          <div class="qrcode-pic" 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、效果图
    这两种方法效果一样,点击按钮弹出一个打印弹窗,唯一不同的是调用方法不一样,看个人需求选择使用哪种

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

  • 相关阅读:
    Druid连接池的简单使用
    JDBC工具包commons-dbutils的基本介绍
    Java IO: ByteArrayOutputStream使用
    开源数据库连接池之Tomcat内置连接池
    jquery里面的$(this)和this的区别
    css自定义属性(css变量)
    CSS选择器
    IntelliJ IDEA 学习笔记
    JSP基本的语法、3个编译指令、7个动作指令、9个内置对象
    CSS3 box-shadow
  • 原文地址:https://www.cnblogs.com/sgs123/p/12199748.html
Copyright © 2020-2023  润新知