hb_zhgd_screen/pages/newDataAnalysis/exception-detail.html

232 lines
7.9 KiB
HTML
Raw Normal View History

2025-10-13 09:33:54 +08:00
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>能耗异常详细分析</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui@2.8.18/dist/css/layui.css">
<script src="https://cdn.jsdelivr.net/npm/layui@2.8.18/dist/layui.js"></script>
<style>
body {
background-color: transparent;
color: #FFFFFF;
padding: 30px;
font-family: "Microsoft YaHei", sans-serif;
font-size: 16px;
}
.card {
border-radius: 12px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
max-width: 600px;
margin: 0 auto;
}
.card-title {
font-size: 24px;
font-weight: bold;
margin-bottom: 20px;
border-left: 6px solid #16baaa;
padding-left: 12px;
}
.info-item {
display: flex;
margin-bottom: 16px;
}
.info-label {
width: 100px;
font-weight: bold;
color: #cccccc;
}
.info-value {
flex: 1;
color: #ffffff;
}
</style>
</head>
<body>
<div class="card">
<div class="info-item">
<div class="info-label">设备名称</div>
<div class="info-value" id="device-name">加载中...</div>
</div>
<div class="info-item">
<div class="info-label">异常日期</div>
<div class="info-value" id="abnormal-date">加载中...</div>
</div>
<div class="info-item">
<div class="info-label">异常描述</div>
<div class="info-value" id="anomalyDesc">加载中...</div>
</div>
<div class="info-item">
<div class="info-label">异常时段</div>
<div class="info-value" id="time-range">13:00 - 14:30</div>
</div>
<div class="info-item">
<div class="info-label">建议措施</div>
<div class="info-value" id="advice">加载中...</div>
</div>
</div>
<script>
const device_anomaly_dict = {
'塔吊': {
'info': [
'使用频率略高,建议优化排班',
'短时间内作业密集,能耗轻微升高'
],
'warning': [
'高频率起吊任务持续 2 小时以上,能耗偏高',
'塔吊运转间隔过短,存在低效能耗'
],
'danger': [
'连续运行超 6 小时,疑似空转或控制异常',
'起重电机功率突增,可能存在电控系统故障'
]
},
'照明系统': {
'info': [
'白天开启部分照明区域',
'光照充足时未自动关闭灯具'
],
'warning': [
'夜间全部区域照明常开,未启用感应控制',
'楼道、空置区域照明长时间亮灯'
],
'danger': [
'多区域电流突升,疑似电路故障',
'照明系统异常重启,功率波动剧烈'
]
},
'办公区': {
'info': [
'空调温度设置偏低,能耗轻微升高',
'部分办公设备下班后未关闭'
],
'warning': [
'下班后空调/电脑/灯具未关闭,持续耗电',
'节假日期间未检测到办公人员但设备照常运行'
],
'danger': [
'空调系统异常自启动,持续运行超 12 小时',
'存在非办公类大功率设备接入,能耗异常'
]
},
'其他': {
'info': [
'监控与通信设备正常运行,功耗平稳',
'传感器网络轻微功耗波动'
],
'warning': [
'通信模块频繁重连,导致功率上升',
'部分感知终端异常活跃,数据回传功耗偏高'
],
'danger': [
'关键设备死机重启,功耗异常升高',
'系统故障导致数据上传异常,持续过载运行'
]
}
}
const device_energy_saving_suggestions = {
'塔吊': {
'info': [
'建议合理安排作业时间,避免频繁作业导致能耗升高。',
'调整作业密集时间,避免短时高负荷运转。'
],
'warning': [
'优化起吊任务调度,避免长时间高频运行。',
'增加运转间隔,减少低效能耗。'
],
'danger': [
'排查设备空转,及时修复控制异常。',
'检修起重电机电控系统,防止功率异常升高。'
]
},
'照明系统': {
'info': [
'根据自然光调整照明开启,避免白天浪费电力。',
'安装自动关灯装置,避免光照充足时灯具未关闭。'
],
'warning': [
'启用感应照明控制,避免夜间长期开灯。',
'关闭楼道及空置区域照明,减少无效耗电。'
],
'danger': [
'尽快检修电路,防止电流异常导致安全隐患。',
'升级控制系统,减少功率波动带来的损耗。'
]
},
'办公区': {
'info': [
'适当调节空调温度,减少不必要的能耗。',
'加强节能意识,下班关闭所有办公设备。'
],
'warning': [
'落实下班关闭设备制度,杜绝持续耗电。',
'节假日期间关闭空调及灯具,降低闲置能耗。'
],
'danger': [
'检修空调异常启动问题,防止长时间运行浪费。',
'禁止非办公大功率设备接入办公区。'
]
},
'其他': {
'info': [
'定期维护监控及通信设备,保持稳定功耗。',
'监控传感器网络,避免异常功耗波动。'
],
'warning': [
'修复通信模块故障,降低重连带来的能耗。',
'优化感知终端数据上传频率,减少功耗。'
],
'danger': [
'及时处理设备死机重启问题,避免异常功耗。',
'排查系统故障,防止持续过载运行。'
]
}
}
function setParams(data) {
let item = JSON.parse(data);
document.getElementById('device-name').innerText = item.deviceName;
document.getElementById('abnormal-date').innerText = item.statDate.split(' ')[0];
document.getElementById('anomalyDesc').innerText = item.anomalyDesc;
document.getElementById('time-range').innerText = `${item.lastRecordDate.split(' ')[1]} - ${item.statDate.split(' ')[1]}`;
// 先默认提示
let adviceText = '建议进一步检查设备状态或联系技术人员。';
// 取设备、等级、描述
let device = item.deviceName;
let level = item.anomalyLevel; // 必须是 info/warning/danger
let desc = item.anomalyDesc;
// 判断设备和等级是否存在对应数据
if (device_energy_saving_suggestions[device] && device_energy_saving_suggestions[device][level]) {
// 找到当前等级所有异常描述列表
let descList = device_anomaly_dict[device][level];
// 找到当前描述的索引
let idx = descList.indexOf(desc);
if (idx !== -1) {
// 根据索引取对应建议
adviceText = device_energy_saving_suggestions[device][level][idx];
}
}
document.getElementById('advice').innerText = adviceText;
}
</script>
</body>
</html>