前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据列表如何实现单条记录部分数据的打印?

数据列表如何实现单条记录部分数据的打印?

原创
作者头像
用户10794040
发布2023-10-25 14:17:04
1550
发布2023-10-25 14:17:04
举报
文章被收录于专栏:微搭微搭

问题

在数据列表里,数据是一条一条循环出来的,如果我们想实现打印单条数据,打印出来的每条数据都是相同的

描述

页面布局大致如下:

页面上添加了一个打印按钮,微搭本地不提供打印功能,打印功能的实现是调用了一个print自定义方法,打印指定的容器container1

自定义的print方法:

代码语言:javascript
复制
export default async function({event, data}) {
  console.log('data.target',data.target)
const element = document.querySelector(`#container1`) // 选择到要打印的组件id或者class,转换为canvas,其中 idXXX 表示要打印的元素
  if(!element) {
    throw new Error('要打印的内容不存在')
  }
  const { width, height } = element.getBoundingClientRect()
  const canvas = await window.html2canvas(element)
​
  // 打印
  let winPrint = window.open('', '', `left=0,top=0,width=${width},height=${height},toolbar=0,scrollbars=0,status=0`);
  winPrint.document.body.appendChild(canvas);
  winPrint.document.close();
  winPrint.focus();
  winPrint.print();
  winPrint.close();
}

因为打印的数据是循环出来的,当我们点击打印按钮时,

此时我们点击的是第二条数据,但是在打印预览页展示的还是第一条数据信息。

同样的,无论我们点击哪一条数据的打印,打印预览页都是第一条的信息,所以我们无法直接在数据列表内实现打印不同数据的功能

总结

目前的解决办法是新建一个页面,跳转到新页面传递参数,新页面内只展示单条数据,在新页面内打印。但是这种办法还需要跳转页面,操作上不够简便。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 描述
  • 总结
相关产品与服务
腾讯云微搭低代码
微搭低代码是一个高性能的低代码开发平台,用户可通过拖拽式开发,可视化配置构建 PC Web、H5 和小程序应用。 支持打通企业内部数据,轻松实现企业微信管理、工作流、消息推送、用户权限等能力,实现企业内部系统管理。 连接微信生态,和微信支付、腾讯会议,腾讯文档等腾讯 SaaS 产品深度打通,支持原生小程序,助力企业内外部运营协同和营销管理。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档