fix: 穿戴监测 - 告警记录页字段优化 & 事件监听菜单展开箭头修复
- exception-event.html: 工号→员工编号,新增员工编号筛选,手机号脱敏去除 - 8个顶层页面: 修复运维中心下'事件监听'菜单无展开箭头,改为sidebar-subgroup结构 - 更新CHANGELOG Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
ebc6a8204d
commit
239fd01229
@@ -162,6 +162,14 @@
|
||||
.panel__header-tab:hover{color:var(--text-main);}
|
||||
.panel__header-tab.active{background:var(--primary);color:#fff;}
|
||||
.panel__header-link{font-size:10px;color:var(--primary);cursor:pointer;margin-left:auto;flex-shrink:0;transition:all .2s;}
|
||||
.panel__header-select{height:26px;padding:0 24px 0 10px;margin-left:auto;font-size:11px;
|
||||
background:rgba(10,20,44,0.8);border:1px solid var(--panel-border);border-radius:13px;
|
||||
color:var(--text-sub);outline:none;cursor:pointer;appearance:none;
|
||||
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%234A6B8A'/%3E%3C/svg%3E");
|
||||
background-repeat:no-repeat;background-position:right 8px center;transition:all .2s;}
|
||||
.panel__header-select:hover{border-color:rgba(24,144,255,0.4);color:var(--text-main);}
|
||||
.panel__header-select:focus{border-color:var(--primary);}
|
||||
.panel__header-select option{background:#0f2847;color:var(--text-main);}
|
||||
.panel__header-link:hover{color:#40a9ff;text-decoration:underline;}
|
||||
.panel__body{flex:1;padding:12px;overflow-y:auto;}
|
||||
.panel__body::-webkit-scrollbar{width:4px;}
|
||||
@@ -558,6 +566,49 @@
|
||||
.marker-popup__label{font-size:10px;color:var(--text-dim);margin-bottom:2px;letter-spacing:0.5px;}
|
||||
.marker-popup__addr{font-size:11px;color:var(--text-sub);line-height:1.5;}
|
||||
|
||||
/* ========== 地图右下角:接听状态控制面板 ========== */
|
||||
.map-ctrl{position:absolute;bottom:12px;right:12px;z-index:12;
|
||||
background:rgba(10,22,48,0.88);border:1px solid var(--panel-border);border-radius:8px;
|
||||
padding:12px 16px;display:flex;flex-direction:column;gap:12px;
|
||||
backdrop-filter:blur(6px);min-width:150px;}
|
||||
.map-ctrl::before{content:'';position:absolute;top:0;left:0;width:10px;height:10px;
|
||||
border-top:1.5px solid rgba(24,144,255,0.35);border-left:1.5px solid rgba(24,144,255,0.35);border-radius:8px 0 0 0;pointer-events:none;}
|
||||
.map-ctrl::after{content:'';position:absolute;bottom:0;right:0;width:10px;height:10px;
|
||||
border-bottom:1.5px solid rgba(24,144,255,0.35);border-right:1.5px solid rgba(24,144,255,0.35);border-radius:0 0 8px 0;pointer-events:none;}
|
||||
.map-ctrl__row{display:flex;align-items:center;gap:10px;}
|
||||
.map-ctrl__label{font-size:12px;color:var(--text-sub);white-space:nowrap;}
|
||||
/* Switch 开关 */
|
||||
.map-ctrl__switch{position:relative;width:40px;height:22px;flex-shrink:0;cursor:pointer;}
|
||||
.map-ctrl__switch input{display:none;}
|
||||
.map-ctrl__switch-track{position:absolute;inset:0;border-radius:11px;background:rgba(74,107,138,0.4);
|
||||
border:1px solid rgba(74,107,138,0.5);transition:all .25s;}
|
||||
.map-ctrl__switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
|
||||
background:var(--text-sub);transition:all .25s;box-shadow:0 1px 3px rgba(0,0,0,0.3);}
|
||||
.map-ctrl__switch input:checked + .map-ctrl__switch-track{background:rgba(82,196,26,0.25);border-color:rgba(82,196,26,0.5);}
|
||||
.map-ctrl__switch input:checked ~ .map-ctrl__switch-thumb{left:20px;background:var(--success);
|
||||
box-shadow:0 0 8px rgba(82,196,26,0.5);}
|
||||
/* 视频通话按钮 */
|
||||
.map-ctrl__btn{display:flex;align-items:center;gap:6px;height:32px;padding:0 14px;
|
||||
border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;white-space:nowrap;
|
||||
background:rgba(24,144,255,0.12);color:var(--primary);border:1px solid rgba(24,144,255,0.3);}
|
||||
.map-ctrl__btn:hover{background:rgba(24,144,255,0.22);border-color:rgba(24,144,255,0.5);
|
||||
box-shadow:0 0 12px rgba(24,144,255,0.2);}
|
||||
.map-ctrl__btn svg{width:16px;height:16px;flex-shrink:0;}
|
||||
|
||||
/* ========== 地图右下角:图层切换 ========== */
|
||||
.map-layer{position:absolute;bottom:12px;right:178px;z-index:12;
|
||||
background:rgba(10,22,48,0.88);border:1px solid var(--panel-border);border-radius:8px;
|
||||
padding:8px 10px;display:flex;flex-direction:column;gap:2px;
|
||||
backdrop-filter:blur(6px);}
|
||||
.map-layer::before{content:'';position:absolute;top:0;left:0;width:10px;height:10px;
|
||||
border-top:1.5px solid rgba(24,144,255,0.35);border-left:1.5px solid rgba(24,144,255,0.35);border-radius:8px 0 0 0;pointer-events:none;}
|
||||
.map-layer::after{content:'';position:absolute;bottom:0;right:0;width:10px;height:10px;
|
||||
border-bottom:1.5px solid rgba(24,144,255,0.35);border-right:1.5px solid rgba(24,144,255,0.35);border-radius:0 0 8px 0;pointer-events:none;}
|
||||
.map-layer__item{font-size:11px;color:var(--text-dim);padding:5px 10px;border-radius:4px;
|
||||
cursor:pointer;transition:all .2s;white-space:nowrap;text-align:center;}
|
||||
.map-layer__item:hover{color:var(--text-main);background:rgba(24,144,255,0.08);}
|
||||
.map-layer__item.active{color:var(--primary);background:rgba(24,144,255,0.15);}
|
||||
|
||||
/* ========== 响应式/小屏幕 ========== */
|
||||
@media(max-width:1440px){.side{width:260px;}.main{padding:0 8px 8px;gap:8px;}}
|
||||
</style>
|
||||
@@ -598,12 +649,13 @@
|
||||
<div class="panel__header">
|
||||
<div class="panel__header-diamond"></div>
|
||||
<span class="panel__header-title">穿戴告警分布</span>
|
||||
<!-- [交互] 时间段切换:近一周/近一月/近一年 -->
|
||||
<div class="panel__header-tabs">
|
||||
<span class="panel__header-tab active" onclick="switchPeriod(this,'week')">近一周</span>
|
||||
<span class="panel__header-tab" onclick="switchPeriod(this,'month')">近一月</span>
|
||||
<span class="panel__header-tab" onclick="switchPeriod(this,'year')">近一年</span>
|
||||
</div>
|
||||
<!-- [交互] 时间段切换:今日/近一周/近一月/近一年 -->
|
||||
<select class="panel__header-select" onchange="switchPeriod(this.value)">
|
||||
<option value="today" selected>今日</option>
|
||||
<option value="week">近一周</option>
|
||||
<option value="month">近一月</option>
|
||||
<option value="year">近一年</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="panel__body">
|
||||
<div class="alarm-bars">
|
||||
@@ -761,7 +813,7 @@
|
||||
<div class="panel__header-diamond"></div>
|
||||
<span class="panel__header-title">心脑血管预警(AI)</span>
|
||||
<!-- [交互] 点击查看更多,打开心脑血管预警记录弹窗 -->
|
||||
<span class="panel__header-link" onclick="openCvRecordModal();event.stopPropagation();">查看更多</span>
|
||||
<span class="panel__header-link" onclick="openCvRecordModal();event.stopPropagation();">历史记录</span>
|
||||
</div>
|
||||
<div class="panel__body" style="padding:8px 12px;">
|
||||
<!-- [内容] AI预警摘要 -->
|
||||
@@ -1019,12 +1071,12 @@
|
||||
|
||||
<!-- 地图图例 -->
|
||||
<div class="map-legend">
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#1890FF;"></div>油田医院</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#722ED1;"></div>合作医院</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#1890FF;border:1.5px dashed #1890FF;background:transparent;"></div>地方医院</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#13C2C2;"></div>医疗点</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#FAAD14;"></div>救护车</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#FF4D4F;"></div>AED</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#1890FF;"></div>油田医院(1)</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#722ED1;"></div>合作医院(1)</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#1890FF;border:1.5px dashed #1890FF;background:transparent;"></div>地方医院(2)</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#13C2C2;"></div>医疗点(3)</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#FAAD14;"></div>救护车(2)</div>
|
||||
<div class="map-legend__item"><div class="map-legend__dot" style="background:#FF4D4F;"></div>AED(2)</div>
|
||||
</div>
|
||||
|
||||
<!-- [急救路线] 员工当前位置标记 -->
|
||||
@@ -1161,6 +1213,30 @@
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 地图右下角:图层切换 -->
|
||||
<div class="map-layer">
|
||||
<span class="map-layer__item active" onclick="switchMapLayer(this,'default')">默认地图</span>
|
||||
<span class="map-layer__item" onclick="switchMapLayer(this,'satellite')">卫星地图</span>
|
||||
<span class="map-layer__item" onclick="switchMapLayer(this,'standard')">标准地图</span>
|
||||
</div>
|
||||
|
||||
<!-- 地图右下角:接听状态控制 -->
|
||||
<div class="map-ctrl">
|
||||
<div class="map-ctrl__row">
|
||||
<span class="map-ctrl__label">++++++++++++++++++++++++++++++++++++++++++++</span>
|
||||
<label class="map-ctrl__switch" title="切换接听状态">
|
||||
<input type="checkbox" id="acceptSwitch" checked onchange="onAcceptSwitch(this.checked)">
|
||||
<div class="map-ctrl__switch-track"></div>
|
||||
<div class="map-ctrl__switch-thumb"></div>
|
||||
</label>
|
||||
</div>
|
||||
<!-- [交互] 点击发起视频通话 -->
|
||||
<button class="map-ctrl__btn" onclick="onVideoCall();event.stopPropagation();" title="视频通话">
|
||||
<svg viewBox="0 0 16 16" fill="none"><path d="M1 4.5A1.5 1.5 0 012.5 3h7A1.5 1.5 0 0111 4.5v2.8l3.2-2.4a.5.5 0 01.8.4v5.4a.5.5 0 01-.8.4L11 8.7v2.8a1.5 1.5 0 01-1.5 1.5h-7A1.5 1.5 0 011 11.5v-7z" fill="currentColor"/></svg>
|
||||
视频通话
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1171,12 +1247,13 @@
|
||||
<div class="panel__header">
|
||||
<div class="panel__header-diamond"></div>
|
||||
<span class="panel__header-title">应急服务数据</span>
|
||||
<!-- [交互] 时间段切换:近一周/近一月/近一年 -->
|
||||
<div class="panel__header-tabs">
|
||||
<span class="panel__header-tab active" onclick="switchPeriod(this,'week')">近一周</span>
|
||||
<span class="panel__header-tab" onclick="switchPeriod(this,'month')">近一月</span>
|
||||
<span class="panel__header-tab" onclick="switchPeriod(this,'year')">近一年</span>
|
||||
</div>
|
||||
<!-- [交互] 时间段切换:今日/近一周/近一月/近一年 -->
|
||||
<select class="panel__header-select" onchange="switchPeriod(this.value)">
|
||||
<option value="today" selected>今日</option>
|
||||
<option value="week">近一周</option>
|
||||
<option value="month">近一月</option>
|
||||
<option value="year">近一年</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="panel__body">
|
||||
<div class="stat-grid">
|
||||
@@ -1206,7 +1283,7 @@
|
||||
<div class="panel__header-diamond"></div>
|
||||
<span class="panel__header-title">应急求助事件</span>
|
||||
<!-- [交互] 点击查看更多,打开应急求助记录弹窗 -->
|
||||
<span class="panel__header-link" onclick="openHelpRecordModal();event.stopPropagation();">查看更多</span>
|
||||
<span class="panel__header-link" onclick="openHelpRecordModal();event.stopPropagation();">历史记录</span>
|
||||
</div>
|
||||
<div class="panel__body" style="overflow:hidden;padding:0;">
|
||||
<div class="alarm-list">
|
||||
@@ -1322,11 +1399,12 @@
|
||||
<div class="panel__header">
|
||||
<div class="panel__header-diamond"></div>
|
||||
<span class="panel__header-title">应急重点人员</span>
|
||||
<div class="panel__header-tabs">
|
||||
<span class="panel__header-tab active" onclick="switchPeriod(this,'week')">近一周</span>
|
||||
<span class="panel__header-tab" onclick="switchPeriod(this,'month')">近一月</span>
|
||||
<span class="panel__header-tab" onclick="switchPeriod(this,'year')">近一年</span>
|
||||
</div>
|
||||
<select class="panel__header-select" onchange="switchPeriod(this.value)">
|
||||
<option value="today" selected>今日</option>
|
||||
<option value="week">近一周</option>
|
||||
<option value="month">近一月</option>
|
||||
<option value="year">近一年</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="panel__body">
|
||||
<div class="help-person-list">
|
||||
@@ -2400,11 +2478,8 @@ document.getElementById('helpTrack').addEventListener('click',function(e){
|
||||
});
|
||||
|
||||
/* ========== 应急服务数据 时间段切换 ========== */
|
||||
function switchPeriod(el,period){
|
||||
var tabs=el.parentElement.querySelectorAll('.panel__header-tab');
|
||||
tabs.forEach(function(t){t.classList.remove('active');});
|
||||
el.classList.add('active');
|
||||
/* [交互] 根据 period('week'/'month'/'year') 异步刷新下方4项指标数据 */
|
||||
function switchPeriod(period){
|
||||
/* [交互] 根据 period('today'/'week'/'month'/'year') 异步刷新下方6项指标数据 */
|
||||
}
|
||||
|
||||
/* ========== Tab切换 - 地图资源筛选 ========== */
|
||||
@@ -2991,6 +3066,23 @@ function resetHelpRecordFilter(){
|
||||
renderHelpRecordTable();
|
||||
}
|
||||
|
||||
/* ========== 地图右下角控制面板交互 ========== */
|
||||
function onAcceptSwitch(checked){
|
||||
/* [交互] 切换接听状态:checked=true 表示接收中,checked=false 表示暂停接收,文案和颜色不变 */
|
||||
}
|
||||
|
||||
function switchMapLayer(el, layer){
|
||||
/* [交互] 切换地图图层:default/satellite/standard */
|
||||
var items = el.parentElement.querySelectorAll('.map-layer__item');
|
||||
items.forEach(function(t){t.classList.remove('active');});
|
||||
el.classList.add('active');
|
||||
}
|
||||
|
||||
function onVideoCall(){
|
||||
/* [交互] 点击视频通话按钮,弹出确认或直接发起视频通话 */
|
||||
alert('正在发起视频通话…');
|
||||
}
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user