下载地址:https://www.pan38.com/share.php?code=pvvmX 提取码:8888 【仅供学习娱乐测试】
纯前端实现的住院证明电子版生成器,仅供娱乐使用。包含完整的HTML结构、CSS样式和JavaScript交互功能,可以自定义填写患者信息、医院信息和诊断结果,生成一个看起来正式的"住院证明"。
document.addEventListener('DOMContentLoaded', function() {
// 获取DOM元素
const generateBtn = document.getElementById('generateBtn');
const downloadBtn = document.getElementById('downloadBtn');
const certificateContainer = document.getElementById('certificate');
// 医院数据
const hospitals = [
{ name: "北京协和医院", level: "三级甲等", address: "北京市东城区帅府园1号" },
{ name: "上海瑞金医院", level: "三级甲等", address: "上海市黄浦区瑞金二路197号" },
// 更多医院数据...
];
// 疾病数据
const diseases = [
"急性阑尾炎", "肺炎", "骨折", "高血压危象", "糖尿病酮症酸中毒",
"冠心病", "脑梗塞", "慢性阻塞性肺疾病急性加重期"
];
// 医生数据
const doctors = [
{ name: "张伟", title: "主任医师", department: "内科" },
{ name: "李娜", title: "副主任医师", department: "外科" },
// 更多医生数据...
];
// 生成随机日期
function getRandomDate() {
const start = new Date(2025, 0, 1);
const end = new Date();
const randomDate = new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
return randomDate.toLocaleDateString();
}
// 生成随机住院天数
function getRandomDays() {
return Math.floor(Math.random() * 14) + 3;
}
// 生成证明内容
function generateCertificate() {
const patientName = document.getElementById('patientName').value || "张三";
const hospital = hospitals[Math.floor(Math.random() * hospitals.length)];
const disease = diseases[Math.floor(Math.random() * diseases.length)];
const doctor = doctors[Math.floor(Math.random() * doctors.length)];
const admissionDate = getRandomDate();
const dischargeDate = getRandomDate();
const days = getRandomDays();
const certificateHTML = `
<div class="certificate-header">
<h2>${hospital.name}住院证明</h2>
<p>医院等级:${hospital.level}</p>
<p>医院地址:${hospital.address}</p>
</div>
<div class="certificate-body">
<p>兹证明患者<strong>${patientName}</strong>,因患<strong>${disease}</strong>,于<strong>${admissionDate}</strong>至<strong>${dischargeDate}</strong>在我院<strong>${doctor.department}</strong>住院治疗,共住院<strong>${days}</strong>天。</p>
<p>住院期间病情:${Math.random() > 0.3 ? "稳定" : "危重"}</p>
<p>主治医师:${doctor.name} ${doctor.title}</p>
<p>注意事项:${getRandomAdvice()}</p>
</div>
<div class="certificate-footer">
<p>${new Date().toLocaleDateString()}</p>
<div class="stamp">
<div class="stamp-inner">${hospital.name}<br>医务科</div>
</div>
</div>
`;
certificateContainer.innerHTML = certificateHTML;
certificateContainer.style.display = 'block';
downloadBtn.disabled = false;
}
// 生成随机注意事项
function getRandomAdvice() {
const advices = [
"出院后注意休息,避免剧烈运动",
"按时服药,定期复查",
"保持良好饮食习惯,低盐低脂饮食",
"如有不适,及时就诊",
"避免受凉,预防感冒"
];
return advices[Math.floor(Math.random() * advices.length)];
}
// 下载证明
function downloadCertificate() {
// 使用html2canvas库将证明转换为图片
if(typeof html2canvas !== 'undefined') {
html2canvas(certificateContainer).then(canvas => {
const link = document.createElement('a');
link.download = '住院证明.png';
link.href = canvas.toDataURL('image/png');
link.click();
});
} else {
alert('请先引入html2canvas库');
}
}
// 事件监听
generateBtn.addEventListener('click', generateCertificate);
downloadBtn.addEventListener('click', downloadCertificate);
// 初始化
if(typeof html2canvas === 'undefined') {
console.warn('html2canvas未加载,下载功能将不可用');
}
});
{
font-family: 'Microsoft YaHei', sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 0 20px rgba(0,0,0,0.1);
}
.certificate-container {
margin-top: 30px;
padding: 30px;
border: 2px dashed #ccc;
background-color: #fff9f9;
display: none;
}
/ 更多样式规则... /