vue 绘制体温单与三测单组件 实现前端js打印

article/2025/9/15 11:52:39

更新: 代码开源 https://github.com/mydaoyuan/my-development   

有帮助请帮忙点个 start 。企鹅:1534815114

新上 麻醉单 和 患者时间轴 在下面地址就可以看到。

------------------------------------------------------------

新的一个版本完全重写了体温单,完全使用svg绘制。 访问地址: 新版三测单

特点:

  • 纯svg开发,兼容各类主流框架,如 react 、Vue、 angular、 jsp 、HTML等等
  • 开箱即用,数据抽离,直接对接接口数据即可引入
  • 支持打印,可以选pdf 或者图片下载
  • 灵活二开自定义字段配置化 :直接修改配置即可进行自定义扩展字段,代码注释齐全
  • 支持自定义尺寸。

更新线条================================================================ 

在线访问地址: 三测单体温单体温图

本文介绍如何使用 vue 绘制 体温单(又名三测单)

体温单

体温单又称为三测单,是电子病历的一部分。医院体温单绘制主要用于记录患者的生命体征及有关情况,内容包括患者姓名、年龄、性别、科别、床号、入院日期、住院号、日期、住院天数、手术后天数、脉搏、呼吸、体温、血压、出入量、大便次数、体重、身高、页码等。一周(7天)一张,每天记录6次病人信息。

组件使用vue 技术栈开发,使用d3进行图表渲染。

体温单数据结构

数据机构方面主要分为3大块。分别为患者信息数据、图表展示数据、每日数据展示。

患者信息

患者信息只有一份,所以使用简单的keyvalue形式存储即可,例如: {name:'患者名称’, hospital: '测试医院名称’},在vue中获取数据进行渲染即可。

图表展示

图表数据存储了每一次记录的数据方便绘制图表,我们需要知道每个绘制点的坐标信息,坐标信息由X轴时间, Y轴数值构成,所以我们必须包含时间和数值两个字段,再加上一个类型字段,就可以把图表的所有数据塞入一个List中,一起渲染。
例如体温 一周就是 7 * 6 = 42条数据。每条数据里面包含了 日期、时间、类型、类型数值这4个值。
例如
{date: '2020-12-25',time: '03:00:00',code: ' 体温',value: '30'
}

每日数据

每日数据和图表数据类似,都是需要重复渲染的,所以也需要一个List进行保存,按照时间纬度区分。
例如:
{date: '2020-12-25',times: null,code:  '体重',value: ’86'
}

打印

打印功能实现利用window print原生 api实现。核心思想是采用一个 iframe 标签,动态渲染出需要打印的 DOM范围。
// 生成iframe代码
function generateHtmlCodeInfo(option) {option = option || {}var id = 'iframeId'var style = `
body {
overflow: hidden;
}
`const code =`
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script>
function removeIframe(id) {
var child = window.parent.document.getElementById(id)
child.parentElement.removeChild(child)
}
</script>
<script type="text/javascript">
var insertFunc = ${option.insertFunc} || function () {}
var events
window.addEventListener('beforeprint', function(event) {
console.log('beforeprint');
});
window.addEventListener('afterprint', (event) => {
console.log('afterprint');
// 清除iframe
removeIframe('${id}')
});
var reportViewer
function window_onload() {
printtable()
}function printtable() {
setTimeout(() => {
printtable()
}, 10);
}
</script>
<style>
${style}
</style>
</head>
<body onload="window_onload()">
<div id="report_holder"></div>
</body>
</html>`return {id,code}
}// 生成打印iframe
function htmlRuilangGenerateIframe(reportUrl, rowData, option) {var codeInfo = generateHtmlCodeInfo(reportUrl, rowData, option, keys)var iframe = document.createElement('iframe')iframe.setAttribute('style','position:absolute;width:0px;height:0px;border: 0;')iframe.id = codeInfo.iddocument.body.appendChild(iframe)var ifrmaeDoc = iframe.contentWindow.documentifrmaeDoc.write(codeInfo.code)ifrmaeDoc.close()
}

需要注意打印完成后需要清理 iframe元素,及时清理不必要的内存,也可以使用单例模式,选择复用一个iframe做打印功能,本次采用了打印后清理的方式。
使用了vue router的同学也可以选择直接指定 iframe地址,指向需要打印的页面。

http://chatgpt.dhexx.cn/article/xSdfDdfH.shtml

相关文章

mysql中mvcc实现机制和原理

目录 1.什么是mvcc? 2.mvcc中的快照读和当前读有什么区别和联系&#xff1f; 3.mvcc的作用是什么&#xff1f; 4.mvcc的实现机制和原理是什么&#xff1f; 1.什么是mvcc? mvcc全称是(Multi-Version Concurrency Control) 多版本并发控制,是数据库管理过程中的一种并发控制…

MVCC的实现原理

什么是MVCC? MVCC MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。MVCC是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存。 mvcc - 百度百科 MVCC在My…

mysql的MVCC机制详解

文章目录 1. 什么是MVCC机制&#xff1f;2. MVCC机制底层是怎么实现的2.1 undo日志版本链2.2 read view机制 3. undo版本链和read-view的对比规则4. 结合案例解释mvcc机制实现可重复读过程 1. 什么是MVCC机制&#xff1f; 首先来重新认识一下可重复读和串行化&#xff1a; 可…

认真学习MySQL中的MVCC机制

什么是MVCC&#xff1f;MVCC&#xff08;Multiversion Concurrency Control&#xff09;&#xff0c;多版本并发控制。顾名思义&#xff0c;MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性操作有了保证。换言之&#…

