diff --git a/index.html b/index.html
index e3ad986..91f35c8 100644
--- a/index.html
+++ b/index.html
@@ -42,7 +42,7 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystem
/* ===== Tab 导航(嵌入 Header 底部) ===== */
.tab-nav { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 20px 48px 0; position: relative; z-index: 1; }
-.tab-nav__item { padding: 10px 28px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,0.7); cursor: pointer; border-radius: 28px; transition: all .25s ease; user-select: none; display: flex; align-items: center; gap: 8px; border: 1.5px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); backdrop-filter: blur(6px); }
+ .tab-nav__item { padding: 10px 28px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,0.7); cursor: pointer; border-radius: 28px; transition: all .25s ease; user-select: none; display: flex; align-items: center; gap: 8px; border: 1.5px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.08); }
.tab-nav__item:hover { color: #fff; background: rgba(255,255,255,0.18); border-color: rgba(255,255,255,0.4); }
.tab-nav__item--active { color: var(--primary-dark); background: #fff; border-color: #fff; box-shadow: 0 4px 16px rgba(0,0,0,0.15); }
.tab-nav__item--active .tab-nav__badge { background: var(--primary); color: #fff; }
@@ -77,8 +77,16 @@ body { background: var(--background); font-family: -apple-system, BlinkMacSystem
/* ===== 呼吸灯动画 ===== */
@keyframes breathe {
- 0%, 100% { border-color: rgba(82,196,26,0.35); box-shadow: 0 0 0 0 rgba(82,196,26,0); }
- 50% { border-color: rgba(82,196,26,0.7); box-shadow: 0 0 12px 2px rgba(82,196,26,0.18); }
+ 0%, 100% { border-color: rgba(82,196,26,0.35); }
+ 50% { border-color: rgba(82,196,26,0.85); }
+}
+
+/* 尊重系统「减少动态效果」设置,关闭所有动画/过渡,进一步降低低配机器的负担 */
+@media (prefers-reduced-motion: reduce) {
+ .tab-content, .page-popover { animation: none; }
+ .module-card--ready { animation: none; }
+ .module-card, .tab-nav__item, .module-card__page-count, .page-popover__item,
+ .module-card__prd, .prd-global-card, .prd-item { transition: none; }
}
/* ===== 模块卡片 ===== */
@@ -213,6 +221,7 @@ const SITE_MAP = [
{ file:'mid-doctor-realtime.html', label:'医生实时检查情况' },
{ file:'mid-doctor-count.html', label:'医生检查人数统计' },
{ file:'mid-hospital-appointment.html', label:'医院预约情况统计' },
+ { file:'mid-gastro-questionnaire.html', label:'胃肠镜问卷信息' },
{ file:'post-unit-count.html', label:'单位体检人数统计' },
{ file:'post-hospital-count.html', label:'医院体检人数统计' },
{ file:'post-doctor-count.html', label:'医生检查人数统计' },
diff --git a/web-admin/health-checkup/archive-personal.html b/web-admin/health-checkup/archive-personal.html
index b99cab2..c504327 100644
--- a/web-admin/health-checkup/archive-personal.html
+++ b/web-admin/health-checkup/archive-personal.html
@@ -110,6 +110,7 @@
+
diff --git a/web-admin/health-checkup/archive-unit.html b/web-admin/health-checkup/archive-unit.html
index 404d4a8..5aa85ff 100644
--- a/web-admin/health-checkup/archive-unit.html
+++ b/web-admin/health-checkup/archive-unit.html
@@ -113,6 +113,7 @@
+
diff --git a/web-admin/health-checkup/config-hospital-basic.html b/web-admin/health-checkup/config-hospital-basic.html
index 20221cb..51b3d6c 100644
--- a/web-admin/health-checkup/config-hospital-basic.html
+++ b/web-admin/health-checkup/config-hospital-basic.html
@@ -180,6 +180,7 @@
+
diff --git a/web-admin/health-checkup/config-hospital-combo.html b/web-admin/health-checkup/config-hospital-combo.html
index 4a4c850..fe956a6 100644
--- a/web-admin/health-checkup/config-hospital-combo.html
+++ b/web-admin/health-checkup/config-hospital-combo.html
@@ -171,6 +171,7 @@
+
diff --git a/web-admin/health-checkup/config-material-notice.html b/web-admin/health-checkup/config-material-notice.html
index affa7a6..b2baaf0 100644
--- a/web-admin/health-checkup/config-material-notice.html
+++ b/web-admin/health-checkup/config-material-notice.html
@@ -166,6 +166,7 @@
+
diff --git a/web-admin/health-checkup/config-material-video.html b/web-admin/health-checkup/config-material-video.html
index 2c8337d..31e6ac2 100644
--- a/web-admin/health-checkup/config-material-video.html
+++ b/web-admin/health-checkup/config-material-video.html
@@ -187,6 +187,7 @@
+
diff --git a/web-admin/health-checkup/config-report-template.html b/web-admin/health-checkup/config-report-template.html
index ab6814c..faa319e 100644
--- a/web-admin/health-checkup/config-report-template.html
+++ b/web-admin/health-checkup/config-report-template.html
@@ -200,6 +200,7 @@
+
diff --git a/web-admin/health-checkup/config-standard-basic.html b/web-admin/health-checkup/config-standard-basic.html
index 04baa09..2ace8ef 100644
--- a/web-admin/health-checkup/config-standard-basic.html
+++ b/web-admin/health-checkup/config-standard-basic.html
@@ -215,6 +215,7 @@
+
diff --git a/web-admin/health-checkup/config-standard-category.html b/web-admin/health-checkup/config-standard-category.html
index 1392bad..abb1858 100644
--- a/web-admin/health-checkup/config-standard-category.html
+++ b/web-admin/health-checkup/config-standard-category.html
@@ -219,6 +219,7 @@
+
diff --git a/web-admin/health-checkup/config-standard-hospital.html b/web-admin/health-checkup/config-standard-hospital.html
index ce9b600..09ae9e3 100644
--- a/web-admin/health-checkup/config-standard-hospital.html
+++ b/web-admin/health-checkup/config-standard-hospital.html
@@ -154,6 +154,7 @@
+
diff --git a/web-admin/health-checkup/exception-dirty.html b/web-admin/health-checkup/exception-dirty.html
index be1489c..044b95b 100644
--- a/web-admin/health-checkup/exception-dirty.html
+++ b/web-admin/health-checkup/exception-dirty.html
@@ -120,6 +120,7 @@
+
diff --git a/web-admin/health-checkup/exception-result.html b/web-admin/health-checkup/exception-result.html
index cabc4db..1e2963f 100644
--- a/web-admin/health-checkup/exception-result.html
+++ b/web-admin/health-checkup/exception-result.html
@@ -122,6 +122,7 @@
+
diff --git a/web-admin/health-checkup/mid-appointment-track.html b/web-admin/health-checkup/mid-appointment-track.html
index abda758..85a9cdf 100644
--- a/web-admin/health-checkup/mid-appointment-track.html
+++ b/web-admin/health-checkup/mid-appointment-track.html
@@ -33,15 +33,6 @@
.sidebar-item{display:flex;align-items:center;gap:8px;padding:10px 24px;color:rgba(255,255,255,0.65);font-size:var(--font-sm);cursor:pointer;transition:all .15s;text-decoration:none;}
.sidebar-item:hover{color:#fff;background:rgba(255,255,255,0.06);}
.sidebar-item.active{color:#fff;background:var(--primary);}
- .sidebar-subgroup__header{display:flex;align-items:center;gap:6px;padding:10px 24px;color:rgba(255,255,255,0.65);font-size:var(--font-sm);cursor:pointer;transition:all .15s;user-select:none;}
- .sidebar-subgroup__header:hover{color:rgba(255,255,255,0.85);background:rgba(255,255,255,0.04);}
- .sidebar-subgroup__header .arrow{width:10px;height:10px;transition:transform .2s;flex-shrink:0;}
- .sidebar-subgroup__header .arrow path{stroke:rgba(255,255,255,0.45);}
- .sidebar-subgroup.open>.sidebar-subgroup__header{color:rgba(255,255,255,0.85);}
- .sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
- .sidebar-subgroup__body{display:none;padding-left:16px;}
- .sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
- .sidebar-subgroup__body .sidebar-item{padding-left:36px;font-size:12px;}
/* 主内容 */
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
/* 筛选栏 */
@@ -54,12 +45,10 @@
.btn{height:36px;padding:0 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);cursor:pointer;border:none;transition:all .2s;display:inline-flex;align-items:center;gap:6px;}
.btn-primary{background:var(--primary);color:#fff;}.btn-primary:hover{background:#40a9ff;}
.btn-default{background:#fff;color:var(--text-primary);border:1px solid var(--border);}.btn-default:hover{color:var(--primary);border-color:var(--primary);}
- .btn-danger{background:#fff;color:var(--danger);border:1px solid var(--danger);}.btn-danger:hover{background:#fff1f0;}
/* 表格 */
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;}
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);}
.table-card__title{font-size:var(--font-base);font-weight:600;}
- .table-card__actions{display:flex;gap:8px;align-items:center;}
.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
.table-card__content table{min-width:100%;white-space:nowrap;}
table{width:100%;border-collapse:collapse;}
@@ -72,12 +61,51 @@
.tag-green{background:#F6FFED;color:var(--success);}
.tag-orange{background:#FFF7E6;color:var(--warning);}
.tag-red{background:#FFF1F0;color:var(--danger);}
+ .tag-gray{background:#FAFAFA;color:#666;border:1px solid var(--border);}
.link{color:var(--primary);cursor:pointer;font-size:var(--font-sm);}.link:hover{color:#40a9ff;}
+ .fee-total{font-weight:600;color:var(--text-primary);}
+ .fee-sub{color:var(--text-secondary);}
+ /* 固定列:前三列 + 最后一列 */
+ .sticky-l1{position:sticky;left:0;z-index:6;min-width:64px;}
+ .sticky-l2{position:sticky;left:64px;z-index:6;min-width:88px;}
+ .sticky-l3{position:sticky;left:152px;z-index:6;min-width:104px;box-shadow:2px 0 6px rgba(0,0,0,0.08);}
+ .sticky-r{position:sticky;right:0;z-index:6;min-width:72px;box-shadow:-2px 0 6px rgba(0,0,0,0.08);}
+ thead .sticky-l1,thead .sticky-l2,thead .sticky-l3,thead .sticky-r{z-index:8;background:#FAFAFA;}
+ tbody .sticky-l1,tbody .sticky-l2,tbody .sticky-l3,tbody .sticky-r{background:#fff;}
+ tbody tr:hover .sticky-l1,tbody tr:hover .sticky-l2,tbody tr:hover .sticky-l3,tbody tr:hover .sticky-r{background:#F8FBFF;}
+ .sticky-l1:not(.sticky-l3):not(.sticky-r),.sticky-l2{box-shadow:none;}
+ /* 详情弹窗 */
+ .modal-mask{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.45);z-index:200;align-items:center;justify-content:center;}
+ .modal-mask.open{display:flex;}
+ .modal{background:#fff;border-radius:var(--radius-md);width:880px;max-width:92vw;max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--shadow-md);}
+ .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-lg);font-weight:600;}
+ .modal__close{width:28px;height:28px;border:none;background:none;cursor:pointer;color:var(--text-secondary);font-size:18px;line-height:1;border-radius:var(--radius-sm);}
+ .modal__close:hover{color:var(--text-primary);background:#F5F5F5;}
+ .modal__body{padding:20px 24px;overflow-y:auto;}
+ .modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--border);flex-shrink:0;}
+ .detail-section{margin-bottom:20px;}
+ .detail-section:last-child{margin-bottom:0;}
+ .detail-section__title{font-size:var(--font-sm);font-weight:600;color:var(--primary);margin-bottom:10px;padding-left:8px;border-left:3px solid var(--primary);}
+ .detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 24px;}
+ .detail-item{display:flex;align-items:baseline;gap:8px;font-size:var(--font-sm);min-width:0;}
+ .detail-item label{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;}
+ .detail-item span{color:var(--text-primary);word-break:break-all;}
+ .detail-fee{width:100%;border-collapse:collapse;margin-top:4px;}
+ .detail-fee th,.detail-fee td{border:1px solid var(--border);padding:10px 14px;font-size:var(--font-sm);text-align:right;}
+ .detail-fee th{background:#FAFAFA;color:var(--text-secondary);font-weight:500;text-align:center;}
+ .detail-fee td:first-child,.detail-fee th:first-child{text-align:center;}
+ .detail-fee .fee-total-row td{font-weight:600;background:#F8FBFF;}
/* 分页 */
.pagination{display:flex;align-items:center;justify-content:flex-end;padding:16px 24px;gap:8px;border-top:1px solid var(--border);}
.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);}
+ .sub-tabs{display:flex;gap:32px;background:#fff;border-radius:var(--radius-md);padding:0 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);border-bottom:1px solid var(--border);}
+ .sub-tabs__item{padding:14px 2px;font-size:var(--font-base);color:var(--text-secondary);cursor:pointer;position:relative;transition:color .2s;user-select:none;}
+ .sub-tabs__item:hover{color:var(--primary);}
+ .sub-tabs__item.active{color:var(--primary);font-weight:600;}
+ .sub-tabs__item.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary);border-radius:1px;}
@@ -111,17 +139,31 @@
-
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -168,13 +240,38 @@
- | 序号 | 单位 | 部门 | 员工编号 | 姓名 | 身份证号 | 预约状态 | 体检类型 | 体检医院 | 预约日期 | 系统体检状态 | 医院体检状态 | 体检日期 | 体检年份 | 操作 |
+ | 序号 | 姓名 | 员工编号 | 性别 | 年龄 | 身份证号 | 单位 | 部门 | 机构分类 | 婚姻状况 | 体检类型 | 防癌项 | 预约状态 | 预约信息 | 预约日期 | 体检状态 | 体检医院 | 体检日期 | 体检总费用 | 体检实际费用 | 体检年度 | 体检计划 | 操作 |
+
+
+ | 必检费用 | 选检费用 | 妇科费用 | 防癌筛查费用 |
- | 1 | 公司机关 | 办公室 | 342423 | 王旭 | 430626198502560029 | 已预约 | 常规体检 | 延安医院 | 2026-03-10 | 已体检(2/12) | 已体检(2/12) | 2026-03-10 | 2026 | 详情 |
- | 2 | 公司机关 | 办公室 | 324321 | 张武 | 430626198502560029 | 已预约 | 胃肠镜体检 | 延安医院 | 2026-03-10 | 未体检 | 未体检 | 2026-03-10 | 2026 | 详情 |
- | 3 | 第一采油厂 | 生产一队 | 456789 | 李明 | 610402199003150045 | 未预约 | 常规体检 | 泾河医院 | - | - | - | - | 2026 | 详情 |
+
+ | 1 | 王旭 | 342423 | 男 | 41 | 430626198502560029 | 公司机关 | 办公室 | 一类机构 | 已婚 | 已婚体检 | - | 已预约 | 已成功预约并更新项目 | 2026-03-10 | 已出报告 | 延安医院 | 2026-03-12 | ¥2,380.00 |
+ ¥1,200.00 | ¥680.00 | - | ¥500.00 |
+ 2026 | 2026年度胃肠镜专项体检 | 详情编辑 |
+
+
+ | 2 | 张武 | 324321 | 男 | 38 | 430626198806120037 | 公司机关 | 办公室 | 一类机构 | 已婚 | 已婚体检 | Septin9 | 已预约 | 体检预约成功 | 2026-03-10 | 已体检 | 延安医院 | 2026-03-11 | ¥1,860.00 |
+ ¥1,100.00 | ¥260.00 | - | ¥500.00 |
+ 2026 | 2026年度职工常规体检 | 详情编辑 |
+
+
+ | 3 | 李明 | 456789 | 男 | 36 | 610402199003150045 | 第一采油厂 | 生产一队 | 二类机构 | 未婚 | 未婚体检 | - | 已预约 | 体检预约成功 | 2026-03-15 | 体检中 | 泾河医院 | 2026-03-16 | ¥1,560.00 |
+ ¥1,100.00 | ¥460.00 | - | - |
+ 2026 | 2026年度职工常规体检 | 详情编辑 |
+
+
+ | 4 | 赵芳 | 512336 | 女 | 45 | 610402198109230028 | 第二采油厂 | 地质研究所 | 一类机构 | 已婚 | 已婚体检 | 两项都有 | 未预约 | - | - | 未体检 | - | - | ¥1,920.00 |
+ ¥1,100.00 | ¥320.00 | ¥350.00 | ¥150.00 |
+ 2026 | 2026年度职工常规体检 | 详情编辑 |
+
+
+ | 5 | 陈强 | 601178 | 男 | 52 | 610402197407080011 | 第三采油厂 | 集输大队 | 三类机构 | 已婚 | 已婚体检 | CA724 | 已取消预约 | - | 2026-03-08 | 未体检 | 市中心医院 | - | ¥2,380.00 |
+ ¥1,200.00 | ¥680.00 | - | ¥500.00 |
+ 2026 | 2026年度胃肠镜专项体检 | 详情编辑 |
+
@@ -192,7 +289,219 @@
+
+
+
+
+
+
+
+
+
基本信息
+
+
王旭
+
342423
+
男
+
41
+
430626198502560029
+
公司机关
+
办公室
+
一类机构
+
已婚
+
已婚体检
+
-
+
+
+
+
预约与体检信息
+
+
已预约
+
已成功预约并更新项目
+
2026-03-10
+
已出报告
+
延安医院
+
2026-03-12
+
2026
+
2026年度胃肠镜专项体检
+
+
+
+
费用信息
+
+
+ | 费用类型 | 金额(元) | 费用类型 | 金额(元) |
+
+
+
+ | 必检费用 | ¥1,200.00 |
+ 选检费用 | ¥680.00 |
+
+
+ | 妇科费用 | - |
+ 防癌筛查费用 | ¥500.00 |
+
+
+ | 体检总费用 | ¥2,380.00 |
+
+
+
+
+
+
+
+
+
+
+