feat: 新增穿戴监测运维中心-日常监测睡眠信息(watch5)页面
- 新建 monitor-sleep-watch5.html:列表含设备编码、睡眠起止时间、入睡/出睡时间、睡眠得分/效率/深睡连续性得分/打鼾频率、创建时间、操作(详情) - 详情弹窗含睡眠数据字段列表 + 数据详情子表格(睡眠开始时间/状态时长/状态) - 运维中心全部页面侧边栏新增睡眠信息(watch5)菜单项 - 修复 monitor-sleep.html 侧边栏缺失 SDC信息 菜单 - 同步 index.html SITE_MAP + CHANGELOG.md Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
572613b1bf
commit
f7acd81164
@@ -366,6 +366,7 @@ const SITE_MAP = [
|
||||
{ file:'wearable/ops/monitor-exercise.html', label:'穿戴监测-运维中心-锻炼信息' },
|
||||
{ file:'wearable/ops/monitor-heartrate.html', label:'穿戴监测-运维中心-心率信息' },
|
||||
{ file:'wearable/ops/monitor-sleep.html', label:'穿戴监测-运维中心-睡眠信息' },
|
||||
{ file:'wearable/ops/monitor-sleep-watch5.html', label:'穿戴监测-运维中心-睡眠信息(watch5)' },
|
||||
{ file:'wearable/ops/monitor-activity.html', label:'穿戴监测-运维中心-活动信息' },
|
||||
{ file:'wearable/ops/alarm-data.html', label:'穿戴监测-运维中心-事件监听' },
|
||||
{ file:'wearable/ops/log-network.html', label:'穿戴监测-运维中心-手表网络切换日志' },
|
||||
|
||||
@@ -1,5 +1,18 @@
|
||||
# 健康监测管理端 CHANGELOG
|
||||
|
||||
## [2026-06-08]
|
||||
|
||||
### 新增 — 穿戴监测运维中心 · 睡眠信息(watch5) 页面
|
||||
|
||||
- **`wearable/ops/monitor-sleep-watch5.html`** 睡眠信息(watch5)
|
||||
- 位于运维中心 > 日常监测 > 睡眠信息下方
|
||||
- 筛选条件:设备编码、日期范围
|
||||
- 列表字段:设备编码、数据日期、是否有睡眠数据、创建时间、操作(详情)
|
||||
- 详情弹窗:与 monitor-sleep.html 一致(当天睡眠结果 + 睡眠每分钟状态两个Tab)
|
||||
- 页面整体样式参考 monitor-sleep.html,设备编码前缀改为 W5 区分 watch5 设备
|
||||
- **`index.html`** SITE_MAP 新增对应条目
|
||||
- 运维中心全部 21 个页面侧边栏日常监测区域新增"睡眠信息(watch5)"菜单项
|
||||
|
||||
## [2026-06-03]
|
||||
|
||||
### 新增 — 穿戴监测运维中心 · 18个页面
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
.page-header{margin-bottom:20px;}
|
||||
.page-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);}
|
||||
@@ -159,11 +159,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item active">事件监听</a>
|
||||
<div class="sidebar-subgroup open">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item active">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -153,11 +153,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
.page-header{margin-bottom:20px;}
|
||||
.page-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);}
|
||||
@@ -93,7 +93,7 @@
|
||||
.detail-section-title{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);margin:18px 0 10px;display:flex;align-items:center;gap:6px;}
|
||||
.detail-section-title::before{content:'';width:3px;height:14px;background:var(--primary);border-radius:2px;}
|
||||
.json-block{background:#1e1e1e;border-radius:var(--radius-md);padding:14px 16px;overflow:auto;max-height:300px;margin-bottom:4px;}
|
||||
.json-block pre{font-family:'Consolas','SFMono-Regular',Consolas,Menlo,monospace;font-size:12px;line-height:1.6;color:#d4d4d4;white-space:pre-wrap;word-break:break-all;margin:0;}
|
||||
.json-block pre{font-family:'Consolas','SFMono-Regular',Consolas,Menlo,monospace;font-size:var(--font-sm);line-height:1.6;color:#d4d4d4;white-space:pre-wrap;word-break:break-all;margin:0;}
|
||||
.json-key{color:#9cdcfe;}.json-str{color:#ce9178;}.json-num{color:#b5cea8;}.json-bool{color:#569cd6;}
|
||||
</style>
|
||||
</head>
|
||||
@@ -150,11 +150,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
.page-header{margin-bottom:20px;}
|
||||
.page-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);}
|
||||
@@ -146,11 +146,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -152,11 +152,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
.page-header{margin-bottom:20px;}
|
||||
.page-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);}
|
||||
@@ -143,11 +143,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -150,11 +150,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item active">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
.filter-bar{background:#fff;border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
|
||||
.filter-item{display:flex;align-items:center;gap:8px;}
|
||||
@@ -157,11 +157,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -155,11 +155,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item active">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -150,11 +150,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item active">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -0,0 +1,537 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>健康监测 - 睡眠信息(watch5) | 健康长庆原型</title>
|
||||
<style>
|
||||
*{box-sizing:border-box;margin:0;padding:0;}
|
||||
body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;background:#F5F7FA;color:#333;min-width:1280px;}
|
||||
:root{
|
||||
--primary:#1890FF;--primary-light:#E6F7FF;--success:#52C41A;--warning:#FAAD14;--danger:#FF4D4F;--purple:#722ED1;
|
||||
--text-primary:#333;--text-secondary:#666;--text-placeholder:#999;--border:#E8E8E8;--background:#F5F7FA;
|
||||
--font-xs:11px;--font-sm:13px;--font-base:15px;--font-lg:17px;
|
||||
--radius-sm:4px;--radius-md:8px;--radius-lg:12px;
|
||||
--shadow-sm:0 1px 4px rgba(0,0,0,0.08);--shadow-md:0 4px 12px rgba(0,0,0,0.12);
|
||||
}
|
||||
.top-bar{display:flex;align-items:center;height:56px;background:#001529;padding:0 24px;position:fixed;top:0;left:0;right:0;z-index:100;}
|
||||
.top-bar__logo{display:flex;align-items:center;gap:8px;color:#fff;font-size:var(--font-lg);font-weight:600;white-space:nowrap;width:240px;flex-shrink:0;}
|
||||
.top-bar__logo svg{width:28px;height:28px;}
|
||||
.top-bar__right{display:flex;align-items:center;gap:16px;color:rgba(255,255,255,0.65);font-size:var(--font-sm);}
|
||||
.btn-back{color:rgba(255,255,255,0.65);cursor:pointer;display:flex;align-items:center;gap:4px;text-decoration:none;}
|
||||
.btn-back:hover{color:#fff;}
|
||||
.avatar{width:32px;height:32px;border-radius:50%;background:#1890FF;display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-sm);cursor:pointer;}
|
||||
.top-bar__nav{display:flex;align-items:center;gap:4px;flex:1;}
|
||||
.top-bar__nav a{color:rgba(255,255,255,0.65);text-decoration:none;padding:6px 16px;border-radius:var(--radius-sm);font-size:var(--font-sm);transition:all .2s;}
|
||||
.top-bar__nav a:hover{color:#fff;background:rgba(255,255,255,0.08);}
|
||||
.top-bar__nav a.active{color:#fff;background:var(--primary);}
|
||||
.sidebar{position:fixed;top:56px;left:0;bottom:0;width:240px;background:#001529;overflow-y:auto;z-index:90;padding-top:8px;}
|
||||
.sidebar-section__title{color:rgba(255,255,255,0.35);font-size:var(--font-xs);padding:16px 24px 8px;letter-spacing:.5px;}
|
||||
.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;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
.page-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary);}
|
||||
/* 筛选 */
|
||||
.filter-bar{background:#fff;border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
|
||||
.filter-item{display:flex;align-items:center;gap:8px;}
|
||||
.filter-item label{font-size:var(--font-sm);color:var(--text-secondary);white-space:nowrap;}
|
||||
.filter-input{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;background:#fff;min-width:180px;}
|
||||
.filter-input:focus{border-color:var(--primary);}
|
||||
.date-range{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 10px;height:36px;background:#fff;}
|
||||
.date-range input{border:none;outline:none;font-size:var(--font-sm);color:var(--text-primary);height:34px;width:140px;}
|
||||
.date-range .sep{color:var(--text-placeholder);font-size:var(--font-sm);}
|
||||
.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;border:1px solid var(--primary);}.btn-primary:hover{background:#40a9ff;border-color:#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-link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:var(--font-sm);padding:0 4px;}.btn-link:hover{color:#40a9ff;}
|
||||
/* 操作行 */
|
||||
.action-bar{display:flex;gap:8px;align-items:center;margin-bottom:12px;}
|
||||
/* 表格 */
|
||||
.table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);}
|
||||
.table-card__header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border);}
|
||||
.table-card__title{font-size:var(--font-base);font-weight:600;}
|
||||
.table-card__title small{font-size:var(--font-sm);color:var(--text-secondary);font-weight:400;margin-left:8px;}
|
||||
.table-card__content{overflow-x:auto;}
|
||||
table{width:100%;border-collapse:collapse;white-space:nowrap;}
|
||||
thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);}
|
||||
tbody td{padding:14px 16px;font-size:var(--font-sm);color:var(--text-primary);border-bottom:1px solid var(--border);}
|
||||
tbody tr:last-child td{border-bottom:none;}
|
||||
tbody tr:hover{background:#F8FBFF;}
|
||||
.mono{font-family:'SFMono-Regular',Consolas,Menlo,monospace;color:var(--text-primary);}
|
||||
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:var(--font-xs);}
|
||||
.tag-green{background:#F6FFED;color:#52C41A;}
|
||||
.tag-orange{background:#FFF7E6;color:#FAAD14;}
|
||||
.tag-red{background:#FFF1F0;color:#FF4D4F;}
|
||||
.tag-blue{background:#E6F7FF;color:#1890FF;}
|
||||
.tag-purple{background:#F9F0FF;color:#722ED1;}
|
||||
/* 分页 */
|
||||
.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);}
|
||||
.filter-select{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:var(--font-sm);color:var(--text-primary);outline:none;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;cursor:pointer;min-width:90px;}
|
||||
/* 弹窗 */
|
||||
.modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.45);z-index:500;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .15s;}
|
||||
.modal-mask.show{opacity:1;pointer-events:auto;}
|
||||
.modal{background:#fff;border-radius:var(--radius-lg);width:720px;max-height:85vh;overflow-y:auto;box-shadow:0 8px 40px rgba(0,0,0,0.18);}
|
||||
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);}
|
||||
.modal-title{font-size:var(--font-base);font-weight:600;}
|
||||
.modal-close{width:32px;height:32px;border:none;background:none;cursor:pointer;font-size:18px;color:var(--text-secondary);border-radius:var(--radius-sm);}
|
||||
.modal-close:hover{background:#F5F5F5;color:var(--text-primary);}
|
||||
.modal-body{padding:24px;}
|
||||
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);}
|
||||
/* 详情弹窗专属 */
|
||||
.detail-banner{background:linear-gradient(135deg,#F9F0FF 0%,#DEE8FC 100%);border-radius:var(--radius-md);padding:18px 20px;margin-bottom:20px;display:flex;align-items:center;gap:16px;}
|
||||
.detail-banner__icon{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
|
||||
.detail-banner__main{flex:1;}
|
||||
.detail-banner__title{font-size:var(--font-base);font-weight:600;color:var(--purple);line-height:1;}
|
||||
.detail-banner__sub{font-size:var(--font-xs);color:var(--text-secondary);margin-top:6px;}
|
||||
.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;}
|
||||
.detail-item{display:flex;flex-direction:column;gap:4px;}
|
||||
.detail-item label{font-size:var(--font-xs);color:var(--text-placeholder);}
|
||||
.detail-item span{font-size:var(--font-sm);color:var(--text-primary);font-weight:500;word-break:break-all;}
|
||||
.detail-section-title{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);margin:18px 0 10px;display:flex;align-items:center;gap:6px;}
|
||||
.detail-section-title::before{content:'';width:3px;height:14px;background:var(--primary);border-radius:2px;}
|
||||
/* Tab 切换 */
|
||||
.tab-nav{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:16px;}
|
||||
.tab-btn{padding:10px 20px;font-size:var(--font-sm);color:var(--text-secondary);background:none;border:none;cursor:pointer;position:relative;transition:all .2s;}
|
||||
.tab-btn:hover{color:var(--primary);}
|
||||
.tab-btn.active{color:var(--primary);font-weight:600;}
|
||||
.tab-btn.active::after{content:'';position:absolute;left:20px;right:20px;bottom:-2px;height:2px;background:var(--primary);border-radius:1px;}
|
||||
.tab-pane{display:none;}
|
||||
.tab-pane.active{display:block;}
|
||||
/* 详情弹窗内子表格 */
|
||||
.sub-table{width:100%;border-collapse:collapse;white-space:nowrap;}
|
||||
.sub-table th{background:#FAFAFA;padding:8px 12px;text-align:left;font-size:var(--font-xs);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);}
|
||||
.sub-table td{padding:10px 12px;font-size:var(--font-xs);color:var(--text-primary);border-bottom:1px solid var(--border);}
|
||||
.sub-table tbody tr:last-child td{border-bottom:none;}
|
||||
.sub-table tbody tr:hover{background:#F8FBFF;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="top-bar">
|
||||
<div class="top-bar__logo">
|
||||
<svg viewBox="0 0 28 28" fill="none"><rect width="28" height="28" rx="6" fill="#1890FF"/><path d="M7 14h14M14 7v14" stroke="#fff" stroke-width="2.5" stroke-linecap="round"/></svg>
|
||||
健康监测
|
||||
</div>
|
||||
<nav class="top-bar__nav">
|
||||
<a href="../../archive-personal.html">档案</a>
|
||||
<a href="../../crowd-status-employee.html">健康现状</a>
|
||||
<a href="../../health-checkup/survey-category.html">健康排查</a>
|
||||
<a href="../tool-manage.html" class="active">穿戴监测</a>
|
||||
<a href="../../environment/indoor-device-list.html">健康环境</a>
|
||||
<a href="../../exception-dirty.html">异常事件</a>
|
||||
</nav>
|
||||
<div class="top-bar__right">
|
||||
<a class="btn-back" href="../../../../index.html">
|
||||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M10 3L5 8l5 5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
|
||||
返回首页
|
||||
</a>
|
||||
<div class="avatar">管</div>
|
||||
<span>系统管理员 ▾</span>
|
||||
</div>
|
||||
</div>
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-menu__title">穿戴监测</div>
|
||||
<a href="../tool-manage.html" class="sidebar-item">设备管理</a>
|
||||
<a href="../bind-record.html" class="sidebar-item">绑定记录</a>
|
||||
<a href="../user-data.html" class="sidebar-item">用户数据</a>
|
||||
<a href="../exception-event.html" class="sidebar-item">告警记录</a>
|
||||
<a href="../notification.html" class="sidebar-item">通知消息</a>
|
||||
<a href="../dept-stat.html" class="sidebar-item">单位数据统计</a>
|
||||
<a href="../personal-stat.html" class="sidebar-item">个人数据统计</a>
|
||||
<a href="../dept-report.html" class="sidebar-item">单位数据分析报告</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 运维中心</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 终端设置</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="terminal-default-config.html" class="sidebar-item">默认配置</a>
|
||||
<a href="terminal-config-info.html" class="sidebar-item">配置信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日常监测</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="monitor-ecg.html" class="sidebar-item">心电图信息</a>
|
||||
<a href="monitor-spo2.html" class="sidebar-item">血氧信息</a>
|
||||
<a href="monitor-temp.html" class="sidebar-item">体温信息</a>
|
||||
<a href="monitor-stress.html" class="sidebar-item">压力信息</a>
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item active">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="log-network.html" class="sidebar-item">手表网络切换日志</a>
|
||||
<a href="log-version.html" class="sidebar-item">版本更新历史</a>
|
||||
<a href="log-error.html" class="sidebar-item">手表错误日志</a>
|
||||
<a href="log-task.html" class="sidebar-item">任务日志</a>
|
||||
<a href="log-mqtt.html" class="sidebar-item">mqtt消息日志</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
<main class="main">
|
||||
<div class="page-header">
|
||||
<div class="page-title">睡眠信息(watch5)</div>
|
||||
</div>
|
||||
|
||||
<!-- 筛选 -->
|
||||
<div class="filter-bar">
|
||||
<div class="filter-item">
|
||||
<label>设备编码</label>
|
||||
<input class="filter-input" placeholder="请输入设备编码">
|
||||
</div>
|
||||
<div class="filter-item">
|
||||
<label>日期范围</label>
|
||||
<div class="date-range">
|
||||
<input type="date" value="2026-05-26">
|
||||
<span class="sep">至</span>
|
||||
<input type="date" value="2026-06-02">
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-primary">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><circle cx="6" cy="6" r="4.5" stroke="currentColor" stroke-width="1.5"/><path d="M10.5 10.5l2 2" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/></svg>
|
||||
查询
|
||||
</button>
|
||||
<button class="btn btn-default">重置</button>
|
||||
</div>
|
||||
|
||||
<!-- 操作行 -->
|
||||
<div class="action-bar">
|
||||
<button class="btn btn-default">
|
||||
<svg width="14" height="14" viewBox="0 0 14 14" fill="none"><path d="M7 1v8M3.5 5.5L7 9l3.5-3.5M2 12h10" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
|
||||
导出列表数据
|
||||
</button>
|
||||
<button class="btn btn-default">查看导出任务</button>
|
||||
</div>
|
||||
|
||||
<!-- 表格 -->
|
||||
<div class="table-card">
|
||||
<div class="table-card__header">
|
||||
<span class="table-card__title">睡眠记录<small>共 64 条</small></span>
|
||||
</div>
|
||||
<div class="table-card__content">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>设备编码</th>
|
||||
<th>数据日期</th>
|
||||
<th>睡眠开始时间</th>
|
||||
<th>睡眠结束时间</th>
|
||||
<th>入睡时间</th>
|
||||
<th>出睡时间</th>
|
||||
<th>睡眠得分</th>
|
||||
<th>睡眠效率</th>
|
||||
<th>深睡连续性得分</th>
|
||||
<th>打鼾频率</th>
|
||||
<th>创建时间</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr data-code="4PMBB25C01101454" data-date="2026-06-06" data-start="2026-06-06 02:11:00" data-end="2026-06-06 07:04:00" data-fall="2026-06-06 02:17:00" data-exit="2026-06-06 07:04:00" data-score="76" data-eff="96" data-deep="100" data-snore="0" data-created="2026-06-06 07:40:18">
|
||||
<td><span class="mono">4PMBB25C01101454</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 02:11:00</td>
|
||||
<td>2026-06-06 07:04:00</td>
|
||||
<td>2026-06-06 02:17:00</td>
|
||||
<td>2026-06-06 07:04:00</td>
|
||||
<td>76</td>
|
||||
<td>96</td>
|
||||
<td>100</td>
|
||||
<td>0</td>
|
||||
<td>2026-06-06 07:40:18</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB26314100215" data-date="2026-06-06" data-start="2026-06-06 04:34:00" data-end="2026-06-06 07:28:00" data-fall="2026-06-06 04:34:00" data-exit="2026-06-06 07:28:00" data-score="0" data-eff="0" data-deep="255" data-snore="255" data-created="2026-06-06 07:35:45">
|
||||
<td><span class="mono">4PMBB26314100215</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 04:34:00</td>
|
||||
<td>2026-06-06 07:28:00</td>
|
||||
<td>2026-06-06 04:34:00</td>
|
||||
<td>2026-06-06 07:28:00</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>255</td>
|
||||
<td>255</td>
|
||||
<td>2026-06-06 07:35:45</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB25C01100941" data-date="2026-06-06" data-start="2026-06-06 01:38:00" data-end="2026-06-06 06:50:00" data-fall="2026-06-06 01:45:00" data-exit="2026-06-06 06:50:00" data-score="55" data-eff="80" data-deep="63" data-snore="24" data-created="2026-06-06 07:35:08">
|
||||
<td><span class="mono">4PMBB25C01100941</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 01:38:00</td>
|
||||
<td>2026-06-06 06:50:00</td>
|
||||
<td>2026-06-06 01:45:00</td>
|
||||
<td>2026-06-06 06:50:00</td>
|
||||
<td>55</td>
|
||||
<td>80</td>
|
||||
<td>63</td>
|
||||
<td>24</td>
|
||||
<td>2026-06-06 07:35:08</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB25C01100212" data-date="2026-06-06" data-start="2026-06-06 02:16:00" data-end="2026-06-06 07:21:00" data-fall="2026-06-06 02:24:00" data-exit="2026-06-06 07:17:00" data-score="72" data-eff="96" data-deep="63" data-snore="1" data-created="2026-06-06 07:32:02">
|
||||
<td><span class="mono">4PMBB25C01100212</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 02:16:00</td>
|
||||
<td>2026-06-06 07:21:00</td>
|
||||
<td>2026-06-06 02:24:00</td>
|
||||
<td>2026-06-06 07:17:00</td>
|
||||
<td>72</td>
|
||||
<td>96</td>
|
||||
<td>63</td>
|
||||
<td>1</td>
|
||||
<td>2026-06-06 07:32:02</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB26314100657" data-date="2026-06-06" data-start="2026-06-06 00:42:00" data-end="2026-06-06 06:25:00" data-fall="2026-06-06 00:49:00" data-exit="2026-06-06 06:19:00" data-score="75" data-eff="93" data-deep="78" data-snore="3" data-created="2026-06-06 07:27:29">
|
||||
<td><span class="mono">4PMBB26314100657</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 00:42:00</td>
|
||||
<td>2026-06-06 06:25:00</td>
|
||||
<td>2026-06-06 00:49:00</td>
|
||||
<td>2026-06-06 06:19:00</td>
|
||||
<td>75</td>
|
||||
<td>93</td>
|
||||
<td>78</td>
|
||||
<td>3</td>
|
||||
<td>2026-06-06 07:27:29</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB26310100090" data-date="2026-06-06" data-start="2026-06-06 01:06:00" data-end="2026-06-06 06:35:00" data-fall="2026-06-06 01:13:00" data-exit="2026-06-06 06:34:00" data-score="79" data-eff="96" data-deep="74" data-snore="1" data-created="2026-06-06 07:26:58">
|
||||
<td><span class="mono">4PMBB26310100090</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 01:06:00</td>
|
||||
<td>2026-06-06 06:35:00</td>
|
||||
<td>2026-06-06 01:13:00</td>
|
||||
<td>2026-06-06 06:34:00</td>
|
||||
<td>79</td>
|
||||
<td>96</td>
|
||||
<td>74</td>
|
||||
<td>1</td>
|
||||
<td>2026-06-06 07:26:58</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB26314100888" data-date="2026-06-06" data-start="2026-06-06 00:59:00" data-end="2026-06-06 06:50:00" data-fall="2026-06-06 01:05:00" data-exit="2026-06-06 06:50:00" data-score="70" data-eff="81" data-deep="96" data-snore="1" data-created="2026-06-06 07:26:34">
|
||||
<td><span class="mono">4PMBB26314100888</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 00:59:00</td>
|
||||
<td>2026-06-06 06:50:00</td>
|
||||
<td>2026-06-06 01:05:00</td>
|
||||
<td>2026-06-06 06:50:00</td>
|
||||
<td>70</td>
|
||||
<td>81</td>
|
||||
<td>96</td>
|
||||
<td>1</td>
|
||||
<td>2026-06-06 07:26:34</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB25C01100507" data-date="2026-06-06" data-start="2026-06-06 00:06:00" data-end="2026-06-06 03:53:00" data-fall="2026-06-06 00:13:00" data-exit="2026-06-06 03:52:00" data-score="58" data-eff="95" data-deep="65" data-snore="3" data-created="2026-06-06 07:25:40">
|
||||
<td><span class="mono">4PMBB25C01100507</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 00:06:00</td>
|
||||
<td>2026-06-06 03:53:00</td>
|
||||
<td>2026-06-06 00:13:00</td>
|
||||
<td>2026-06-06 03:52:00</td>
|
||||
<td>58</td>
|
||||
<td>95</td>
|
||||
<td>65</td>
|
||||
<td>3</td>
|
||||
<td>2026-06-06 07:25:40</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB26314100501" data-date="2026-06-06" data-start="2026-06-06 00:34:00" data-end="2026-06-06 07:10:00" data-fall="2026-06-06 00:41:00" data-exit="2026-06-06 07:10:00" data-score="84" data-eff="97" data-deep="87" data-snore="1" data-created="2026-06-06 07:25:09">
|
||||
<td><span class="mono">4PMBB26314100501</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 00:34:00</td>
|
||||
<td>2026-06-06 07:10:00</td>
|
||||
<td>2026-06-06 00:41:00</td>
|
||||
<td>2026-06-06 07:10:00</td>
|
||||
<td>84</td>
|
||||
<td>97</td>
|
||||
<td>87</td>
|
||||
<td>1</td>
|
||||
<td>2026-06-06 07:25:09</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="4PMBB26314100316" data-date="2026-06-06" data-start="2026-06-06 05:42:00" data-end="2026-06-06 06:46:00" data-fall="2026-06-06 05:42:00" data-exit="2026-06-06 06:46:00" data-score="0" data-eff="0" data-deep="255" data-snore="255" data-created="2026-06-06 07:24:14">
|
||||
<td><span class="mono">4PMBB26314100316</span></td>
|
||||
<td>2026-06-06</td>
|
||||
<td>2026-06-06 05:42:00</td>
|
||||
<td>2026-06-06 06:46:00</td>
|
||||
<td>2026-06-06 05:42:00</td>
|
||||
<td>2026-06-06 06:46:00</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>255</td>
|
||||
<td>255</td>
|
||||
<td>2026-06-06 07:24:14</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>共 128 条</span>
|
||||
<button class="page-btn">«</button>
|
||||
<button class="page-btn active">1</button>
|
||||
<button class="page-btn">2</button>
|
||||
<button class="page-btn">3</button>
|
||||
<button class="page-btn">…</button>
|
||||
<button class="page-btn">7</button>
|
||||
<button class="page-btn">»</button>
|
||||
<select class="filter-select">
|
||||
<option>10条/页</option>
|
||||
<option>20条/页</option>
|
||||
<option>50条/页</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<!-- 详情弹窗 -->
|
||||
<div class="modal-mask" id="detailModal">
|
||||
<div class="modal">
|
||||
<div class="modal-header">
|
||||
<span class="modal-title">睡眠详情(watch5)</span>
|
||||
<button class="modal-close" onclick="closeModal('detailModal')">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="detail-banner">
|
||||
<div class="detail-banner__icon">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#722ED1" stroke-width="2" stroke-linecap="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg>
|
||||
</div>
|
||||
<div class="detail-banner__main">
|
||||
<div class="detail-banner__title" id="d-banner-title">—</div>
|
||||
<div class="detail-banner__sub" id="d-banner-sub">—</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="detail-section-title">睡眠数据</div>
|
||||
<div class="detail-list">
|
||||
<div class="detail-item"><label>设备编码</label><span class="mono" id="d-code">—</span></div>
|
||||
<div class="detail-item"><label>数据日期</label><span id="d-date">—</span></div>
|
||||
<div class="detail-item"><label>睡眠开始时间</label><span class="mono" id="d-start">—</span></div>
|
||||
<div class="detail-item"><label>睡眠结束时间</label><span class="mono" id="d-end">—</span></div>
|
||||
<div class="detail-item"><label>入睡时间</label><span class="mono" id="d-fall">—</span></div>
|
||||
<div class="detail-item"><label>出睡时间</label><span class="mono" id="d-exit">—</span></div>
|
||||
<div class="detail-item"><label>睡眠得分</label><span id="d-score">—</span></div>
|
||||
<div class="detail-item"><label>睡眠效率</label><span id="d-eff">—</span></div>
|
||||
<div class="detail-item"><label>深睡连续性得分</label><span id="d-deep">—</span></div>
|
||||
<div class="detail-item"><label>打鼾频率</label><span id="d-snore">—</span></div>
|
||||
<div class="detail-item"><label>创建时间</label><span id="d-created">—</span></div>
|
||||
</div>
|
||||
|
||||
<div class="detail-section-title">数据明细</div>
|
||||
<table class="sub-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:40px;">#</th>
|
||||
<th>睡眠开始时间</th>
|
||||
<th style="width:120px;">睡眠状态时长</th>
|
||||
<th>睡眠状态</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="phaseTbody"></tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" onclick="closeModal('detailModal')">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
// 模拟睡眠阶段明细数据
|
||||
var PHASE_DATA = [
|
||||
{ startTime:'1780683060000', duration:6, status:'进入清醒(OTHER_SLEEP_STATUS)', tag:'tag-orange' },
|
||||
{ startTime:'1780683420000', duration:41, status:'进入清醒(AWAKE_STATUS)', tag:'tag-orange' },
|
||||
{ startTime:'1780685880000', duration:4, status:'进入普通睡眠(ASLEEP_STATUS)', tag:'tag-blue' },
|
||||
{ startTime:'1780686120000', duration:4, status:'进入清醒(OTHER_SLEEP_STATUS)', tag:'tag-orange' },
|
||||
{ startTime:'1780686360000', duration:6, status:'进入清醒(AWAKE_STATUS)', tag:'tag-orange' },
|
||||
{ startTime:'1780686720000', duration:7, status:'进入普通睡眠(ASLEEP_STATUS)', tag:'tag-blue' },
|
||||
{ startTime:'1780687140000', duration:77, status:'进入深睡(DEEP_SLEEP_STATUS)', tag:'tag-purple' },
|
||||
];
|
||||
|
||||
function toggleSubgroup(h){h.parentElement.classList.toggle('open');}
|
||||
(function(){var a=document.querySelector('.sidebar-item.active');if(!a)return;var el=a.parentElement;while(el){if(el.classList&&el.classList.contains('sidebar-subgroup'))el.classList.add('open');el=el.parentElement;}})();
|
||||
|
||||
function closeModal(id){document.getElementById(id).classList.remove('show');}
|
||||
document.querySelectorAll('.modal-mask').forEach(function(m){m.addEventListener('click',function(e){if(e.target===m)m.classList.remove('show');});});
|
||||
|
||||
function openDetail(btn){
|
||||
var tr = btn.closest('tr');
|
||||
var d = tr.dataset;
|
||||
|
||||
document.getElementById('d-banner-title').textContent = '设备编码:' + d.code;
|
||||
document.getElementById('d-banner-sub').textContent = '日期:' + d.date;
|
||||
document.getElementById('d-code').textContent = d.code;
|
||||
document.getElementById('d-date').textContent = d.date;
|
||||
document.getElementById('d-start').textContent = d.start;
|
||||
document.getElementById('d-end').textContent = d.end;
|
||||
document.getElementById('d-fall').textContent = d.fall;
|
||||
document.getElementById('d-exit').textContent = d.exit;
|
||||
document.getElementById('d-score').textContent = d.score;
|
||||
document.getElementById('d-eff').textContent = d.eff;
|
||||
document.getElementById('d-deep').textContent = d.deep;
|
||||
document.getElementById('d-snore').textContent = d.snore;
|
||||
document.getElementById('d-created').textContent = d.created;
|
||||
|
||||
// 数据详情
|
||||
var phaseTbody = document.getElementById('phaseTbody');
|
||||
phaseTbody.innerHTML = '';
|
||||
PHASE_DATA.forEach(function(row, i){
|
||||
phaseTbody.innerHTML +=
|
||||
'<tr>' +
|
||||
'<td>' + (i + 1) + '</td>' +
|
||||
'<td class="mono">' + row.startTime + '</td>' +
|
||||
'<td>' + row.duration + '</td>' +
|
||||
'<td><span class="tag ' + row.tag + '">' + row.status + '</span></td>' +
|
||||
'</tr>';
|
||||
});
|
||||
|
||||
document.getElementById('detailModal').classList.add('show');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -175,10 +175,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item active">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
@@ -396,9 +412,7 @@
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn btn-default" onclick="closeModal('detailModal')">关闭</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -437,21 +451,21 @@ function openDetail(btn){
|
||||
var d = tr.dataset;
|
||||
|
||||
// 顶部卡片
|
||||
document.getElementById('d-banner-title').textContent = d.code + ' · ' + d.date;
|
||||
document.getElementById('d-banner-sub').textContent = '创建时间:' + d.created;
|
||||
document.getElementById('d-banner-title').textContent = '设备编码:' + d.code;
|
||||
document.getElementById('d-banner-sub').textContent = '日期:' + d.date;
|
||||
|
||||
if (d.has === 'no') {
|
||||
// 无数据:隐藏表格,显示提示
|
||||
document.getElementById('resultTbody').innerHTML = '';
|
||||
document.getElementById('noDataTip').style.display = 'block';
|
||||
document.getElementById('minuteTbody').innerHTML = '';
|
||||
document.getElementById('detailModal').classList.add('show');
|
||||
return;
|
||||
}
|
||||
|
||||
// Tab 1: 睡眠结果
|
||||
document.getElementById('noDataTip').style.display = 'none';
|
||||
var resultTbody = document.getElementById('resultTbody');
|
||||
var valid = '有效';
|
||||
var validTag = '<span class="tag tag-green">有效</span>';
|
||||
resultTbody.innerHTML =
|
||||
'<tr>' +
|
||||
@@ -479,6 +493,9 @@ function openDetail(btn){
|
||||
'<td><span class="tag ' + tagCls + '">' + row.status + '</span></td>' +
|
||||
'</tr>';
|
||||
});
|
||||
|
||||
// 显示弹窗
|
||||
document.getElementById('detailModal').classList.add('show');
|
||||
}
|
||||
|
||||
// 根据上床时间和入睡潜伏期计算入睡时间点
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -164,11 +164,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -150,11 +150,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -163,11 +163,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
@@ -228,6 +243,7 @@
|
||||
<tr>
|
||||
<th>设备编码</th>
|
||||
<th>数据值(℃)</th>
|
||||
<th>体表温度(℃)</th>
|
||||
<th>监测时间</th>
|
||||
<th>创建时间</th>
|
||||
<th>操作</th>
|
||||
@@ -235,72 +251,82 @@
|
||||
</thead>
|
||||
<tbody id="tbody">
|
||||
<!-- 绑定员工信息通过 data-* 属性保存 -->
|
||||
<tr data-code="WD-2024-001" data-value="36.5" data-monitor="2026-06-02 08:01:22" data-created="2026-06-02 08:01:25" data-emp="张伟" data-empcode="CQ001234" data-unit="采油一厂" data-dept="作业一区" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-001" data-value="36.5" data-surface="34.8" data-monitor="2026-06-02 08:01:22" data-created="2026-06-02 08:01:25" data-emp="张伟" data-empcode="CQ001234" data-unit="采油一厂" data-dept="作业一区" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-001</span></td>
|
||||
<td>36.5</td>
|
||||
<td>34.8</td>
|
||||
<td>2026-06-02 08:01:22</td>
|
||||
<td>2026-06-02 08:01:25</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-001" data-value="36.7" data-monitor="2026-06-02 09:01:18" data-created="2026-06-02 09:01:21" data-emp="张伟" data-empcode="CQ001234" data-unit="采油一厂" data-dept="作业一区" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-001" data-value="36.7" data-surface="35.1" data-monitor="2026-06-02 09:01:18" data-created="2026-06-02 09:01:21" data-emp="张伟" data-empcode="CQ001234" data-unit="采油一厂" data-dept="作业一区" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-001</span></td>
|
||||
<td>36.7</td>
|
||||
<td>35.1</td>
|
||||
<td>2026-06-02 09:01:18</td>
|
||||
<td>2026-06-02 09:01:21</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-002" data-value="37.8" data-monitor="2026-06-02 08:05:44" data-created="2026-06-02 08:05:47" data-emp="李建国" data-empcode="CQ001235" data-unit="采油一厂" data-dept="作业二区" data-min="36.0" data-max="37.3" data-alarm="1">
|
||||
<tr data-code="WD-2024-002" data-value="37.8" data-surface="36.0" data-monitor="2026-06-02 08:05:44" data-created="2026-06-02 08:05:47" data-emp="李建国" data-empcode="CQ001235" data-unit="采油一厂" data-dept="作业二区" data-min="36.0" data-max="37.3" data-alarm="1">
|
||||
<td><span class="mono">WD-2024-002</span></td>
|
||||
<td>37.8</td>
|
||||
<td>36.0</td>
|
||||
<td>2026-06-02 08:05:44</td>
|
||||
<td>2026-06-02 08:05:47</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-002" data-value="36.9" data-monitor="2026-06-02 09:05:40" data-created="2026-06-02 09:05:43" data-emp="李建国" data-empcode="CQ001235" data-unit="采油一厂" data-dept="作业二区" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-002" data-value="36.9" data-surface="35.2" data-monitor="2026-06-02 09:05:40" data-created="2026-06-02 09:05:43" data-emp="李建国" data-empcode="CQ001235" data-unit="采油一厂" data-dept="作业二区" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-002</span></td>
|
||||
<td>36.9</td>
|
||||
<td>35.2</td>
|
||||
<td>2026-06-02 09:05:40</td>
|
||||
<td>2026-06-02 09:05:43</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-031" data-value="36.4" data-monitor="2026-06-02 08:12:03" data-created="2026-06-02 08:12:06" data-emp="王磊" data-empcode="CQ002101" data-unit="采气一厂" data-dept="集气站" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-031" data-value="36.4" data-surface="34.6" data-monitor="2026-06-02 08:12:03" data-created="2026-06-02 08:12:06" data-emp="王磊" data-empcode="CQ002101" data-unit="采气一厂" data-dept="集气站" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-031</span></td>
|
||||
<td>36.4</td>
|
||||
<td>34.6</td>
|
||||
<td>2026-06-02 08:12:03</td>
|
||||
<td>2026-06-02 08:12:06</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-031" data-value="36.6" data-monitor="2026-06-02 09:12:01" data-created="2026-06-02 09:12:04" data-emp="王磊" data-empcode="CQ002101" data-unit="采气一厂" data-dept="集气站" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-031" data-value="36.6" data-surface="34.9" data-monitor="2026-06-02 09:12:01" data-created="2026-06-02 09:12:04" data-emp="王磊" data-empcode="CQ002101" data-unit="采气一厂" data-dept="集气站" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-031</span></td>
|
||||
<td>36.6</td>
|
||||
<td>34.9</td>
|
||||
<td>2026-06-02 09:12:01</td>
|
||||
<td>2026-06-02 09:12:04</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-048" data-value="35.8" data-monitor="2026-06-02 07:58:11" data-created="2026-06-02 07:58:14" data-emp="陈晓明" data-empcode="CQ001500" data-unit="采油二厂" data-dept="注水站" data-min="36.0" data-max="37.3" data-alarm="1">
|
||||
<tr data-code="WD-2024-048" data-value="35.8" data-surface="33.8" data-monitor="2026-06-02 07:58:11" data-created="2026-06-02 07:58:14" data-emp="陈晓明" data-empcode="CQ001500" data-unit="采油二厂" data-dept="注水站" data-min="36.0" data-max="37.3" data-alarm="1">
|
||||
<td><span class="mono">WD-2024-048</span></td>
|
||||
<td>35.8</td>
|
||||
<td>33.8</td>
|
||||
<td>2026-06-02 07:58:11</td>
|
||||
<td>2026-06-02 07:58:14</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-048" data-value="36.2" data-monitor="2026-06-02 08:58:09" data-created="2026-06-02 08:58:12" data-emp="陈晓明" data-empcode="CQ001500" data-unit="采油二厂" data-dept="注水站" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-048" data-value="36.2" data-surface="34.4" data-monitor="2026-06-02 08:58:09" data-created="2026-06-02 08:58:12" data-emp="陈晓明" data-empcode="CQ001500" data-unit="采油二厂" data-dept="注水站" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-048</span></td>
|
||||
<td>36.2</td>
|
||||
<td>34.4</td>
|
||||
<td>2026-06-02 08:58:09</td>
|
||||
<td>2026-06-02 08:58:12</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-060" data-value="36.8" data-monitor="2026-06-02 08:20:55" data-created="2026-06-02 08:20:58" data-emp="赵强" data-empcode="CQ003010" data-unit="采气二厂" data-dept="作业三区" data-min="36.0" data-max="37.3">
|
||||
<tr data-code="WD-2024-060" data-value="36.8" data-surface="35.0" data-monitor="2026-06-02 08:20:55" data-created="2026-06-02 08:20:58" data-emp="赵强" data-empcode="CQ003010" data-unit="采气二厂" data-dept="作业三区" data-min="36.0" data-max="37.3">
|
||||
<td><span class="mono">WD-2024-060</span></td>
|
||||
<td>36.8</td>
|
||||
<td>35.0</td>
|
||||
<td>2026-06-02 08:20:55</td>
|
||||
<td>2026-06-02 08:20:58</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
</tr>
|
||||
<tr data-code="WD-2024-060" data-value="38.1" data-monitor="2026-06-02 09:20:52" data-created="2026-06-02 09:20:55" data-emp="赵强" data-empcode="CQ003010" data-unit="采气二厂" data-dept="作业三区" data-min="36.0" data-max="37.3" data-alarm="1">
|
||||
<tr data-code="WD-2024-060" data-value="38.1" data-surface="36.3" data-monitor="2026-06-02 09:20:52" data-created="2026-06-02 09:20:55" data-emp="赵强" data-empcode="CQ003010" data-unit="采气二厂" data-dept="作业三区" data-min="36.0" data-max="37.3" data-alarm="1">
|
||||
<td><span class="mono">WD-2024-060</span></td>
|
||||
<td>38.1</td>
|
||||
<td>36.3</td>
|
||||
<td>2026-06-02 09:20:52</td>
|
||||
<td>2026-06-02 09:20:55</td>
|
||||
<td><button class="btn-link" onclick="openDetail(this)">详情</button></td>
|
||||
@@ -338,6 +364,7 @@
|
||||
<div class="detail-list">
|
||||
<div class="detail-item"><label>设备编码</label><span class="mono" id="d-code">WD-2024-001</span></div>
|
||||
<div class="detail-item"><label>数据值</label><span id="d-value-display">36.5 ℃</span></div>
|
||||
<div class="detail-item"><label>体表温度</label><span id="d-surface-display">34.8 ℃</span></div>
|
||||
<div class="detail-item"><label>监测时间</label><span id="d-monitor">2026-06-02 08:01:22</span></div>
|
||||
<div class="detail-item"><label>创建时间</label><span id="d-created">2026-06-02 08:01:25</span></div>
|
||||
</div>
|
||||
@@ -376,6 +403,7 @@ function openDetail(btn){
|
||||
document.getElementById('d-monitor').textContent = d.monitor;
|
||||
document.getElementById('d-created').textContent = d.created;
|
||||
document.getElementById('d-value-display').textContent = d.value + ' ℃';
|
||||
document.getElementById('d-surface-display').textContent = d.surface + ' ℃';
|
||||
|
||||
document.getElementById('detailModal').classList.add('show');
|
||||
}
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* 页头 */
|
||||
.page-header{margin-bottom:20px;}
|
||||
@@ -156,11 +156,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item active">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -38,9 +38,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
.filter-bar{background:#fff;border-radius:var(--radius-md);padding:20px 24px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
|
||||
.filter-item{display:flex;align-items:center;gap:8px;}
|
||||
@@ -136,11 +136,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 日志管理</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
|
||||
@@ -40,9 +40,9 @@
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__header .arrow{transform:rotate(90deg);}
|
||||
.sidebar-subgroup__body{display:none;}
|
||||
.sidebar-subgroup.open>.sidebar-subgroup__body{display:block;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-item{padding-left:36px;font-size:var(--font-sm);}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__header{padding-left:36px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:12px;}
|
||||
.sidebar-subgroup__body>.sidebar-subgroup>.sidebar-subgroup__body>.sidebar-item{padding-left:52px;font-size:var(--font-sm);}
|
||||
/* ── Main ── */
|
||||
.main{margin-left:240px;margin-top:56px;padding:24px;min-height:calc(100vh - 56px);}
|
||||
/* ── Page header ── */
|
||||
@@ -182,11 +182,26 @@
|
||||
<a href="monitor-exercise.html" class="sidebar-item">锻炼信息</a>
|
||||
<a href="monitor-heartrate.html" class="sidebar-item">心率信息</a>
|
||||
<a href="monitor-sleep.html" class="sidebar-item">睡眠信息</a>
|
||||
<a href="monitor-sleep-watch5.html" class="sidebar-item">睡眠信息(watch5)</a>
|
||||
<a href="sdc-overview.html" class="sidebar-item">SDC信息</a>
|
||||
<a href="monitor-activity.html" class="sidebar-item">活动信息</a>
|
||||
</div>
|
||||
</div>
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-data.html" class="sidebar-item">事件监听</a>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)"><svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg> 事件监听(watch5)</div>
|
||||
<div class="sidebar-subgroup__body">
|
||||
<a href="alarm-heartrate.html" class="sidebar-item">心率异常</a>
|
||||
<a href="alarm-spo2.html" class="sidebar-item">血氧异常</a>
|
||||
<a href="alarm-temp.html" class="sidebar-item">体温异常</a>
|
||||
<a href="alarm-stress.html" class="sidebar-item">压力异常</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-subgroup">
|
||||
<div class="sidebar-subgroup__header" onclick="toggleSubgroup(this)">
|
||||
<svg class="arrow" viewBox="0 0 12 12"><path d="M4 2l4 4-4 4" fill="none" stroke-width="1.5" stroke-linecap="round"/></svg>
|
||||
|
||||
Reference in New Issue
Block a user