@@ -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);
});