hb_zhgd_screen/pages/dataAnalysisOctober/energySavingAnalysis.html

823 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> 节能减排分析</title>
<link rel="stylesheet" href="../../css/font.css">
<link rel="stylesheet" href="../../plugin/layui-v2.9.7/layui/css/layui.css">
<link rel="stylesheet" href="../../css/dataAnalysis/dataAnalysis.css">
<link rel="stylesheet" href="../../css/shuiYin/shuiYin.css">
<link rel="stylesheet" href="../../css/coreTable.css" />
<link rel="stylesheet" href="../../css/accessMge/accessMge.css">
<link rel="stylesheet" href="../../css/tipCommon.css">
<script src="../../js/publics/sm4.js" type="text/javascript"></script>
<script src="../../js/publics/jquery-3.6.0.min.js" type="text/javascript"></script>
<script src="../../js/publics/public.js"></script>
<script src="../../plugin/scroll/jquery.nicescroll.min.js"></script>
<script src="../../js/publics/4.3.0/echarts.min.js"></script>
<script src="../../plugin/layui-v2.9.7/layui/layui.js"></script>
<script src="../../js/publics/aescbc.js"></script>
<script src="../../js/publics/sm3.js"></script>
<script src="../../api/commonRequest.js"></script>
<style>
#proQuality {
width: 100%;
height: 100%;
/* padding: 1%; */
box-sizing: border-box;
overflow: hidden;
/* 防止产生滚动条 */
display: flex;
flex-direction: column;
}
/* 顶部日期筛选区域(与工程质量分析保持一致) */
.top-date-filter {
display: flex;
align-items: center;
gap: 10px;
padding: 4px 20px;
background: rgba(13, 34, 37, 0.8);
border-bottom: 1px solid rgba(6, 189, 221, 0.3);
flex-shrink: 0;
}
.date-filter-label {
font-size: 14px;
color: #FFFFFF;
font-weight: bold;
white-space: nowrap;
}
.date-range-wrapper {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.search-input {
width: 160px;
height: 32px;
padding: 0 12px;
background: rgba(25, 62, 68, 0.6);
border: 1px solid rgba(6, 189, 221, 0.6);
border-radius: 2px;
color: #FFFFFF;
font-size: 14px;
transition: all 0.3s;
flex-shrink: 0;
}
.search-input:focus {
outline: none;
border-color: rgba(6, 189, 221, 1);
background: rgba(25, 62, 68, 0.8);
}
.search-input::placeholder {
color: rgba(255, 255, 255, 0.5);
}
.date-input {
width: 240px;
}
/* 主内容区域 - 使用6列4行网格实现灵活的布局分配 */
.main-content {
flex: 1;
width: 100%;
height: 0;
display: grid;
/* 6列第一行和第四行左边4列(2/3)右边2列(1/3)第三行左右各3列(1/2) */
grid-template-columns: repeat(6, 1fr);
/* 4行前两行共占2/5高度(环境监测)第三行和第四行各占1.5/5高度 */
/* 2/5 = 4fr, 1.5/5 = 3fr, 1.5/5 = 3fr但环境监测占2行所以是 2fr 2fr 3fr 3fr */
grid-template-rows: 2fr 2fr 3fr 3fr;
gap: 1%;
min-height: 0;
box-sizing: border-box;
}
.panel {
border: 1px solid rgba(0, 255, 255, 0.15);
box-shadow: 0 0 8px rgba(0, 255, 255, 0.15);
border-radius: 3px;
overflow: hidden;
position: relative;
background-image: url("../../img/dataAnalysisOctober/proQualityAnalysis/common_bg.png");
display: flex;
flex-direction: column;
}
.panel-title {
height: 40px;
display: flex;
align-items: center;
padding: 0 18px;
font-size: 16px;
color: #ffffff;
font-weight: bold;
gap: 8px;
flex-shrink: 0;
}
.title-indicator {
width: 4px;
height: 18px;
background: linear-gradient(180deg, #00FEFC 0%, #00B8B6 100%);
border-radius: 2px;
flex-shrink: 0;
}
.title-text {
flex: 1;
}
.panel-title .info-icon {
margin-left: auto;
width: 16px;
height: 16px;
cursor: pointer;
opacity: 0.7;
font-size: 14px;
}
.panel-body {
flex: 1;
padding: 10px 12px 12px 12px;
box-sizing: border-box;
overflow: hidden;
min-height: 0;
}
/* 环境监测面板 - 左上占两行左边4列(2/3宽度) */
.panel-env-monitor {
grid-column: 1 / 5;
grid-row: 1 / 3;
}
/* 累计用电面板 - 右上第一行右边2列(1/3宽度) */
.panel-power-total {
grid-column: 5 / 7;
grid-row: 1 / 2;
}
/* 累计用水面板 - 右上下方第一行下方右边2列(1/3宽度) */
.panel-water-total {
grid-column: 5 / 7;
grid-row: 2 / 3;
}
/* 近七天用电趋势 - 第三行左边3列(1/2宽度) */
.panel-power-trend {
grid-column: 1 / 4;
grid-row: 3 / 4;
}
/* 近七天用水趋势 - 第三行右边3列(1/2宽度) */
.panel-water-trend {
grid-column: 4 / 7;
grid-row: 3 / 4;
}
/* 水电环比面板 - 第三行左边4列(2/3宽度) */
.comparison-panel {
grid-column: 1 / 5;
grid-row: 4 / 5;
}
/* 分析提醒面板 - 第三行右边2列(1/3宽度) */
.analysis-panel {
grid-column: 5 / 7;
grid-row: 4 / 5;
}
.chart-container {
width: 100%;
height: 100%;
}
.digital-display {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}
.digit-display {
display: flex;
align-items: baseline;
gap: 4px;
}
.digit {
color: #00FEFC;
font-size: 64px;
font-family: 'zcoolqingkehuangyouti', monospace;
font-weight: 400;
text-shadow: 0 0 10px rgba(0, 254, 252, 0.5);
line-height: 1;
}
.unit {
color: #00FEFC;
font-size: 28px;
margin-left: 8px;
opacity: 0.9;
}
/* 趋势图面板 */
.trend-chart {
width: 100%;
height: 100%;
}
.comparison-content {
display: flex;
gap: 15px;
/* padding: 15px; */
height: 100%;
}
.comparison-section {
flex: 1;
position: relative;
border: 1px solid rgba(0, 254, 252, 0.6);
border-radius: 4px;
padding: 15px;
}
.comparison-title {
font-size: 14px;
color: #fff;
margin-bottom: 20px;
font-weight: 500;
}
/* 本月数据 - 左侧 */
.comparison-current {
position: absolute;
left: 20px;
top: 50px;
text-align: center;
}
/* 上月数据 - 右侧 */
.comparison-last {
position: absolute;
right: 20px;
top: 50px;
text-align: center;
}
/* 增长率 - 底部居中 */
.comparison-rate {
position: absolute;
left: 50%;
bottom: 30px;
transform: translateX(-50%);
text-align: center;
}
/* 数字和单位容器 */
.comparison-number-wrapper {
display: inline-block;
margin-bottom: 8px;
}
/* 数字样式 - 大号、加粗、亮蓝色 */
.comparison-number {
font-size: 32px;
font-weight: bold;
color: #00FEFC;
line-height: 1;
}
/* 单位样式 - 加粗、亮蓝色 */
.comparison-unit {
font-size: 20px;
font-weight: bold;
color: #00FEFC;
margin-left: 4px;
}
/* 增长率数字样式 */
.comparison-rate-number {
font-size: 32px;
font-weight: bold;
color: #00FEFC;
line-height: 1;
margin-bottom: 8px;
}
/* 标签样式 - 白色、较小 */
.comparison-label {
font-size: 12px;
color: rgba(255, 255, 255, 0.8);
display: block;
margin-top: 5px;
}
/* 分析提醒面板 - 右下 */
.analysis-panel {
display: flex;
flex-direction: column;
}
.analysis-tabs {
display: flex;
gap: 10px;
padding: 0 12px 10px 12px;
flex-shrink: 0;
}
.analysis-tab {
padding: 4px 12px;
border: 1px solid rgba(0, 255, 255, 0.5);
border-radius: 2px;
color: #fff;
cursor: pointer;
font-size: 12px;
transition: all 0.3s;
}
.analysis-tab:hover {
background: rgba(0, 255, 255, 0.1);
}
.analysis-tab.active {
background: rgba(0, 255, 255, 0.15);
border-color: #00FEFC;
}
.analysis-list {
flex: 1;
overflow-y: auto;
padding: 0 12px 10px 12px;
display: flex;
flex-direction: column;
gap: 8px;
}
.analysis-item {
background: rgba(13, 34, 37, 0.6);
border: 1px solid rgba(0, 255, 255, 0.2);
padding: 10px;
color: #fff;
font-size: 13px;
line-height: 1.6;
border-radius: 2px;
}
.analysis-item-date {
color: #00FEFC;
margin-right: 8px;
}
/* 滚动条样式 */
.analysis-list::-webkit-scrollbar {
width: 6px;
}
.analysis-list::-webkit-scrollbar-track {
background: rgba(13, 34, 37, 0.3);
border-radius: 3px;
}
.analysis-list::-webkit-scrollbar-thumb {
background: rgba(0, 255, 255, 0.3);
border-radius: 3px;
}
.analysis-list::-webkit-scrollbar-thumb:hover {
background: rgba(0, 255, 255, 0.5);
}
/* 用电用水详情弹框样式 */
.water-usage-modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 9999;
}
.water-usage-modal.show {
display: flex;
align-items: center;
justify-content: center;
}
.modal-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
backdrop-filter: blur(4px);
}
.modal-content {
position: relative;
width: 80%;
height: 70%;
background: rgba(13, 34, 37, 0.95);
border: 1px solid rgba(6, 189, 221, 0.6);
border-radius: 8px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
display: flex;
flex-direction: column;
overflow: hidden;
z-index: 10000;
}
.modal-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 15px 20px;
background: rgba(13, 34, 37, 0.9);
border-bottom: 1px solid rgba(6, 189, 221, 0.3);
flex-shrink: 0;
}
.modal-title {
font-size: 18px;
font-weight: bold;
color: #FFFFFF;
}
.modal-close {
font-size: 28px;
color: #FFFFFF;
cursor: pointer;
line-height: 1;
transition: color 0.3s;
width: 30px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
}
.modal-close:hover {
color: #00FFB8;
background: rgba(6, 189, 221, 0.2);
}
.modal-body {
flex: 1;
display: flex;
flex-direction: column;
overflow: hidden;
padding: 20px;
min-height: 0;
}
.modal-search-bar {
display: flex;
gap: 10px;
margin-bottom: 15px;
align-items: center;
flex-shrink: 0;
}
.search-btn {
padding: 0 20px;
height: 32px;
background: rgba(6, 189, 221, 0.8);
border: 1px solid rgba(6, 189, 221, 1);
border-radius: 2px;
color: #FFFFFF;
font-size: 14px;
cursor: pointer;
transition: all 0.3s;
flex-shrink: 0;
}
.search-btn:hover {
background: rgba(6, 189, 221, 1);
}
.modal-table-container {
flex: 1;
overflow-y: auto;
overflow-x: hidden;
min-height: 0;
}
/* 弹框内表格样式 */
#modalWaterUsageTable .layui-table {
background-color: transparent !important;
}
#modalWaterUsageTable .layui-table thead tr {
background-color: rgba(13, 34, 37, 0.8) !important;
}
#modalWaterUsageTable .layui-table thead th {
background-color: transparent !important;
color: #FFFFFF !important;
border-color: rgba(6, 189, 221, 0.3) !important;
font-weight: bold;
}
#modalWaterUsageTable .layui-table tbody tr {
background-color: rgba(25, 62, 68, 0.3) !important;
}
#modalWaterUsageTable .layui-table tbody tr:hover {
background-color: rgba(25, 62, 68, 0.6) !important;
}
#modalWaterUsageTable .layui-table tbody td {
color: #FFFFFF !important;
border-color: rgba(6, 189, 221, 0.2) !important;
}
#modalWaterUsageTable .layui-table-page {
background-color: transparent !important;
border-top: 1px solid rgba(6, 189, 221, 0.3) !important;
padding: 10px 0 !important;
}
#modalWaterUsageTable .layui-table-page .layui-laypage {
margin: 0 !important;
}
#modalWaterUsageTable .layui-table-page .layui-laypage a,
#modalWaterUsageTable .layui-table-page .layui-laypage span {
color: #FFFFFF !important;
background-color: rgba(25, 62, 68, 0.6) !important;
border-color: rgba(6, 189, 221, 0.5) !important;
}
#modalWaterUsageTable .layui-table-page .layui-laypage .layui-laypage-curr em {
background-color: #207E75 !important;
color: #FFFFFF !important;
}
#modalWaterUsageTable .layui-table-page .layui-laypage a:hover {
background-color: rgba(6, 189, 221, 0.6) !important;
border-color: rgba(6, 189, 221, 0.8) !important;
}
#modalWaterUsageTable .layui-table-page input {
background-color: rgba(25, 62, 68, 0.6) !important;
border-color: rgba(6, 189, 221, 0.5) !important;
color: #FFFFFF !important;
}
/* 累计用电和累计用水模块添加点击样式 */
.panel-power-total,
.panel-water-total {
cursor: pointer;
}
.panel-power-total:hover,
.panel-water-total:hover {
border-color: rgba(0, 254, 252, 0.4);
box-shadow: 0 0 12px rgba(0, 254, 252, 0.2);
}
/* 折线图容器添加点击样式 */
.trend-chart {
cursor: pointer;
}
</style>
</head>
<body>
<div id="proQuality">
<!-- 顶部日期筛选区域(与工程质量分析保持一致) -->
<div class="top-date-filter">
<div class="date-filter-label">日期范围:</div>
<div class="date-range-wrapper">
<input type="text" id="dateRange" class="search-input date-input" placeholder="请选择日期范围" readonly>
</div>
</div>
<!-- 主内容区域 -->
<div class="main-content">
<!-- 环境监测 - 左上,占两行 -->
<div class="panel panel-env-monitor">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">环境监测</span>
</div>
<div class="panel-body">
<div id="envMonitorChart" class="chart-container"></div>
</div>
</div>
<!-- 累计用电 - 右上 -->
<div class="panel panel-power-total" onclick="openWaterUsageModal('用电')">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">累计用电</span>
<span class="info-icon">
<img src="../../img/dataAnalysisOctober/common_icon.png" alt=""
style="cursor: pointer; width: 20px; height: 20px;margin-right: 10px;margin-top: 5px;">
</span>
</div>
<div class="tooltip-box">
现场根据智能电表采集用电数据,根据时问查询累
计耗电总量
</div>
<div class="panel-body">
<div class="digital-display">
<div class="digit-display">
<span class="digit" id="totalPower">007.2</span>
<span class="unit"></span>
</div>
</div>
</div>
</div>
<!-- 累计用水 - 右上下方 -->
<div class="panel panel-water-total" onclick="openWaterUsageModal('用水')">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">累计用水</span>
<span class="info-icon">
<img src="../../img/dataAnalysisOctober/common_icon.png" alt=""
style="cursor: pointer; width: 20px; height: 20px;margin-right: 10px;margin-top: 5px;">
</span>
</div>
<div class="tooltip-box">
现场根据智能电表采集用电数据,根据时问查询累
计耗电总量
</div>
<div class="panel-body">
<div class="digital-display">
<div class="digit-display">
<span class="digit" id="totalWater">022.2</span>
<span class="unit"></span>
</div>
</div>
</div>
</div>
<!-- 近七天用电趋势 - 第三行,左边 -->
<div class="panel panel-power-trend">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">近七天用电趋势</span>
<span class="info-icon">
<img src="../../img/dataAnalysisOctober/common_icon.png" alt=""
style="cursor: pointer; width: 20px; height: 20px;margin-right: 10px;margin-top: 5px;">
</span>
</div>
<div class="tooltip-box">
近七天每天总耗电量统计
</div>
<div class="panel-body">
<div id="powerTrendChart" class="trend-chart"></div>
</div>
</div>
<!-- 近七天用水趋势 - 第三行,右边 -->
<div class="panel panel-water-trend">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">近七天用水趋势</span>
<span class="info-icon">
<img src="../../img/dataAnalysisOctober/common_icon.png" alt=""
style="cursor: pointer; width: 20px; height: 20px;margin-right: 10px;margin-top: 5px;">
</span>
</div>
<div class="tooltip-box">
近七天每天总用水量统计
</div>
<div class="panel-body">
<div id="waterTrendChart" class="trend-chart"></div>
</div>
</div>
<!-- 水电环比 - 左下 -->
<div class="panel comparison-panel">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">水电环比</span>
<span class="info-icon">
<img src="../../img/dataAnalysisOctober/common_icon.png" alt=""
style="cursor: pointer; width: 20px; height: 20px;margin-right: 10px;margin-top: 5px;">
</span>
</div>
<div class="tooltip-box">
用电环比增长率:(本月用电量-上月用电量)÷上月用电
量× 100% <br>
用水环比增长率:(本月用水量-上月用水量)÷上月用水
×100%
</div>
<div class="panel-body">
<div class="comparison-content">
<div class="comparison-section">
<div class="comparison-title">用电环比</div>
<div class="comparison-current">
<div class="comparison-number-wrapper">
<span class="comparison-number" id="currentMonthPowerNum">0.0</span>
<span class="comparison-unit"></span>
</div>
<span class="comparison-label">本月耗电量</span>
</div>
<div class="comparison-last">
<div class="comparison-number-wrapper">
<span class="comparison-number" id="lastMonthPowerNum">0.0</span>
<span class="comparison-unit"></span>
</div>
<span class="comparison-label">上月耗电量</span>
</div>
<div class="comparison-rate">
<div class="comparison-rate-number" id="powerGrowthRate">0%</div>
<span class="comparison-label">环比增长率</span>
</div>
</div>
<div class="comparison-section">
<div class="comparison-title">用水环比</div>
<div class="comparison-current">
<div class="comparison-number-wrapper">
<span class="comparison-number" id="currentMonthWaterNum">0.0</span>
<span class="comparison-unit"></span>
</div>
<span class="comparison-label">本月用水量</span>
</div>
<div class="comparison-last">
<div class="comparison-number-wrapper">
<span class="comparison-number" id="lastMonthWaterNum">0.0</span>
<span class="comparison-unit"></span>
</div>
<span class="comparison-label">上月用水量</span>
</div>
<div class="comparison-rate">
<div class="comparison-rate-number" id="waterGrowthRate">0%</div>
<span class="comparison-label">环比增长率</span>
</div>
</div>
</div>
</div>
</div>
<!-- 分析提醒 - 右下 -->
<div class="panel analysis-panel">
<div class="panel-title">
<span class="title-indicator"></span>
<span class="title-text">分析提醒</span>
<span class="info-icon">
<img src="../../img/dataAnalysisOctober/common_icon.png" alt=""
style="cursor: pointer; width: 20px; height: 20px;margin-right: 10px;margin-top: 5px;">
</span>
</div>
<div class="tooltip-box">
用水、用电环比去增加10%,系统进行分析预警
</div>
<div class="panel-body">
<div class="analysis-tabs">
<div class="analysis-tab active" data-type="all" onclick="filterAnalysis('all')">全部</div>
<div class="analysis-tab" data-type="power" onclick="filterAnalysis('power')">用电</div>
<div class="analysis-tab" data-type="water" onclick="filterAnalysis('water')">用水</div>
</div>
<div class="analysis-list" id="analysisList"></div>
</div>
</div>
</div>
</div>
<!-- 用电用水详情弹框 -->
<div id="waterUsageModal" class="water-usage-modal">
<div class="modal-overlay" onclick="closeWaterUsageModal()"></div>
<div class="modal-content">
<div class="modal-header">
<span class="modal-title">用电用水详情</span>
<span class="modal-close" onclick="closeWaterUsageModal()">×</span>
</div>
<div class="modal-body">
<div class="modal-search-bar">
<input type="text" id="modalTypeInput" class="search-input" placeholder="类型">
<input type="text" id="modalDateRange" class="search-input date-input" placeholder="请选择日期范围"
readonly>
<button type="button" class="search-btn" onclick="queryWaterUsageRecords()">查询</button>
</div>
<div class="modal-table-container">
<table id="modalWaterUsageTable" lay-filter="modalWaterUsageTable"></table>
</div>
</div>
</div>
</div>
</body>
<script src="../../js/pages/dataAnalysisOctober/energySavingAnalysis.js" type="text/javascript"></script>
</html>