首先在页面中引入打印的页面设置id 以便打印的时候获取到。

我们的打印页面先创建一个这个文件 进行通过type选择需要打印的数据页面,其中的tableModal就是我们这次要打印的数据页面。在这个文件中已经引入进来了

这个方法主要是用来渲染行内容数据。对应了render下面的渲染部分

这里是表头的定义之所以都这样写是因为可以写成多个打印表,然后通过column下面的参数进行选择表头,上面也是通过compobj进行选择表内容

这里我们进行渲染表头数据暴露参数都是data

这里调用打印机方法

写在需要打印的组件中的点击事件

接下来是打印机页面的代码

import React, { Component } from 'react';

import moment from 'moment';

import { WaterMark } from '@ant-design/pro-layout';

import { connect } from 'umi';

import RegFentoYuan from '@/utils/regFentoYuan';

class DrugS extends Component {

constructor(props) {

super(props);

this.state = {

datelist: {},

num: 0,

};

}

compRender = (item, index) => {

let comp = null;

const { data } = this.props;

console.log(data, 'tongji');

let compObj = {

// 药品配发领药

DrugS: (

<tr key={index}>

<td style={{ border: '1px solid #ccc' }}> {index + 1}</td>

<td style={{ border: '1px solid #ccc' }}> {item?.drugsName}</td>

<td style={{ border: '1px solid #ccc' }}> {item?.sku}</td>

<td style={{ border: '1px solid #ccc' }}>{item?.packSku}</td>

<td style={{ border: '1px solid #ccc' }}> {item?.num}</td>

<td style={{ border: '1px solid #ccc' }}> {item?.unit}</td>

<td style={{ border: '1px solid #ccc' }}>

{RegFentoYuan('FenToYuan', Number(item?.totalPrice))}

</td>

</tr>

),

};

comp = compObj[this.props?.data?.type];

return comp;

};

render() {

const { data = {} } = this.props;

const {

user: { columnName = {} },

} = this.props;

let column = {

DrugS: [

'序号',

'药品名称',

'普通规格',

'包转规格',

'数量',

'单位',

'总计金额',

],

};

let userInfo = JSON.parse(localStorage.getItem('userInfo'));

console.log(userInfo);

return (

<div>

<WaterMark

content="新疆自治区医疗及资产管理平台"

style={{

height: '100%',

width: '100%',

webkitPrintColorAdjust: 'exact',

mozPrintColorAdjust: 'exact',

msPrintColorAdjust: 'exact',

}}

>

<h1

style={{

fontSize: '20px',

textAlign: 'center',

fontWeight: 'bolder',

}}

>

{data?.title || '表'}

</h1>

<div style={{ display: 'flex', justifyContent: 'space-between' }}>

{/* 民警端执行医嘱才会展示单位 */}

<span style={{ alignItems: 'center' }}>

统计时间:{userInfo?.sysAreaFullName}

</span>

<span style={{ alignItems: 'center' }}>

来源:{moment().format('yyyy-MM-DD HH:mm:ss')}

</span>

</div>

<table

style={{

border: '1px solid #ccc',

width: '100%',

borderCollapse: 'collapse',

color: '#333333',

textAlign: 'center',

}}

>

<tr>

{column[data?.type]?.map(item => {

return <th style={{ border: '1px solid #ccc' }}>{item}</th>;

})}

</tr>

{data?.data?.map((item, index) => this.compRender(item, index))}

</table>

</WaterMark>

</div>

);

}

}

export default connect(({ basic, user }) => ({ basic, user }))(DrugS);