MVCC的含义,如何实现的?

欢迎大家关注我的公众号【老周聊架构】&#xff0c;Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。 一、MVCC简介 1、什么是MVCC MVCC(Multi Version Concurrency Control的简称)&#xff0c;代表多版本并发控制。与MVCC相对的&…

MySQL的MVCC机制

系列文章&#xff1a;关系型/非关系型【数据库】知识脉络 目录 MVCC翻译成中文是&#xff1f; MVCC(Multi-Version Concurrency Control) 回顾事务 MVCC是单打独斗吗&#xff1f; undo日志版本链 read view机制详解 MVCC机制是拿undo日志链和read-view对比 比对规则&…

什么是MVCC机制?

什么是MVCC机制&#xff1f; 什么是MVCC多版本并发控制机制 之前我们讲到&#xff0c;事务在并发环境下会带来脏读、脏写、不可重复读等诸多问题&#xff0c;为了解决这些问题&#xff0c;保证事务的ACID特性&#xff0c;出现了诸多隔离级别去解决这些问题&#xff0c;mysql默…

MySQL InnoDB的MVCC实现机制

MySQL InnoDB的MVCC实现机制 1.MVCC概述2.MVCC的实现原理隐式字段undo日志Read View(读视图)RR隔离级别的Read View方案 1.MVCC概述 什么是MVCC&#xff1f; MVCC&#xff0c;即多版本并发控制。MVCC是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现…

MVCC原理以及隔离机制

1、mysql是如何进行数据回滚的 mysql使用了大量的 undo日志、trx_id 字段以及 roll_pointer 字段来实现的数据回滚。版本链比对规则图&#xff1a; 查询 ​ 当mysql开启一个查询时 遇到的select语句会创建一个 read-view 一致性视图&#xff0c;这个视图里面保存 一个未提交…

【MVCC多版本并发控制】MVCC 机制的原理及实现,什么是MVCC,多版本并发控制

什么是 MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制&#xff0c;是现代数据库&#xff08;包括 MySQL、Oracle、PostgreSQL 等&#xff09;引擎实现中常用的处理读写冲突的手段&#xff0c;目的在于提高数据库高并发场景下的吞吐性能。 如此一来…

MySql的MVCC实现机制

MVCC实现机制 快照读和当前读MVCC 快照读和当前读 在了解MySql的MVCC实现之前&#xff0c;需要先了解什么是快照读和当前读&#xff0c;以便于后续讲解 快照读&#xff1a;就是单纯的 SELECT 语句&#xff0c;不包括下面这两类语句: SELECT ... FOR UPDATE SELECT ... LOCK I…

MVCC机制略解

在mysql中&#xff0c;默认的隔离级别是可重复读。即在一个事物中读取到的数据总是一样的&#xff0c;即使其他事务把数据改了&#xff0c;那在这个事务中读取的数据还是第一次读取的数据。 mysql还可以设置为读已提交隔离级别。即一个事务中读取的数据&#xff0c;随着其他事务…

什么是MVCC,一文搞懂MySQL的MVCC机制

MVCC是什么 MVCC&#xff0c;即Multi-Version Concurrency Control &#xff08;多版本并发控制&#xff09;。它是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存。 数据库中同时存在多个版本…

对MVCC全面解析

简介 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;即多版本并发控制。 MVCC的实现原理 我们在了解MVCC之前&#xff0c;首先先了解一下几个比较常见的锁。 读锁&#xff1a;也叫共享锁、S锁&#xff0c;若事务T对数据对象A加上S锁&#xff0c;则事务T可…

【MySQL】MVCC机制

什么是MVCC MVCC 英文全称&#xff1a;Multi-Version Concurrency Control&#xff0c;Mysql的事务隔离性就是主要靠MVCC机制来实现的。对一行数据的读和写默认是不会通过加锁互斥来保证隔离性的&#xff0c;这样避免了频繁的加锁互斥&#xff0c;而在串行化隔离级别为了保证较…

一文精通MVCC机制

MVCC(Multi-Version Concurrency Control)多版本并发控制机制 使用串行化隔离级别时&#xff0c;mysql会将所有的操作加锁互斥&#xff0c;来保证并发安全。这种方式必然降低并发性能。mysql在读已提交和可重复读隔离级别下&#xff0c;对一行数据的读和写两个操作默认是不会通…

数据库的MVCC机制

MVCC 1. 什么是MVCC MVCC &#xff08;Multiversion Concurrency Control&#xff09;&#xff0c;多版本并发控制。顾名思义&#xff0c;MVCC 是通过数据行的多个版 本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保 证。换言…

MySQL之MVCC机制

1. MVCC概念 MVCC&#xff0c;全称Multi-Version Concurrency Control&#xff0c;即多版本并发控制。MVCC是一种并发控制的方法&#xff0c;一般在数据库管理系统中&#xff0c;实现对数据库的并发访问&#xff0c;在编程语言中实现事务内存。 在Mysql的InnoDB引擎中就是指在…

【MySQL进阶-05】深入理解mvcc机制(详解)

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…

MVCC及实现原理

&#xff01;首先声明&#xff0c;MySQL 的测试环境是 5.7 前提概要 什么是 MVCC什么是当前读和快照读&#xff1f;当前读&#xff0c;快照读和 MVCC 的关系MVCC 实现原理 隐式字段undo日志Read View整体流程MVCC 相关问题 RR 是如何在 RC 级的基础上解决不可重复读的&#xf…