diff --git a/index.html b/index.html index 278e2a6..57d8709 100644 --- a/index.html +++ b/index.html @@ -238,6 +238,7 @@ const SITE_MAP = [ { file:'pre-special-cta.html', label:'冠脉CTA体检人员' }, { file:'pre-special-hospital.html', label:'指定员工体检医院' }, { file:'mid-appointment-track.html', label:'体检预约' }, + { file:'mid-appointment-track2.html', label:'体检预约跟踪' }, { file:'mid-selected-items.html', label:'已选项目' }, { file:'mid-participation.html', label:'已检员工' }, { file:'mid-unit-appointment.html', label:'单位预约人数统计' }, @@ -252,6 +253,7 @@ const SITE_MAP = [ { file:'mid-unit-expected.html', label:'签约单位应检人数' }, { file:'post-unit-count.html', label:'单位体检人数统计' }, { file:'post-unit-cost-stat.html', label:'单位体检费用统计' }, + { file:'post-unit-item-stat.html', label:'单位体检项目统计' }, { file:'post-hospital-count.html', label:'医院体检人数统计' }, { file:'post-doctor-count.html', label:'医生检查人数统计' }, { file:'post-item-stat.html', label:'医院体检项目统计' }, diff --git a/web-admin/frontline-medical/config-ambulance.html b/web-admin/frontline-medical/config-ambulance.html index ebb60e6..0a13e51 100644 --- a/web-admin/frontline-medical/config-ambulance.html +++ b/web-admin/frontline-medical/config-ambulance.html @@ -116,6 +116,15 @@ tbody tr:hover td:last-child{background:#F8FBFF;} .form-control:focus{border-color:var(--primary);} textarea.form-control{height:64px;padding:8px 10px;resize:vertical;line-height:1.5;} select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;-webkit-appearance:none;padding-right:28px;cursor:pointer;} +/* 年份选择控件 */ +.year-picker{position:relative;} +.year-picker .form-control{padding-right:30px;cursor:pointer;} +.year-picker>svg{position:absolute;right:9px;top:50%;transform:translateY(-50%);pointer-events:none;} +.year-picker__dropdown{display:none;position:absolute;top:36px;left:0;width:100%;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:50;max-height:180px;overflow-y:auto;} +.year-picker__dropdown.open{display:block;} +.year-picker__dropdown div{padding:8px 14px;font-size:var(--font-sm);cursor:pointer;} +.year-picker__dropdown div:hover{background:var(--primary-light);} +.year-picker__dropdown div.selected{color:var(--primary);font-weight:600;} .radio-group{display:flex;gap:20px;height:32px;align-items:center;} .radio{display:flex;align-items:center;gap:6px;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;} .radio input{accent-color:var(--primary);cursor:pointer;} @@ -223,7 +232,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ - @@ -261,54 +269,67 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/
* 所属医疗点
-
* 救护类型 -
- - -
车辆信息
-
* 车型
-
* 车牌号
-
年支付费用(万元)
-
救护车所属机构名称
-
开始服务年份
+
* 救护类型 +
+ + +
+
* 车型
+
* 车牌号
+
救护车所属机构名称
+
开始服务年份 +
+ + +
+
2026
+
2025
+
2024
+
2023
+
2022
+
2021
+
2020
+
2019
+
2018
+
2017
+
2016
+
+
+
年支付费用(万元)
+
是否安装GPS +
+ + +
是否链接公司车辆管理系统
+
救护车照片(最多5张) +
+
点击 + 上传,支持 jpg/png,单张不超过 5MB
覆盖范围
-
* 覆盖区域
-
* 覆盖人数
+
* 覆盖区域
+
* 覆盖人数
急救能力
所配急救设备 -
+
救护能力 -
+
驾驶员信息
-
* 驾驶员姓名
-
* 联系电话
-
-
是否安装GPS -
- - -
- -
证照与照片
-
救护车照片(最多5张) -
-
点击 + 上传,支持 jpg/png,单张不超过 5MB
-
+
* 驾驶员姓名
+
* 联系电话
驾驶证图片(最多5张)
资格证图片(最多5张) @@ -425,7 +446,7 @@ function renderTable(){ +'' +''+(start+i+1)+'' +''+a.unit+'' - +''+a.point+'' + +''+a.point+'' +''+typeBadge+'' +''+a.model+'' +''+a.plate+'' @@ -458,6 +479,29 @@ function turnPage(d){ function toggleAll(el){document.querySelectorAll('.row-check').forEach(function(c){c.checked=el.checked;});} function checkedIds(){return [].slice.call(document.querySelectorAll('.row-check:checked')).map(function(c){return +c.value;});} +/* ===== 年份选择控件 ===== */ +function pickYear(el){ + var dp=el.parentElement,input=dp.parentElement.querySelector('input'); + input.value=el.textContent; + dp.querySelectorAll('div').forEach(function(d){d.classList.toggle('selected',d===el);}); + dp.classList.remove('open'); +} +document.querySelectorAll('.year-picker>input').forEach(function(inp){ + inp.addEventListener('click',function(e){ + e.stopPropagation(); + var dp=inp.parentElement.querySelector('.year-picker__dropdown'); + var wasOpen=dp.classList.contains('open'); + document.querySelectorAll('.year-picker__dropdown.open').forEach(function(d){d.classList.remove('open');}); + if(!wasOpen){ + dp.querySelectorAll('div').forEach(function(d){d.classList.toggle('selected',d.textContent===inp.value);}); + dp.classList.add('open'); + } + }); +}); +document.addEventListener('click',function(){ + document.querySelectorAll('.year-picker__dropdown.open').forEach(function(d){d.classList.remove('open');}); +}); + /* ===== 照片占位 ===== */ function renderPhotos(boxId,count){ var html=''; @@ -558,17 +602,19 @@ function openDetail(id){ var a=ambulances.find(function(x){return x.id===id;}); document.getElementById('detailTitle').textContent='救护车详情 · '+a.plate; function d(k,v,full){return '
'+k+'
'+(v===''||v==null?'—':v)+'
';} + function dPhoto(k,tiles){return '
'+k+'
'+tiles+'
';} document.getElementById('detailBody').innerHTML= - '
归属与类型
' - +'
'+d('所属单位',a.unit)+d('所属医疗点',a.point)+d('救护类型',a.type)+d('车型',a.model)+'
' + '
归属信息
' + +'
'+d('所属单位',a.unit)+d('所属医疗点',a.point)+'
' +'
车辆信息
' - +'
'+d('车牌号',a.plate)+d('年支付费用(万元)',a.fee)+d('所属机构',a.org)+d('开始服务年份',a.year)+d('链接车辆管理系统',a.link)+d('是否安装GPS',a.gps)+'
' + +'
'+d('救护类型',a.type)+d('车型',a.model)+d('车牌号',a.plate)+d('所属机构',a.org)+d('开始服务年份',a.year)+d('年支付费用(万元)',a.fee)+d('是否安装GPS',a.gps)+d('链接车辆管理系统',a.link)+'
' + +dPhoto('救护车照片','
🚑
🚑
') +'
覆盖与急救能力
' +'
'+d('覆盖区域',a.area)+d('覆盖人数',a.people.toLocaleString()+' 人')+d('所配急救设备',a.equip,true)+d('救护能力',a.ability,true)+'
' - +'
驾驶员
' + +'
驾驶员信息
' +'
'+d('驾驶员姓名',a.driver)+d('联系电话',a.tel)+'
' - +'
证照与照片
' - +'
🚑
🚑
🪪
📄
'; + +dPhoto('驾驶证图片','
🪪
') + +dPhoto('资格证图片','
📄
'); document.getElementById('detailMask').classList.add('open'); document.getElementById('detailDrawer').classList.add('open'); } diff --git a/web-admin/frontline-medical/daily-ambulance-attendance.html b/web-admin/frontline-medical/daily-ambulance-attendance.html index 0185099..c7de238 100644 --- a/web-admin/frontline-medical/daily-ambulance-attendance.html +++ b/web-admin/frontline-medical/daily-ambulance-attendance.html @@ -39,17 +39,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei .sidebar-group.open .sidebar-group__items{display:block;} .sidebar-item--sub{padding-left:44px;} .main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);} -/* 统计卡片 */ -.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;} -.stat-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px 20px;display:flex;align-items:center;gap:14px;} -.stat-card__icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;} -.stat-card__icon--blue{background:var(--primary-light);} -.stat-card__icon--green{background:#F6FFED;} -.stat-card__icon--orange{background:#FFFBE6;} -.stat-card__icon--red{background:#FFF1F0;} -.stat-card__label{font-size:var(--font-sm);color:var(--text-secondary);} -.stat-card__value{font-size:24px;font-weight:600;color:var(--text-primary);line-height:1.3;font-variant-numeric:tabular-nums;} -.stat-card__extra{font-size:var(--font-xs);color:var(--text-placeholder);} +/* 筛选栏 */ .filter-bar{background:#fff;padding:16px 24px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);} .filter-item{display:flex;align-items:center;gap:8px;} .filter-item label{font-size:var(--font-sm);color:var(--text-secondary);white-space:nowrap;} @@ -158,7 +148,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/
健康宣教 + 救护车出勤 报告解读记录
- -
-
📅
当周出勤
0
本周
-
🗓️
当月出勤
0
本月
-
📆
年度出勤
0
本年度
-
📊
累计出勤
0
历史累计
-
- - +
+
+ + +
-
- - + +
@@ -272,10 +259,12 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/
* 出勤类型
- - + + + +
* 出勤司机
@@ -360,7 +349,14 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ diff --git a/web-admin/frontline-medical/daily-chronic-intervention.html b/web-admin/frontline-medical/daily-chronic-intervention.html index 7229b01..4ba74c4 100644 --- a/web-admin/frontline-medical/daily-chronic-intervention.html +++ b/web-admin/frontline-medical/daily-chronic-intervention.html @@ -129,7 +129,6 @@ tbody tr:hover{background:#F8FBFF;}
健康宣教 + 救护车出勤 报告解读记录 diff --git a/web-admin/frontline-medical/daily-chronic.html b/web-admin/frontline-medical/daily-chronic.html index 45a35ba..290705b 100644 --- a/web-admin/frontline-medical/daily-chronic.html +++ b/web-admin/frontline-medical/daily-chronic.html @@ -145,7 +145,6 @@ tbody tr:hover td:last-child{background:#F8FBFF;} diff --git a/web-admin/frontline-medical/daily-education.html b/web-admin/frontline-medical/daily-education.html index e5a0752..e6d149c 100644 --- a/web-admin/frontline-medical/daily-education.html +++ b/web-admin/frontline-medical/daily-education.html @@ -167,7 +167,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ diff --git a/web-admin/frontline-medical/daily-employee-file.html b/web-admin/frontline-medical/daily-employee-file.html index c4a5c1f..498d2db 100644 --- a/web-admin/frontline-medical/daily-employee-file.html +++ b/web-admin/frontline-medical/daily-employee-file.html @@ -193,7 +193,6 @@ tbody tr:hover{background:#F8FBFF;} diff --git a/web-admin/frontline-medical/daily-employee-search.html b/web-admin/frontline-medical/daily-employee-search.html index b77eef4..a9efd41 100644 --- a/web-admin/frontline-medical/daily-employee-search.html +++ b/web-admin/frontline-medical/daily-employee-search.html @@ -128,7 +128,6 @@ tbody tr:hover td:last-child{background:#F8FBFF;} diff --git a/web-admin/frontline-medical/daily-follow-task.html b/web-admin/frontline-medical/daily-follow-task.html index 5fa0964..e6fcabc 100644 --- a/web-admin/frontline-medical/daily-follow-task.html +++ b/web-admin/frontline-medical/daily-follow-task.html @@ -190,7 +190,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ diff --git a/web-admin/frontline-medical/daily-follow.html b/web-admin/frontline-medical/daily-follow.html index d17f216..9bb8593 100644 --- a/web-admin/frontline-medical/daily-follow.html +++ b/web-admin/frontline-medical/daily-follow.html @@ -186,7 +186,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ diff --git a/web-admin/frontline-medical/daily-interpret-manage.html b/web-admin/frontline-medical/daily-interpret-manage.html index 045ba96..a96643f 100644 --- a/web-admin/frontline-medical/daily-interpret-manage.html +++ b/web-admin/frontline-medical/daily-interpret-manage.html @@ -154,7 +154,6 @@ tbody tr:hover td:last-child{background:#F8FBFF;} diff --git a/web-admin/frontline-medical/daily-interpret.html b/web-admin/frontline-medical/daily-interpret.html index 7bed2ee..0aab386 100644 --- a/web-admin/frontline-medical/daily-interpret.html +++ b/web-admin/frontline-medical/daily-interpret.html @@ -197,7 +197,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ diff --git a/web-admin/frontline-medical/daily-treatment.html b/web-admin/frontline-medical/daily-treatment.html index df338e1..6d6bffe 100644 --- a/web-admin/frontline-medical/daily-treatment.html +++ b/web-admin/frontline-medical/daily-treatment.html @@ -188,7 +188,6 @@ select.form-control{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http:/ diff --git a/web-admin/health-checkup/archive-unit.html b/web-admin/health-checkup/archive-unit.html index 7791c5a..f475d61 100644 --- a/web-admin/health-checkup/archive-unit.html +++ b/web-admin/health-checkup/archive-unit.html @@ -211,16 +211,15 @@ 总人数应检人数已选项目人数已预约人数已检人数未检人数 受检率?受检率 = 实际检查人数 ÷ 应检人数 检出率?检出率 = 异常人数 ÷ 实际检查人数 - 患病率?患病率 = 单病种异常人数 ÷ 实际参加检查人数 重点指标异常人数冠脉CTA异常人数防癌筛查异常人数 计划总费用(元)实际总费用(元)人均费用(元) - 1公司机关综合管理部2025宝石花医院宝石花医院2025-06-23至2025-08-311000100098085080020080.0%41.0%18.0%3289122,600,0002,180,0002,725.00 - 2采油一厂采油作业一区2025宝石花医院西安高新医院2025-07-01至2025-09-153200300028602450230070076.7%40.0%16.5%92024357,800,0006,210,0002,700.00 - 3采油二厂采油作业二区2025宝石花医院长安心血管医院2025-07-10至2025-09-302800260024802100195065075.0%40.0%17.2%78021286,760,0005,265,0002,700.00 - 4公司机关综合管理部2024宝石花医院宝石花医院2024-06-20至2024-08-2598098095083079019080.6%39.0%17.5%3088102,450,0002,020,0002,556.96 + 1公司机关综合管理部2025宝石花医院宝石花医院2025-06-23至2025-08-311000100098085080020080.0%41.0%3289122,600,0002,180,0002,725.00 + 2采油一厂采油作业一区2025宝石花医院西安高新医院2025-07-01至2025-09-153200300028602450230070076.7%40.0%92024357,800,0006,210,0002,700.00 + 3采油二厂采油作业二区2025宝石花医院长安心血管医院2025-07-10至2025-09-302800260024802100195065075.0%40.0%78021286,760,0005,265,0002,700.00 + 4公司机关综合管理部2024宝石花医院宝石花医院2024-06-20至2024-08-2598098095083079019080.6%39.0%3088102,450,0002,020,0002,556.96 diff --git a/web-admin/health-checkup/mid-appointment-track.html b/web-admin/health-checkup/mid-appointment-track.html index 58da0b0..86f9d96 100644 --- a/web-admin/health-checkup/mid-appointment-track.html +++ b/web-admin/health-checkup/mid-appointment-track.html @@ -158,6 +158,7 @@ @@ -194,7 +196,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-cancer-screening.html b/web-admin/health-checkup/post-cancer-screening.html index c2a7db2..d6a38da 100644 --- a/web-admin/health-checkup/post-cancer-screening.html +++ b/web-admin/health-checkup/post-cancer-screening.html @@ -126,7 +126,8 @@ 常规体检 @@ -177,7 +180,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-conclusion-disease.html b/web-admin/health-checkup/post-conclusion-disease.html index fa6631b..0802946 100644 --- a/web-admin/health-checkup/post-conclusion-disease.html +++ b/web-admin/health-checkup/post-conclusion-disease.html @@ -153,7 +153,8 @@ 常规体检 @@ -204,7 +206,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-contracted-hospital.html b/web-admin/health-checkup/post-contracted-hospital.html index e00f31e..abacd70 100644 --- a/web-admin/health-checkup/post-contracted-hospital.html +++ b/web-admin/health-checkup/post-contracted-hospital.html @@ -117,7 +117,8 @@ 常规体检 @@ -168,7 +170,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-cta-report.html b/web-admin/health-checkup/post-cta-report.html index 4eb23d8..701fb6c 100644 --- a/web-admin/health-checkup/post-cta-report.html +++ b/web-admin/health-checkup/post-cta-report.html @@ -184,7 +184,8 @@ 常规体检 @@ -235,7 +237,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-cta-stat.html b/web-admin/health-checkup/post-cta-stat.html index 977d780..1f168d7 100644 --- a/web-admin/health-checkup/post-cta-stat.html +++ b/web-admin/health-checkup/post-cta-stat.html @@ -143,7 +143,8 @@ 常规体检 @@ -194,7 +196,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-disease-info.html b/web-admin/health-checkup/post-disease-info.html index f55016f..a52dafb 100644 --- a/web-admin/health-checkup/post-disease-info.html +++ b/web-admin/health-checkup/post-disease-info.html @@ -151,7 +151,8 @@ 常规体检 @@ -202,7 +204,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-doctor-count.html b/web-admin/health-checkup/post-doctor-count.html index 689b2a9..3b7b450 100644 --- a/web-admin/health-checkup/post-doctor-count.html +++ b/web-admin/health-checkup/post-doctor-count.html @@ -126,7 +126,8 @@ 常规体检 @@ -177,7 +180,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-employee-master.html b/web-admin/health-checkup/post-employee-master.html index aa6472c..4905aa4 100644 --- a/web-admin/health-checkup/post-employee-master.html +++ b/web-admin/health-checkup/post-employee-master.html @@ -81,6 +81,9 @@ .col2{left:166px;width:120px;min-width:120px;max-width:120px;} .th-base.col0,.th-base.col1,.th-base.col2{z-index:5;} .res-abn{color:var(--danger);font-weight:600;} + .stat-row td{background:#F0F5FF!important;color:var(--primary);font-weight:500;text-align:center;} + th.sortable{cursor:pointer;user-select:none;} + th.sortable:hover{color:var(--primary);} .tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);} .tag-blue{background:var(--primary-light);color:var(--primary);} .link{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}.link:hover{color:#40a9ff;} @@ -139,7 +142,8 @@ 常规体检 @@ -190,7 +196,7 @@ 冠脉CTA体检 @@ -378,6 +384,65 @@ var CAT_DEFAULTS={ '电解质检测':['-'],'肿瘤标志物检测M':['-'],'糖化血红蛋白':['-'],'血糖':['-'],'幽门螺杆菌检测':['阴性'], '同型半胱氨酸':['-'],'淀粉酶':['-'],'Homa-B':['-'],'Homa-IR':['-'] }; +/* 各项目参考范围(定性项目为"阴性";白细胞/红细胞按分类区分) */ +var REF_RANGE={ + '血常规|红细胞':'4.30-5.80','血常规|白细胞':'3.5-9.5','尿常规|红细胞':'阴性','尿常规|白细胞':'阴性', + '血小板数目':'125-350','血红蛋白':'115-150', + '尿糖':'阴性','酮体':'阴性','隐血':'阴性','尿蛋白':'阴性','胆红素':'阴性','亚硝酸盐':'阴性','上皮细胞':'阴性', + '碱性磷酸酶':'45-125','总蛋白':'65-85','ALT':'9-50','总胆红素':'3.4-20.5','AST':'15-40','白蛋白':'40-55', + 'γ-谷氨酰转移酶':'10-60','球蛋白':'20-40','白球比':'1.2-2.4','直接胆红素':'0-6.8','间接胆红素':'1.7-13.7','总胆汁酸':'0-10','胆碱脂酶':'5000-12000', + '尿酸':'208-428','肌酐':'57-97','尿素':'3.1-8.8','eGFR':'≥90','胱抑素-C':'0.5-1.2','渗透压':'275-305','尿微量白蛋白':'0-30', + '总胆固醇':'<5.2','甘油三酯':'<1.7','高密度脂蛋白胆固醇':'>1.0','高密度脂蛋白胆固醇2':'>0.4','低密度脂蛋白胆固醇':'<3.4','极低密度脂蛋白':'<0.78','脂蛋白a':'0-300','ApoA1':'1.0-2.0','ApoB':'0.6-1.1', + '肌酸激酶':'50-310','乳酸脱氢酶':'120-250','天门冬氨酸氨基转移酶同工酶':'0-25','α-羟丁酸脱氢酶':'72-182','肌酸激酶同工酶MB':'0-24', + '氯':'99-110','无机磷':'0.85-1.51','镁':'0.75-1.02','钙':'2.11-2.52', + '癌胚抗原':'<5.0','甲胎蛋白':'<7.0','CA19-9':'<37','CA242':'<20','CA72-4':'<6.9','神经元特异性烯醇化酶':'<16.3','细胞角蛋白19片段':'<3.3','鳞状细胞癌相关抗原':'<1.5','CA15-3':'<28','CA50':'<20','肿瘤特异性生长因子':'0-64','总前列腺特异性抗原':'<4.0','游离前列腺特异性抗原':'<1.0','细胞角蛋白':'<3.3','表皮生长因子':'<2.5','CC16':'<7.0','细胞角蛋白20片段':'<3.3','p53蛋白':'<0.5','血管内皮生长因子':'<142','CA125':'<35','HE4':'<70','胃蛋白酶原比值比值':'>3', + '糖化血红蛋白(生化检测)':'4.0-6.0','糖化血红蛋白HPLC法定性':'4.0-6.0', + '血糖测定':'3.9-6.1','餐后2小时血糖':'<7.8','糖化白蛋白':'11-16','胰岛素':'2.6-24.9', + '幽门螺旋杆菌抗体定量':'<30','碳13呼气试验':'阴性', + '同型半胱氨酸':'5-15','淀粉酶':'35-135','Homa-B':'1.0-3.0','Homa-IR':'<2.5' +}; +/* 把结果值拆成"数值 + 单位"(括注如"(正常)"留在数值里) */ +function splitVal(s){ + var m=s.match(/^([<≤>≥]?[-+]?\d+(?:\.\d+)?)(.*)$/); + if(m&&m[2]){ + if(/^\(.*\)$/.test(m[2]))return {v:m[1]+m[2],u:''}; + return {v:m[1],u:m[2]}; + } + return {v:s,u:''}; +} +/* 取某项目参考范围(优先 cat|name 精确匹配) */ +function getRef(col){return REF_RANGE[col.cat+'|'+col.name]||REF_RANGE[col.name]||'-';} +/* 某字段去重计数 */ +function distinct(rows,key){var o={};rows.forEach(function(r){o[r[key]]=1;});return Object.keys(o).length;} +/* 结果列排序状态:dir 1=升序 -1=倒序 */ +var SORT={cat:null,name:null,dir:1}; +/* 取某员工在指定项目上的"结果"字符串 */ +function resultVal(r,col){ + var val=r.r[col.cat+'|'+col.name]||r.r[col.name]; + if(!val)val=[(CAT_DEFAULTS[col.cat]||['-'])[0]]; + return splitVal(val[0]).v; +} +/* 数值化:取结果中的首个数字 */ +function numericOf(v){ + var m=String(v).match(/[-+]?\d+(?:\.\d+)?/); + return m?parseFloat(m[0]):null; +} +/* 结果比较:数值按大小,定性项排在数值后按字符串 */ +function cmpResult(a,b){ + var na=numericOf(a),nb=numericOf(b); + if(na===null&&nb===null)return String(a).localeCompare(String(b),'zh'); + if(na===null)return 1; + if(nb===null)return -1; + return na-nb; +} +/* 点击"结果"表头排序 */ +function sortByItem(th){ + var cat=th.getAttribute('data-cat'),name=th.getAttribute('data-name'); + if(SORT.cat===cat&&SORT.name===name){SORT.dir=-SORT.dir;} + else{SORT.cat=cat;SORT.name=name;SORT.dir=1;} + renderBigTable(); +} + /* 展开所有项目列:[{name,cat}](保持顺序) */ function allItems(){ var arr=[]; @@ -385,26 +450,64 @@ function allItems(){ return arr; } function buildHead(){ - /* 行1:基本信息(rowspan=3) + 一级分类(colspan);行2:二级分类(colspan);行3:具体项目 */ - var r1=[],r2=[],r3=[]; + /* 行1:基本信息(rowspan=4) + 一级分类(colspan);行2:二级分类(colspan);行3:具体项目(colspan=3);行4:结果/单位/参考范围 */ + var r1=[],r2=[],r3=[],r4=[]; BASE_COLS.forEach(function(c,i){ var cls='th-base'+(i<3?' col'+i:''); - r1.push(''+c.label+''); + r1.push(''+c.label+''); }); ITEM_TREE.forEach(function(g){ var cnt=0;g.lvl2.forEach(function(s){cnt+=s.items.length;}); - r1.push(''+g.lvl1+''); + r1.push(''+g.lvl1+''); g.lvl2.forEach(function(s){ - r2.push(''+s.name+''); - s.items.forEach(function(it){r3.push(''+it+'');}); + r2.push(''+s.name+''); + s.items.forEach(function(it){ + r3.push(''+it+''); + var ind=(SORT.cat===s.name&&SORT.name===it)?(SORT.dir>0?' ▲':' ▼'):' ↕'; + r4.push('结果'+ind+'单位参考范围'); + }); }); }); - return ''+r1.join('')+''+r2.join('')+''+r3.join('')+''; + return '
'+r1.join('')+''+r2.join('')+''+r3.join('')+''+r4.join('')+''; +} +function buildStatRow(){ + var items=allItems(),rows=getDisplayRows(),total=rows.length; + var baseKeys=['idx','name','empNo','gender','age','idCard','unit','dept','hospital','checkDate']; + var cells=''; + baseKeys.forEach(function(k,i){ + var cls='td-base'+(i<3?' col'+i:''); + var txt; + if(k==='idx')txt='统计行'; + else if(k==='name'||k==='empNo'||k==='idCard')txt=total+'个员工'; + else if(k==='gender')txt=distinct(rows,'gender')+'种性别'; + else if(k==='age')txt=distinct(rows,'age')+'种年龄'; + else if(k==='unit')txt=distinct(rows,'unit')+'个单位'; + else if(k==='dept')txt=distinct(rows,'dept')+'个部门'; + else if(k==='hospital')txt=distinct(rows,'hospital')+'个医院'; + else if(k==='checkDate')txt=distinct(rows,'checkDate')+'个日期'; + cells+=''; + }); + items.forEach(function(col){ + var abn=0; + rows.forEach(function(r){ + var val=r.r[col.cat+'|'+col.name]||r.r[col.name]; + if(!val)val=[(CAT_DEFAULTS[col.cat]||['-'])[0]]; + if(val[1])abn++; + }); + cells+=''; + }); + return ''+cells+''; } function buildBody(){ var items=allItems(); var baseKeys=['idx','name','empNo','gender','age','idCard','unit','dept','hospital','checkDate']; - var rows=getDisplayRows().map(function(r,ri){ + var display=getDisplayRows(); + if(SORT.name){ + display=display.slice().sort(function(a,b){ + return SORT.dir*cmpResult(resultVal(a,SORT),resultVal(b,SORT)); + }); + } + var rows=display.map(function(r,ri){ var cells=''; baseKeys.forEach(function(k,i){ var cls='td-base'+(i<3?' col'+i:''); @@ -414,11 +517,14 @@ function buildBody(){ items.forEach(function(col){ var val=r.r[col.cat+'|'+col.name]||r.r[col.name]; if(!val)val=[(CAT_DEFAULTS[col.cat]||['-'])[0]]; - cells+=''; + var sp=splitVal(val[0]); + cells+=''; + cells+=''; + cells+=''; }); return ''+cells+''; }).join(''); - return ''+rows+'
'+txt+''+abn+'/'+total+'
'+val[0]+''+sp.v+''+(sp.u||'-')+''+getRef(col)+'
'; + return ''+buildStatRow()+rows+''; } /* 员工是否存在异常指标(任一项目结果带异常标记) */ function hasAbnormal(r){ @@ -444,7 +550,7 @@ function renderBigTable(){ document.getElementById('bigTable').innerHTML=buildHead()+buildBody(); document.getElementById('pageTotal').textContent='共 '+getDisplayRows().length+' 条'; var k=document.getElementById('keyCount'); - if(k)k.textContent='重点项目 '+allItems().length+' 列'; + if(k)k.textContent='体检项目 '+allItems().length+' 个'; } var toastTimer=null; function showToast(msg){ diff --git a/web-admin/health-checkup/post-gastro-stat.html b/web-admin/health-checkup/post-gastro-stat.html index f87a4b2..790cc3d 100644 --- a/web-admin/health-checkup/post-gastro-stat.html +++ b/web-admin/health-checkup/post-gastro-stat.html @@ -143,7 +143,8 @@ 常规体检 @@ -194,7 +196,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-group-report.html b/web-admin/health-checkup/post-group-report.html new file mode 100644 index 0000000..dc5d451 --- /dev/null +++ b/web-admin/health-checkup/post-group-report.html @@ -0,0 +1,508 @@ + + + + + +健康体检 - 单位群体报告 | 健康CQ原型 + + + + + +
+ + +
+ + + 返回首页 + +
+ 系统管理员 ▾ +
+
+ + + + + +
+ +
+
+ +
+ + +
+
2026
+
2025
+
2024
+
+
+
+
+ +
+
+ + +
+ +
+
+
单位列表
+ +
+
+
+ + +
+
+
+ + + + diff --git a/web-admin/health-checkup/post-hospital-count.html b/web-admin/health-checkup/post-hospital-count.html index 6bfd710..455ee1d 100644 --- a/web-admin/health-checkup/post-hospital-count.html +++ b/web-admin/health-checkup/post-hospital-count.html @@ -126,7 +126,8 @@ 常规体检 @@ -177,7 +180,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-illness-personnel.html b/web-admin/health-checkup/post-illness-personnel.html index 93cc457..f5a80d9 100644 --- a/web-admin/health-checkup/post-illness-personnel.html +++ b/web-admin/health-checkup/post-illness-personnel.html @@ -153,7 +153,8 @@ 常规体检 @@ -204,7 +206,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-indicator-notify.html b/web-admin/health-checkup/post-indicator-notify.html index cc440ce..271d819 100644 --- a/web-admin/health-checkup/post-indicator-notify.html +++ b/web-admin/health-checkup/post-indicator-notify.html @@ -125,7 +125,8 @@ 常规体检 @@ -176,7 +178,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-item-stat.html b/web-admin/health-checkup/post-item-stat.html index b0ef319..1042e18 100644 --- a/web-admin/health-checkup/post-item-stat.html +++ b/web-admin/health-checkup/post-item-stat.html @@ -117,7 +117,8 @@ 常规体检 @@ -168,7 +170,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-key-indicator-stat.html b/web-admin/health-checkup/post-key-indicator-stat.html index 6c445c0..0bea391 100644 --- a/web-admin/health-checkup/post-key-indicator-stat.html +++ b/web-admin/health-checkup/post-key-indicator-stat.html @@ -150,7 +150,8 @@ 常规体检 @@ -201,7 +203,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-report-employee.html b/web-admin/health-checkup/post-report-employee.html index 85056f2..c9a6f2f 100644 --- a/web-admin/health-checkup/post-report-employee.html +++ b/web-admin/health-checkup/post-report-employee.html @@ -152,7 +152,8 @@ 常规体检 @@ -203,7 +206,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-report-gastro.html b/web-admin/health-checkup/post-report-gastro.html index 65e60e2..65edf8d 100644 --- a/web-admin/health-checkup/post-report-gastro.html +++ b/web-admin/health-checkup/post-report-gastro.html @@ -203,7 +203,8 @@ 常规体检 @@ -254,7 +256,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-report-unmatched.html b/web-admin/health-checkup/post-report-unmatched.html index 7d27e24..32494d7 100644 --- a/web-admin/health-checkup/post-report-unmatched.html +++ b/web-admin/health-checkup/post-report-unmatched.html @@ -136,7 +136,8 @@ 常规体检 @@ -187,7 +189,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-standard-stat.html b/web-admin/health-checkup/post-standard-stat.html index dc9f1af..4332e1c 100644 --- a/web-admin/health-checkup/post-standard-stat.html +++ b/web-admin/health-checkup/post-standard-stat.html @@ -126,7 +126,8 @@ 常规体检 @@ -177,7 +180,7 @@ 冠脉CTA体检 diff --git a/web-admin/health-checkup/post-unit-cost-stat.html b/web-admin/health-checkup/post-unit-cost-stat.html index 3b2ffc0..fc9ad91 100644 --- a/web-admin/health-checkup/post-unit-cost-stat.html +++ b/web-admin/health-checkup/post-unit-cost-stat.html @@ -86,13 +86,11 @@ .pagination span{font-size:var(--font-sm);color:var(--text-secondary);} .page-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;font-size:var(--font-sm);display:inline-flex;align-items:center;justify-content:center;transition:all .2s;} .page-btn:hover,.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);} - /* 三级单位tab下才显示的部门列 */ - .col-dept{display:none;} - body.level-3 .col-dept{display:table-cell;} /* 员工费用明细弹窗 */ .modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:200;display:flex;align-items:center;justify-content:center;} - .modal{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:1000px;max-width:92vw;display:flex;flex-direction:column;max-height:82vh;} - .modal--narrow{width:560px;} + .modal{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);width:1500px;max-width:96vw;display:flex;flex-direction:column;max-height:82vh;} + .modal--narrow{width:820px;} + .modal table th,.modal table td{padding:8px 12px;} .modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);flex-shrink:0;} .modal__title{font-size:var(--font-base);font-weight:600;} .modal__close{font-size:22px;color:var(--text-placeholder);cursor:pointer;line-height:1;} @@ -147,7 +145,8 @@ 常规体检 @@ -198,7 +199,7 @@ 冠脉CTA体检 @@ -218,11 +219,6 @@
- -
-
二级单位
-
三级单位
-
@@ -273,36 +269,36 @@ 序号 单位 - 部门 体检医院 - 已体检人数 - 报告完整人数 - 报告不完整人数 - 报告缺少项目总数 - 计划总体检费用(元) - 实际总体检费用(元) + 应检人数 + 医院登记已检人数 + 数据完整人数 + 数据不完整人数 + 计划体检费用(元) + 应付体检费用(元) + 实际体检费用(元) 体检年份 签约医院 - 操作 + 操作(员工费用明细) - 1第一采油厂采油作业一区CQ总医院395037701808108,146,875.007,052,000.002026CQ总医院,泾河医院,庆阳医院员工费用明细 - 2第一采油厂采油作业一区泾河医院216020551054304,455,000.003,862,600.002026CQ总医院,泾河医院,庆阳医院员工费用明细 - 3第一采油厂采油作业一区庆阳医院14101361492632,908,125.002,518,000.002026CQ总医院,泾河医院,庆阳医院员工费用明细 - 4第二采油厂采油作业二区CQ总医院376035901706207,755,000.006,706,262.502026CQ总医院,延安医院,泾河医院员工费用明细 - 5第二采油厂采油作业二区延安医院21902097933504,516,875.003,926,500.002026CQ总医院,延安医院,泾河医院员工费用明细 - 6第二采油厂采油作业二区泾河医院13601300602252,805,000.002,443,000.002026CQ总医院,延安医院,泾河医院员工费用明细 - 7第三采油厂集输作业一区庆阳医院312029951254556,435,000.005,586,775.002026庆阳医院,延安医院员工费用明细 - 8第三采油厂集输作业一区延安医院286027501104145,898,750.005,095,000.002026庆阳医院,延安医院员工费用明细 - 9第一采油厂采油作业一区CQ总医院413039901405908,518,125.007,384,600.002025CQ总医院,泾河医院,庆阳医院员工费用明细 - 10第一采油厂采油作业一区泾河医院21102040703104,351,875.003,783,000.002025CQ总医院,泾河医院,庆阳医院员工费用明细 - 11第一采油厂采油作业一区庆阳医院14401382581992,970,000.002,570,000.002025CQ总医院,泾河医院,庆阳医院员工费用明细 - 12第二采油厂采油作业二区CQ总医院391037701405208,064,375.006,983,562.502025CQ总医院,延安医院,泾河医院员工费用明细 - 13第二采油厂采油作业二区延安医院21402061792904,413,750.003,829,000.002025CQ总医院,延安医院,泾河医院员工费用明细 - 14第二采油厂采油作业二区泾河医院14001350501852,887,500.002,495,000.002025CQ总医院,延安医院,泾河医院员工费用明细 - 15第三采油厂集输作业一区庆阳医院330031901103906,806,250.005,888,150.002025庆阳医院,延安医院员工费用明细 - 16第三采油厂集输作业一区延安医院28202735853325,816,250.005,059,000.002025庆阳医院,延安医院员工费用明细 + 1第一采油厂CQ总医院4100395037701808,146,875.007,489,950.007,052,000.002026CQ总医院,泾河医院,庆阳医院员工费用明细 + 2第一采油厂泾河医院2250216020551054,455,000.004,099,560.003,862,600.002026CQ总医院,泾河医院,庆阳医院员工费用明细 + 3第一采油厂庆阳医院148014101361492,908,125.002,674,050.002,518,000.002026CQ总医院,泾河医院,庆阳医院员工费用明细 + 4第二采油厂CQ总医院3920376035901707,755,000.007,125,757.506,706,262.502026CQ总医院,延安医院,泾河医院员工费用明细 + 5第二采油厂延安医院228021902097934,516,875.004,162,650.003,926,500.002026CQ总医院,延安医院,泾河医院员工费用明细 + 6第二采油厂泾河医院143013601300602,805,000.002,587,800.002,443,000.002026CQ总医院,延安医院,泾河医院员工费用明细 + 7第三采油厂庆阳医院3260312029951256,435,000.005,926,065.005,586,775.002026庆阳医院,延安医院员工费用明细 + 8第三采油厂延安医院2990286027501105,898,750.005,416,500.005,095,000.002026庆阳医院,延安医院员工费用明细 + 9第一采油厂CQ总医院4290413039901408,518,125.007,838,010.007,384,600.002025CQ总医院,泾河医院,庆阳医院员工费用明细 + 10第一采油厂泾河医院220021102040704,351,875.004,010,550.003,783,000.002025CQ总医院,泾河医院,庆阳医院员工费用明细 + 11第一采油厂庆阳医院151014401382582,970,000.002,730,000.002,570,000.002025CQ总医院,泾河医院,庆阳医院员工费用明细 + 12第二采油厂CQ总医院4070391037701408,064,375.007,415,887.506,983,562.502025CQ总医院,延安医院,泾河医院员工费用明细 + 13第二采油厂延安医院223021402061794,413,750.004,062,900.003,829,000.002025CQ总医院,延安医院,泾河医院员工费用明细 + 14第二采油厂泾河医院147014001350502,887,500.002,652,000.002,495,000.002025CQ总医院,延安医院,泾河医院员工费用明细 + 15第三采油厂庆阳医院3440330031901106,806,250.006,255,390.005,888,150.002025庆阳医院,延安医院员工费用明细 + 16第三采油厂延安医院295028202735855,816,250.005,361,900.005,059,000.002025庆阳医院,延安医院员工费用明细
@@ -330,19 +326,19 @@
- +
- - +
序号姓名员工编号部门体检日期体检医院应检项目数已检项目数报告完整状态报告缺少项目数计划体检费用(元)实际体检费用(元)
序号姓名员工编号部门体检日期体检医院应检项目数医院登记数已检结果数数据完成状态数据缺少项目数计划体检费用(元)应付体检费用(元)实际体检费用(元)
@@ -415,13 +411,6 @@ + +