体检小结内容拓展页
This commit is contained in:
parent
cacda9c0df
commit
68e72a07a8
@ -1145,6 +1145,28 @@
|
||||
<!-- 添加页码 -->
|
||||
<div class="page-number">第7页</div>
|
||||
</div>
|
||||
<!-- 尿常规续页 -->
|
||||
<div class="report-item" id="urine-page-2" style="width: 800px;height: 1123px;margin:0 auto;position: relative; display: none;">
|
||||
<div class="report-title">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span></span>
|
||||
<span>填充值</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="summary-section">
|
||||
<h2 class="summary-title">尿常规检查报告</h2>
|
||||
<div class="paragraph-group">
|
||||
<p id="urine-content-2" class="summary-content">
|
||||
<!-- 第二页尿常规小结内容 -->
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="report-footer">
|
||||
<p class="report-footer-text">定期体检,尊享健康</p>
|
||||
</div>
|
||||
<!-- 添加页码 -->
|
||||
<div class="page-number">第8页</div>
|
||||
</div>
|
||||
|
||||
<!-- 生化检查报告 -->
|
||||
<div class="report-item">
|
||||
@ -1182,6 +1204,29 @@
|
||||
<div class="page-number">第8页</div>
|
||||
</div>
|
||||
|
||||
<!-- 生化检查报告续页 -->
|
||||
<div class="report-item" id="biochemistry-page-2" style="width: 800px;height: 1123px;margin:0 auto;position: relative; display: none;">
|
||||
<div class="report-title">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span></span>
|
||||
<span>填充值</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="summary-section">
|
||||
<h2 class="summary-title">生化检查报告</h2>
|
||||
<div class="paragraph-group">
|
||||
<p id="biochemistry-content-2" class="summary-content">
|
||||
<!-- 第二页生化小结内容 -->
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="report-footer">
|
||||
<p class="report-footer-text">定期体检,尊享健康</p>
|
||||
</div>
|
||||
<!-- 添加页码 -->
|
||||
<div class="page-number">第9页</div>
|
||||
</div>
|
||||
|
||||
<!-- 血常规检查报告 -->
|
||||
<div class="report-item">
|
||||
<div class="report-title">
|
||||
@ -1218,6 +1263,29 @@
|
||||
<div class="page-number">第9页</div>
|
||||
</div>
|
||||
|
||||
<!-- 血常规检查报告续页 -->
|
||||
<div class="report-item" id="blood-page-2" style="width: 800px;height: 1123px;margin:0 auto;position: relative; display: none;">
|
||||
<div class="report-title">
|
||||
<div style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<span></span>
|
||||
<span>填充值</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="summary-section">
|
||||
<h2 class="summary-title">血常规检查报告</h2>
|
||||
<div class="paragraph-group">
|
||||
<p id="blood-content-2" class="summary-content">
|
||||
<!-- 第二页血常规小结内容 -->
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="report-footer">
|
||||
<p class="report-footer-text">定期体检,尊享健康</p>
|
||||
</div>
|
||||
<!-- 添加页码 -->
|
||||
<div class="page-number">第10页</div>
|
||||
</div>
|
||||
|
||||
<!-- 心电图检查报告 -->
|
||||
<div class="report-item">
|
||||
<div class="report-title">
|
||||
@ -1549,14 +1617,289 @@
|
||||
});
|
||||
}
|
||||
|
||||
// 处理尿常规内容分页
|
||||
function handleUrinePagination(urineText) {
|
||||
if (!urineText || urineText === '--') {
|
||||
// 如果没有尿常规内容,隐藏第二页
|
||||
document.getElementById('urine-page-2').style.display = 'none';
|
||||
document.getElementById('urine-summary-content').textContent = '--';
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
return;
|
||||
}
|
||||
|
||||
// 创建临时元素测量内容高度
|
||||
const testElement = document.createElement('div');
|
||||
testElement.className = 'summary-content';
|
||||
testElement.style.position = 'absolute';
|
||||
testElement.style.visibility = 'hidden';
|
||||
testElement.style.width = document.getElementById('urine-summary-content').offsetWidth + 'px';
|
||||
testElement.style.whiteSpace = 'pre-line';
|
||||
testElement.textContent = urineText;
|
||||
document.body.appendChild(testElement);
|
||||
|
||||
// 获取尿常规内容区域的可用高度
|
||||
const availableHeight = 250; // 大约可用高度,根据实际情况调整
|
||||
|
||||
if (testElement.offsetHeight <= availableHeight) {
|
||||
// 内容不超过一页,隐藏第二页
|
||||
document.getElementById('urine-summary-content').textContent = urineText;
|
||||
document.getElementById('urine-page-2').style.display = 'none';
|
||||
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
} else {
|
||||
// 内容超过一页,需要分割
|
||||
// 计算每个字符占用的平均高度
|
||||
const avgCharHeight = testElement.offsetHeight / urineText.length;
|
||||
// 计算第一页可容纳的字符数
|
||||
const firstPageChars = Math.floor(availableHeight / avgCharHeight);
|
||||
|
||||
// 分割文本
|
||||
let firstPageText = urineText.substring(0, firstPageChars);
|
||||
let secondPageText = urineText.substring(firstPageChars);
|
||||
|
||||
// 尝试在更合适的位置分割,如句号或逗号
|
||||
const breakPoints = ['。', ',', ';', '\n'];
|
||||
for (let i = 30; i > 0; i--) {
|
||||
const checkPos = firstPageChars - i;
|
||||
if (checkPos <= 0) continue;
|
||||
const char = urineText.charAt(checkPos);
|
||||
if (breakPoints.includes(char)) {
|
||||
firstPageText = urineText.substring(0, checkPos + 1);
|
||||
secondPageText = urineText.substring(checkPos + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 更新内容并显示第二页
|
||||
document.getElementById('urine-summary-content').textContent = firstPageText;
|
||||
document.getElementById('urine-content-2').textContent = secondPageText;
|
||||
document.getElementById('urine-page-2').style.display = 'block';
|
||||
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
}
|
||||
|
||||
// 移除测试元素
|
||||
document.body.removeChild(testElement);
|
||||
}
|
||||
|
||||
// 修改updatePageNumbers函数以考虑尿常规续页
|
||||
function updatePageNumbers() {
|
||||
// 获取所有页码元素
|
||||
const pageNumbers = document.querySelectorAll('.page-number');
|
||||
const summaryPage2Visible = document.getElementById('summary-page-2').style.display !== 'none';
|
||||
|
||||
// 计算实际总页数
|
||||
let totalPages = document.querySelectorAll('.report-item').length;
|
||||
if (!summaryPage2Visible) {
|
||||
totalPages--; // 如果汇总第二页不显示,减少总页数
|
||||
}
|
||||
|
||||
// 从第1页开始计数
|
||||
let pageIndex = 1;
|
||||
|
||||
pageNumbers.forEach((element) => {
|
||||
// 更新页码文本
|
||||
element.textContent = `第${pageIndex}页 共${totalPages}页`;
|
||||
pageIndex++;
|
||||
|
||||
// 如果第二页汇总不显示,并且这是第四页的页码元素(即原本应该是汇总第二页),则跳过该元素
|
||||
if (!summaryPage2Visible && element.closest('#summary-page-2')) {
|
||||
// 不增加pageIndex,因为这一页不会显示
|
||||
pageIndex--;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 处理生化检查报告内容分页
|
||||
function handleBiochemistryPagination(biochemistryText) {
|
||||
if (!biochemistryText || biochemistryText === '--') {
|
||||
// 如果没有生化内容,隐藏第二页
|
||||
document.getElementById('biochemistry-page-2').style.display = 'none';
|
||||
document.getElementById('biochemistry-summary-content').textContent = '--';
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
return;
|
||||
}
|
||||
|
||||
// 创建临时元素测量内容高度
|
||||
const testElement = document.createElement('div');
|
||||
testElement.className = 'summary-content';
|
||||
testElement.style.position = 'absolute';
|
||||
testElement.style.visibility = 'hidden';
|
||||
testElement.style.width = document.getElementById('biochemistry-summary-content').offsetWidth + 'px';
|
||||
testElement.style.whiteSpace = 'pre-line';
|
||||
testElement.textContent = biochemistryText;
|
||||
document.body.appendChild(testElement);
|
||||
|
||||
// 获取生化内容区域的可用高度
|
||||
const availableHeight = 250; // 可用高度,与尿常规相同
|
||||
|
||||
if (testElement.offsetHeight <= availableHeight) {
|
||||
// 内容不超过一页,隐藏第二页
|
||||
document.getElementById('biochemistry-summary-content').textContent = biochemistryText;
|
||||
document.getElementById('biochemistry-page-2').style.display = 'none';
|
||||
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
} else {
|
||||
// 内容超过一页,需要分割
|
||||
// 计算每个字符占用的平均高度
|
||||
const avgCharHeight = testElement.offsetHeight / biochemistryText.length;
|
||||
// 计算第一页可容纳的字符数
|
||||
const firstPageChars = Math.floor(availableHeight / avgCharHeight);
|
||||
|
||||
// 分割文本
|
||||
let firstPageText = biochemistryText.substring(0, firstPageChars);
|
||||
let secondPageText = biochemistryText.substring(firstPageChars);
|
||||
|
||||
// 尝试在更合适的位置分割,如句号或逗号
|
||||
const breakPoints = ['。', ',', ';', '\n'];
|
||||
for (let i = 30; i > 0; i--) {
|
||||
const checkPos = firstPageChars - i;
|
||||
if (checkPos <= 0) continue;
|
||||
const char = biochemistryText.charAt(checkPos);
|
||||
if (breakPoints.includes(char)) {
|
||||
firstPageText = biochemistryText.substring(0, checkPos + 1);
|
||||
secondPageText = biochemistryText.substring(checkPos + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 更新内容并显示第二页
|
||||
document.getElementById('biochemistry-summary-content').textContent = firstPageText;
|
||||
document.getElementById('biochemistry-content-2').textContent = secondPageText;
|
||||
document.getElementById('biochemistry-page-2').style.display = 'block';
|
||||
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
}
|
||||
|
||||
// 移除测试元素
|
||||
document.body.removeChild(testElement);
|
||||
}
|
||||
|
||||
// 处理血常规检查报告内容分页
|
||||
function handleBloodPagination(bloodText) {
|
||||
if (!bloodText || bloodText === '--') {
|
||||
// 如果没有血常规内容,隐藏第二页
|
||||
document.getElementById('blood-page-2').style.display = 'none';
|
||||
document.getElementById('blood-summary-content').textContent = '--';
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
return;
|
||||
}
|
||||
|
||||
// 创建临时元素测量内容高度
|
||||
const testElement = document.createElement('div');
|
||||
testElement.className = 'summary-content';
|
||||
testElement.style.position = 'absolute';
|
||||
testElement.style.visibility = 'hidden';
|
||||
testElement.style.width = document.getElementById('blood-summary-content').offsetWidth + 'px';
|
||||
testElement.style.whiteSpace = 'pre-line';
|
||||
testElement.textContent = bloodText;
|
||||
document.body.appendChild(testElement);
|
||||
|
||||
// 获取血常规内容区域的可用高度
|
||||
const availableHeight = 250; // 可用高度,与尿常规相同
|
||||
|
||||
if (testElement.offsetHeight <= availableHeight) {
|
||||
// 内容不超过一页,隐藏第二页
|
||||
document.getElementById('blood-summary-content').textContent = bloodText;
|
||||
document.getElementById('blood-page-2').style.display = 'none';
|
||||
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
} else {
|
||||
// 内容超过一页,需要分割
|
||||
// 计算每个字符占用的平均高度
|
||||
const avgCharHeight = testElement.offsetHeight / bloodText.length;
|
||||
// 计算第一页可容纳的字符数
|
||||
const firstPageChars = Math.floor(availableHeight / avgCharHeight);
|
||||
|
||||
// 分割文本
|
||||
let firstPageText = bloodText.substring(0, firstPageChars);
|
||||
let secondPageText = bloodText.substring(firstPageChars);
|
||||
|
||||
// 尝试在更合适的位置分割,如句号或逗号
|
||||
const breakPoints = ['。', ',', ';', '\n'];
|
||||
for (let i = 30; i > 0; i--) {
|
||||
const checkPos = firstPageChars - i;
|
||||
if (checkPos <= 0) continue;
|
||||
const char = bloodText.charAt(checkPos);
|
||||
if (breakPoints.includes(char)) {
|
||||
firstPageText = bloodText.substring(0, checkPos + 1);
|
||||
secondPageText = bloodText.substring(checkPos + 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 更新内容并显示第二页
|
||||
document.getElementById('blood-summary-content').textContent = firstPageText;
|
||||
document.getElementById('blood-content-2').textContent = secondPageText;
|
||||
document.getElementById('blood-page-2').style.display = 'block';
|
||||
|
||||
// 更新页码
|
||||
updatePageNumbers();
|
||||
}
|
||||
|
||||
// 移除测试元素
|
||||
document.body.removeChild(testElement);
|
||||
}
|
||||
|
||||
// 更新updatePageNumbers函数以考虑所有续页
|
||||
function updatePageNumbers() {
|
||||
// 获取所有页码元素
|
||||
const pageNumbers = document.querySelectorAll('.page-number');
|
||||
const summaryPage2Visible = document.getElementById('summary-page-2').style.display !== 'none';
|
||||
const urinePage2Visible = document.getElementById('urine-page-2').style.display !== 'none';
|
||||
const biochemistryPage2Visible = document.getElementById('biochemistry-page-2').style.display !== 'none';
|
||||
const bloodPage2Visible = document.getElementById('blood-page-2').style.display !== 'none';
|
||||
|
||||
// 计算实际总页数
|
||||
let totalPages = document.querySelectorAll('.report-item').length;
|
||||
if (!summaryPage2Visible) totalPages--;
|
||||
if (!urinePage2Visible) totalPages--;
|
||||
if (!biochemistryPage2Visible) totalPages--;
|
||||
if (!bloodPage2Visible) totalPages--;
|
||||
|
||||
// 从第1页开始计数
|
||||
let pageIndex = 1;
|
||||
|
||||
pageNumbers.forEach((element) => {
|
||||
// 更新页码文本
|
||||
element.textContent = `第${pageIndex}页 共${totalPages}页`;
|
||||
pageIndex++;
|
||||
|
||||
// 如果对应的报告第二页不显示,且这是该报告第二页的页码元素,则不增加pageIndex
|
||||
if ((!summaryPage2Visible && element.closest('#summary-page-2')) ||
|
||||
(!urinePage2Visible && element.closest('#urine-page-2')) ||
|
||||
(!biochemistryPage2Visible && element.closest('#biochemistry-page-2')) ||
|
||||
(!bloodPage2Visible && element.closest('#blood-page-2'))) {
|
||||
pageIndex--;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 页面加载完成后执行
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// 现有代码...
|
||||
|
||||
// 等待数据填充后处理汇总分页
|
||||
// 等待数据填充后处理分页
|
||||
setTimeout(() => {
|
||||
const summaryText = document.getElementById('summary-content-1').textContent;
|
||||
handleSummaryPagination(summaryText);
|
||||
|
||||
const urineText = document.getElementById('urine-summary-content').textContent;
|
||||
handleUrinePagination(urineText);
|
||||
|
||||
const biochemistryText = document.getElementById('biochemistry-summary-content').textContent;
|
||||
handleBiochemistryPagination(biochemistryText);
|
||||
|
||||
const bloodText = document.getElementById('blood-summary-content').textContent;
|
||||
handleBloodPagination(bloodText);
|
||||
}, 2000);
|
||||
});
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user