react 前端 实现打印机打印功能相关推荐

  1. MFC 实现打印机打印功能

    Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...

  2. react+antd+react-to-print实现打印功能,ie浏览器可去掉滚动条

    import styles from './xx.module.css'; import ReactToPrint from 'react-to-print'; import ...略export c ...

  3. vue 使用浏览器自带打印机打印功能

    本文主要介绍了vue项目中使用print.js打印,解决多页,分页,打印预览样式修改等问题. 引入安装vue-print.js cnpm i vue-printjs --save-dev 解决打印多页 ...

  4. 关于前端页面连接打印机打印

    关于前端连接打印机打印 页面代码 逻辑代码需要引入JQ 页面代码 <div class="print-Box" ><div id="test" ...

  5. 在react框架中实现打印过程中踩的坑

    最近在做一个需求,就是需要在产品里调用打印机,实现打印票据的操作,我也是第一次做,说真的踩坑不少,希望这篇文章可以帮助到你. 文章目录 前言 window.print()踩的坑 第三方库react-t ...

  6. PrintService关于PDF的生成以及打印机打印

    之前通过网上查询java实现打印机打印功能的方法大部分都是通过SimpleDoc类构件打印机的打印文件属性,通过PrintJob的Print()实现打印,但是打印出来的都是乱码. 首先考虑能不能打印文 ...

  7. itext通过pdf模板填充数据并调用打印机打印

    使用itext5对生成的pdf模板进行编辑填充数据,一种是通过绝对定位去做,简单的可以,通用性太差,第二种是通过pdf域来填充字段,通用性很强 在使用过程中遇到的问题: 网上都是通过这种字体设置中文的 ...

  8. react项目中实现打印预览功能

    最近项目中,前端采用react+antd+dva的组合, 今天有一个新需求, 需要在后台管理系统中实现 点击打印 完成指定页面的打印功能. 我们道浏览器带有打印功能的实现,window.print() ...

  9. VUE整合VUE-PRINT-NB实现前端打印功能

    VUE整合VUE-PRINT-NB实现前端打印功能 插件安装 npm install vue-print-nb --save 插件安装时最好在package.json中同时加入依赖信息,便于项目上其他 ...

最新文章

  1. 那些对混合云开发和应用程序环境的错误认识
  2. app显示服务器图片不显示,如何读取并显示服务器上不在webapp目录上的图片?
  3. node.js基础 1之 HTTP事件回调进阶(HTTP模块)
  4. 基于docker部署的微服务架构(四): 配置中心
  5. 【干货】硅谷创业教父:如何获得创业idea
  6. SAP MM模块的预留详解
  7. 支付宝支付回调异常_支付宝崩了是怎么回事 支付宝崩了部分用户使用异常现已恢复...
  8. python批量写入数据库engine_python 快速写入postgresql数据库方法
  9. C++set容器-插入和删除
  10. threshold()
  11. linux 中 timeval结构体
  12. 服务器端 OR 客户端
  13. Ajax ControlToolkit - AnimationExtender Action语法(笔记)
  14. C# Winform DataGridview 实现行号倒序
  15. ts html导出excel,用Angular2在客户端导入导出Excel
  16. PC Logo入门指南
  17. vue项目引入iconfont图标
  18. win8计算机休眠的区别,win8系统的休眠和睡眠有什么区别?如何用?
  19. 基于ROS的导航框架
  20. 计算机一级应用基础选择题,2016一级计算机基础及MSOffice应用选择题

热门文章

  1. 微信和联通“闪婚” 首推微信“零流量”资费
  2. 计算机上面的音乐,电脑上如何识别音乐
  3. 翻译程序的定义及其功能种类
  4. java-net-php-python-54jspm军舰管理系统计算机毕业设计程序
  5. error LNK1104: cannot open file 'libboost_date_time-vc120-mt-gd-1_60.lib'
  6. 细说linux挂载---转自ubuntu论坛 adagio
  7. [系统]_[WIN7和WIN10]_[禁用自动更新批处理脚本]
  8. 宝刀不老:Flash歌曲播放网站MP3地址隐藏机制完全破解
  9. python strip()函数和Split函数的用法总结
  10. 用switchresx设置分辨率点击保存后重启无效如何解决?