当前位置:   article > 正文

vue+element 动态生成二维码并选择批量打印表格内容_vue-qr批量生成和打印

vue-qr批量生成和打印

下载生成二维码的插件(vue-qr)

vue-qr

npm install vue-qr --save

下载打印库(printJS)

PrintJS

npm install print-js --save

在main.js里引入

引入vue-qr的两种方式

  1. // vue2.0 引入Vue-qr
  2. import VueQr from 'vue-qr'
  3. // vue3.0 引入Vue-qr
  4. import vueQr from 'vue-qr/src/packages/vue-qr.vue'
  5. new Vue({
  6. components: {VueQr}
  7. })

引入print JS库

import print from 'print-js'

在项目页面中使用  

  1. <el-table-column label="防伪码" width="170" align="center">
  2. <template slot-scope = "scope" >
  3. <!-- 生成二维码 -->
  4. <vue-qr
  5. :ref="'ref'+scope.row.securityId"
  6. :size="80"
  7. :margin="0"
  8. :auto-color="true"
  9. :dot-scale="1"
  10. :text = "'http://www.baidu.com?param='+scope.row.securityCode"
  11. />
  12. </template>
  13. </el-table-column>
  14. <script>
  15. import VueQr from 'vue-qr'
  16. export default {
  17. components:{
  18. VueQr
  19. },
  20. data(){
  21. return:{
  22. // 选中的数组
  23. ids: [],
  24. // 非单个禁用
  25. single: true,
  26. // 非多个禁用
  27. multiple: true,
  28. // 打印的内容
  29. printable:[]
  30. }
  31. }
  32. }
  33. // 多选框事件 选中数据
  34. handleSelectionChange(selection) {
  35. this.multipleSelection = selection;
  36. this.ids = selection.map(item => item.securityId)
  37. this.single = selection.length!=1
  38. this.multiple = !selection.length
  39. // 获取生成之后的二维码Src
  40. this.printable=selection.map(item => this.$refs['ref'+item.securityId].$el.src)
  41. console.log(this.printable);
  42. console.log(this.multipleSelection);
  43. },
  44. // 批量打印按钮点击事件
  45. handlePrinter(){
  46. printJS({
  47. // 把勾选的img图片放入下面数组打印
  48. printable:this.printable,
  49. // 打印类型
  50. type:'image',
  51. // 二维码样式
  52. imageStyle:'margin:0px; padding:0px; width:40%; height:40%; display: block;
  53. margin: 0 auto; padding-top:12%'
  54. })
  55. }
  56. </script>

效果图

上面代码省略了大量ElementUI的布局  只留关键代码

大体思路是:

先使用Vue-qr标签生成二维码进行渲染 

在多选方法里面获取选中行的二维码Src

因为批量打印接收的是一个数组 所以需要把选中获取到的Src传到数组里

调用打印方法进行批量打印数组内选中的Src

目前很多打印插件都不能一次批量打印多个  只有print这个库可以  大部分生成二维码工具生成后是canvas  画布是不支持打印的  需要转换成img之后再进行打印

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/547486
推荐阅读
相关标签
  

闽ICP备14008679号