This commit is contained in:
Euni4U 2025-03-19 15:25:27 +08:00
commit d6ae1f858d
3 changed files with 43 additions and 30 deletions

View File

@ -12,7 +12,8 @@
.constitution-table {
width: 100%;
border-collapse: collapse;
margin: 10px auto 30px; /* 上边距10px左右auto居中下边距30px留出空间 */
margin: 10px auto 30px;
/* 上边距10px左右auto居中下边距30px留出空间 */
}
.constitution-table td {
@ -25,7 +26,7 @@
.avatar-container {
width: 120px;
height: 160px;
margin: 30px auto;
margin: 50px auto;
border: 1px solid #000;
display: flex;
justify-content: center;
@ -66,8 +67,10 @@
background-color: #4a90e2;
color: white;
padding: 15px;
font-size: 18px; /* 这里控制字体大小 */
font-weight: bold;/* 这里控制字体粗细 */
font-size: 18px;
/* 这里控制字体大小 */
font-weight: bold;
/* 这里控制字体粗细 */
border-bottom: 1px solid #e0e0e0;
}
@ -106,7 +109,8 @@
border: 1px solid #ddd;
padding: 12px;
text-align: left;
font-size: 16px; /* 可以在这里设置字体大小 */
font-size: 16px;
/* 可以在这里设置字体大小 */
}
.exam-table th {
@ -487,7 +491,7 @@
}
.repott_concent_title {
font-size: 40pt;
font-size: 30pt;
letter-spacing: 30px;
}
@ -739,16 +743,27 @@
<span>&nbsp;&nbsp;体检编号:--</span>
</div>
</div>
<div class="repott_concent">
<div class="repott_concent_area">
<div class="repott_concent_title">健康</div>
<div class="repott_concent_title">体检</div>
<div class="repott_concent_title">报告</div>
</div>
<div class="repott_concent_english">
<div class="repott_concent_english_health">Health</div>
<div class="repott_concent_Examination">Examination</div>
<div class="repott_concent_Report">Report</div>
<!-- 添加标题下方的文字,靠右对齐 -->
<div style="text-align: right; padding: 10px 20px; font-size: 16px; color: #333;">
本报告属个人隐私范畴</br>
未获本人同意,不得传播
</div>
<div class="repott_concent" style="top: -350px;">
<div style="display: flex; align-items: flex-start; justify-content: center; margin-bottom: 20px;">
<img src="/首页标签.png" alt="logo"
style="width: 85px; height: 92px; ">
<div>
<div class="repott_concent_area">
<div class="repott_concent_title">健康</div>
<div class="repott_concent_title">体检</div>
<div class="repott_concent_title">报告</div>
</div>
<div class="repott_concent_english">
<div class="repott_concent_english_health">Health</div>
<div class="repott_concent_Examination">Examination</div>
<div class="repott_concent_Report">Report</div>
</div>
</div>
</div>
<!-- 添加头像区域 -->
<div class="avatar-container">
@ -765,7 +780,8 @@
<span class="person_title">年龄</span><span class="person_content">--</span>
</div>
<div class="person_detail">
<span class="person_title">单位</span><span class="person_content">--</span>
<span class="person_title" style="letter-spacing: 4px;">身份证号</span><span
class="person_content">--</span>
</div>
<div class="person_detail">
<span class="person_title" style="letter-spacing: 4px;">联系电话</span><span
@ -786,7 +802,7 @@
<div style="display: flex; justify-content: space-between; align-items: center;">
<span></span>
<span>填充值</span>
</div>
</div>
<div class="preface-wrapper">
@ -807,7 +823,7 @@
</div>
<div class="preface-footer">
<p class="hospital-name">乌兰察布第四医院</p>
<p class="hospital-name">兴和县卫生健康委员会</p>
</div>
</div>
</div>
@ -822,7 +838,7 @@
<div class="report-item" style="width: 800px;height: 1123px;margin:0 auto;position: relative;">
<div class="report-title">
<div style="display: flex; justify-content: space-between; align-items: center;">
<span>检查结果汇总</span>
<span></span>
<span>填充值</span>
</div>
</div>
@ -1256,7 +1272,7 @@
containers.forEach(container => {
const imageContainer = container.querySelector('.pdf-image-container');
if (imageContainer.style.display !== 'block') {
allRendered = false;
allRendered = false;
}
});

BIN
public/首页标签.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View File

@ -12,7 +12,7 @@
<div class="iframe-container">
<iframe
v-if="dialogVisible"
src="\templates\report-template.html"
src="/templates/report-template.html"
frameborder="0"
style="width: 100%; height: 100%; border: none"
@load="handleIframeLoad"
@ -28,6 +28,7 @@
</template>
<script setup lang="ts">
import type { App } from 'vue'
import { ref, defineProps, defineEmits, watch } from 'vue'
import { PatientApi } from '@/api/inspect/inspectpatient/index'
import Message from '@/layout/components/Message/src/Message.vue'
@ -73,7 +74,7 @@ const handleIframeLoad = async () => {
console.log('reportData', reportData)
if (iframe && iframe.contentWindow) {
const doc = iframe.contentWindow.document
//
const reportTitle = doc.querySelector('.report-title')
if (reportTitle) {
@ -108,17 +109,16 @@ const handleIframeLoad = async () => {
//
const companyContent = doc.querySelector('.person_detail:nth-child(4) .person_content')
if (companyContent) companyContent.textContent = reportData.company || '--'
if (companyContent) companyContent.textContent = reportData.cardId || '--'
//
const phoneContent = doc.querySelector('.person_detail:nth-child(5) .person_content')
if (phoneContent) phoneContent.textContent = reportData.phone || '--'
console.log('已更新联系电话:', reportData.phone)
if (phoneContent) phoneContent.textContent = reportData.phoneNum|| '--'
//
const examDateContent = doc.querySelector('.person_detail:nth-child(6) .person_content')
if (examDateContent) {
const date = reportData.examDate ? new Date(reportData.examDate) : null
const date = reportData.medicalDateTime ? new Date(reportData.medicalDateTime) : null
const formattedDate = date
? `${date.getFullYear()}${String(date.getMonth() + 1).padStart(2, '0')}${String(date.getDate()).padStart(2, '0')}`
: '--'
@ -294,7 +294,6 @@ const handleIframeLoad = async () => {
reportData.data.forEach((item) => {
if (item.data) {
let reportTitle = ''
console.log('type', item.pacsDataType)
switch (item.pacsDataType) {
case 'cbc':
reportTitle = '血常规检查报告'
@ -314,11 +313,9 @@ const handleIframeLoad = async () => {
default:
break
}
console.log('reportTitle', reportTitle)
if (reportTitle) {
const reportSection = Array.from(doc.querySelectorAll('.report-item')).find((section) => {
const titleElement = section.querySelector('.report-title')
console.log('titleElement', titleElement)
return titleElement && titleElement.textContent?.trim().includes(reportTitle)
})
if (reportSection) {