当前位置:   article > 正文

element ui+vue实现打印_vue elementui 打印

vue elementui 打印

1.安装组件

  1. //安装print-js
  2. npm install print-js --save
  3. //删除print-js
  4. npm uninstall print-js
  5. //安装固定版本
  6. npm install print-js@版本号 --save
  7. // 全局安装
  8. npm install print-js --save -g

2.在页面引入组件

import print from 'print-js'

3.自己实现子组件打印页面

4.在需要打印的页面引入子组件

  1. //注册
  2. components:{
  3. printTable
  4. },
  1. //页面注册
  2. <printTable v-show="false" ref="mychild"></printTable>
  3. //通过页面按钮 触发打印
  4. <el-button size="small" plain type="primary" @click="handlePrint(scope.row)">打印销售单</el-button>
  5. //通过this.$refs获取子组件进行交互
  6. handlePrint(row) {
  7. this.$refs.mychild.CreateOneFormPage(row) },

5.子组件中的方法

  1. //案例
  2. printTables(){
  3. print({
  4. printable: 'printJS-form',
  5. type: 'html',
  6. // scanStyles: false,
  7. style: 'table tr td,th { border-collapse: collapse;padding: 0 10px;border:1px solid}',
  8. targetStyles: ['*'],
  9. maxWidth:1100
  10. })
  11. },
  12. CreateOneFormPage(msg) {
  13. new Promise((resolve,reject)=>{
  14. this.printData=msg
  15. //根据传过来的值做一些异步的交互任务
  16. }).then(()=>{
  17. this.printTables()
  18. })
  19. },

          在异步交互任务中会出现点击打印然后数据没有同步到一起。参考我的另外一篇文章注册宏任务与微任务解决,上面通过new Promise()将打印任务注册为微任务  实现了异步交互

vue中关于异步交互数据出现延迟问题

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

闽ICP备14008679号