|
@@ -2,45 +2,73 @@
|
|
|
:host {
|
|
|
display: block;
|
|
|
width: 100%;
|
|
|
- padding: 15px;
|
|
|
+ padding: 20px;
|
|
|
+ background: #0a192f;
|
|
|
+ min-height: 100vh;
|
|
|
}
|
|
|
|
|
|
.history-container {
|
|
|
max-width: 1400px;
|
|
|
margin: 0 auto;
|
|
|
- padding: 20px;
|
|
|
- background: white;
|
|
|
- border-radius: 8px;
|
|
|
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
|
|
+ padding: 25px;
|
|
|
+ background: #172a45;
|
|
|
+ border-radius: 12px;
|
|
|
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
|
|
|
+ color: #e6f1ff;
|
|
|
}
|
|
|
|
|
|
.history-header {
|
|
|
- margin-bottom: 24px;
|
|
|
- padding-bottom: 16px;
|
|
|
- border-bottom: 1px solid #eee;
|
|
|
+ margin-bottom: 30px;
|
|
|
+ padding-bottom: 20px;
|
|
|
+ border-bottom: 1px solid rgba(100, 148, 237, 0.3);
|
|
|
}
|
|
|
|
|
|
.history-header h2 {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- gap: 10px;
|
|
|
- font-size: 24px;
|
|
|
- color: #2c3e50;
|
|
|
+ gap: 12px;
|
|
|
+ font-size: 26px;
|
|
|
+ color: #64ffda;
|
|
|
+ margin: 0;
|
|
|
+}
|
|
|
+
|
|
|
+.history-header i {
|
|
|
+ color: #64ffda;
|
|
|
}
|
|
|
|
|
|
.filter-row {
|
|
|
display: flex;
|
|
|
- gap: 20px;
|
|
|
- margin-bottom: 20px;
|
|
|
+ gap: 25px;
|
|
|
+ margin-bottom: 25px;
|
|
|
}
|
|
|
|
|
|
.filter-card,
|
|
|
.device-selector {
|
|
|
flex: 1;
|
|
|
- background: white;
|
|
|
- border-radius: 8px;
|
|
|
+ background: rgba(23, 42, 69, 0.8);
|
|
|
+ border-radius: 10px;
|
|
|
padding: 20px;
|
|
|
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
|
+ border: 1px solid rgba(100, 148, 237, 0.1);
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.filter-card:hover,
|
|
|
+.device-selector:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
|
|
|
+ border-color: rgba(100, 148, 237, 0.3);
|
|
|
+}
|
|
|
+
|
|
|
+.filter-card h3,
|
|
|
+.device-selector h3 {
|
|
|
+ color: #64ffda;
|
|
|
+ margin-top: 0;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ font-size: 18px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
}
|
|
|
|
|
|
.date-controls {
|
|
@@ -52,19 +80,60 @@
|
|
|
|
|
|
.date-input label {
|
|
|
display: block;
|
|
|
- margin-bottom: 6px;
|
|
|
+ margin-bottom: 8px;
|
|
|
font-size: 14px;
|
|
|
- color: #2c3e50;
|
|
|
+ color: #ccd6f6;
|
|
|
}
|
|
|
|
|
|
.date-input input {
|
|
|
width: 100%;
|
|
|
- padding: 8px 12px;
|
|
|
- border-radius: 4px;
|
|
|
- border: 1px solid #ddd;
|
|
|
+ padding: 10px 15px;
|
|
|
+ border-radius: 6px;
|
|
|
+ border: 1px solid #1e2a3a;
|
|
|
+ font-size: 14px;
|
|
|
+ background: #0a192f;
|
|
|
+ color: #e6f1ff;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.date-input input:focus {
|
|
|
+ outline: none;
|
|
|
+ border-color: #64ffda;
|
|
|
+ box-shadow: 0 0 0 2px rgba(100, 255, 218, 0.2);
|
|
|
+}
|
|
|
+
|
|
|
+.btn {
|
|
|
+ padding: 10px 20px;
|
|
|
+ border-radius: 6px;
|
|
|
+ border: none;
|
|
|
+ background: #1e2a3a;
|
|
|
+ color: #e6f1ff;
|
|
|
+ cursor: pointer;
|
|
|
+ font-size: 14px;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 8px;
|
|
|
+}
|
|
|
+
|
|
|
+.btn:hover {
|
|
|
+ background: #233554;
|
|
|
+ transform: translateY(-1px);
|
|
|
+}
|
|
|
+
|
|
|
+.btn i {
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
|
|
|
+.btn.primary {
|
|
|
+ background: #0d6efd;
|
|
|
+ color: white;
|
|
|
+}
|
|
|
+
|
|
|
+.btn.primary:hover {
|
|
|
+ background: #0b5ed7;
|
|
|
+}
|
|
|
+
|
|
|
.device-controls {
|
|
|
display: flex;
|
|
|
gap: 15px;
|
|
@@ -73,10 +142,19 @@
|
|
|
|
|
|
.device-controls select {
|
|
|
flex: 1;
|
|
|
- padding: 8px 12px;
|
|
|
- border-radius: 4px;
|
|
|
- border: 1px solid #ddd;
|
|
|
+ padding: 10px 15px;
|
|
|
+ border-radius: 6px;
|
|
|
+ border: 1px solid #1e2a3a;
|
|
|
font-size: 14px;
|
|
|
+ background: #0a192f;
|
|
|
+ color: #e6f1ff;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.device-controls select:focus {
|
|
|
+ outline: none;
|
|
|
+ border-color: #64ffda;
|
|
|
+ box-shadow: 0 0 0 2px rgba(100, 255, 218, 0.2);
|
|
|
}
|
|
|
|
|
|
.checkbox-container {
|
|
@@ -85,6 +163,7 @@
|
|
|
cursor: pointer;
|
|
|
font-size: 14px;
|
|
|
user-select: none;
|
|
|
+ color: #ccd6f6;
|
|
|
}
|
|
|
|
|
|
.checkbox-container input {
|
|
@@ -96,16 +175,23 @@
|
|
|
.checkmark {
|
|
|
height: 20px;
|
|
|
width: 20px;
|
|
|
- background-color: #eee;
|
|
|
+ background-color: #0a192f;
|
|
|
border-radius: 4px;
|
|
|
margin-left: 10px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
+ border: 1px solid #1e2a3a;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.checkbox-container:hover .checkmark {
|
|
|
+ background-color: #112240;
|
|
|
}
|
|
|
|
|
|
.checkbox-container input:checked ~ .checkmark {
|
|
|
- background-color: #3498db;
|
|
|
+ background-color: #0d6efd;
|
|
|
+ border-color: #0d6efd;
|
|
|
}
|
|
|
|
|
|
.checkmark:after {
|
|
@@ -123,27 +209,45 @@
|
|
|
}
|
|
|
|
|
|
.chart-container {
|
|
|
- margin-bottom: 20px;
|
|
|
+ margin-bottom: 25px;
|
|
|
}
|
|
|
|
|
|
.chart-card {
|
|
|
- background: white;
|
|
|
- border-radius: 8px;
|
|
|
+ background: rgba(23, 42, 69, 0.8);
|
|
|
+ border-radius: 10px;
|
|
|
padding: 20px;
|
|
|
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
|
+ border: 1px solid rgba(100, 148, 237, 0.1);
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.chart-card:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
|
|
|
+ border-color: rgba(100, 148, 237, 0.3);
|
|
|
}
|
|
|
|
|
|
.chart-header {
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- margin-bottom: 15px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+}
|
|
|
+
|
|
|
+.chart-header h3 {
|
|
|
+ color: #64ffda;
|
|
|
+ margin: 0;
|
|
|
+ font-size: 18px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
}
|
|
|
|
|
|
.chart-legend {
|
|
|
display: flex;
|
|
|
gap: 20px;
|
|
|
font-size: 14px;
|
|
|
+ color: #ccd6f6;
|
|
|
}
|
|
|
|
|
|
.color-dot {
|
|
@@ -152,17 +256,19 @@
|
|
|
height: 12px;
|
|
|
border-radius: 50%;
|
|
|
margin-right: 8px;
|
|
|
+ vertical-align: middle;
|
|
|
}
|
|
|
|
|
|
-.color-dot.primary { background: #3498db; }
|
|
|
+.color-dot.primary { background: #0d6efd; }
|
|
|
.color-dot.secondary { background: #9b59b6; }
|
|
|
|
|
|
.chart-content {
|
|
|
height: 400px;
|
|
|
- background: #f8fafc;
|
|
|
- border-radius: 6px;
|
|
|
+ background: #0a192f;
|
|
|
+ border-radius: 8px;
|
|
|
position: relative;
|
|
|
padding: 30px 40px;
|
|
|
+ border: 1px solid rgba(100, 148, 237, 0.1);
|
|
|
}
|
|
|
|
|
|
.trend-chart {
|
|
@@ -183,7 +289,7 @@
|
|
|
position: absolute;
|
|
|
width: 100%;
|
|
|
height: 1px;
|
|
|
- background: rgba(0, 0, 0, 0.05);
|
|
|
+ background: rgba(100, 148, 237, 0.1);
|
|
|
}
|
|
|
|
|
|
.grid-line:nth-child(1) { top: 0%; }
|
|
@@ -197,16 +303,19 @@
|
|
|
height: 3px;
|
|
|
border-radius: 3px;
|
|
|
bottom: 0;
|
|
|
+ transition: all 0.5s ease;
|
|
|
}
|
|
|
|
|
|
.data-line.primary {
|
|
|
- background: #3498db;
|
|
|
+ background: linear-gradient(90deg, #0d6efd, #64ffda);
|
|
|
width: 70%;
|
|
|
+ box-shadow: 0 0 10px rgba(13, 110, 253, 0.5);
|
|
|
}
|
|
|
|
|
|
.data-line.secondary {
|
|
|
- background: #9b59b6;
|
|
|
+ background: linear-gradient(90deg, #9b59b6, #e91e63);
|
|
|
width: 60%;
|
|
|
+ box-shadow: 0 0 10px rgba(155, 89, 182, 0.5);
|
|
|
}
|
|
|
|
|
|
.x-axis {
|
|
@@ -217,5 +326,137 @@
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
font-size: 12px;
|
|
|
- color: white;
|
|
|
-}
|
|
|
+ color: #8892b0;
|
|
|
+}
|
|
|
+
|
|
|
+.y-axis {
|
|
|
+ position: absolute;
|
|
|
+ left: -30px;
|
|
|
+ top: 0;
|
|
|
+ bottom: 0;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: space-between;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #8892b0;
|
|
|
+}
|
|
|
+
|
|
|
+.data-table-card {
|
|
|
+ background: rgba(23, 42, 69, 0.8);
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 20px;
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
|
+ border: 1px solid rgba(100, 148, 237, 0.1);
|
|
|
+ margin-bottom: 25px;
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.data-table-card:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
|
|
|
+ border-color: rgba(100, 148, 237, 0.3);
|
|
|
+}
|
|
|
+
|
|
|
+.data-table-card h3 {
|
|
|
+ color: #64ffda;
|
|
|
+ margin-top: 0;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ font-size: 18px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.data-table {
|
|
|
+ width: 100%;
|
|
|
+ border-collapse: collapse;
|
|
|
+ color: #ccd6f6;
|
|
|
+}
|
|
|
+
|
|
|
+.data-table th {
|
|
|
+ background: #112240;
|
|
|
+ color: #64ffda;
|
|
|
+ padding: 12px 15px;
|
|
|
+ text-align: left;
|
|
|
+ font-weight: 500;
|
|
|
+ border-bottom: 2px solid rgba(100, 148, 237, 0.3);
|
|
|
+}
|
|
|
+
|
|
|
+.data-table td {
|
|
|
+ padding: 12px 15px;
|
|
|
+ border-bottom: 1px solid rgba(100, 148, 237, 0.1);
|
|
|
+}
|
|
|
+
|
|
|
+.data-table tr:hover td {
|
|
|
+ background: rgba(16, 36, 70, 0.5);
|
|
|
+ color: #e6f1ff;
|
|
|
+}
|
|
|
+
|
|
|
+.status-badge {
|
|
|
+ display: inline-block;
|
|
|
+ padding: 4px 10px;
|
|
|
+ border-radius: 12px;
|
|
|
+ font-size: 12px;
|
|
|
+ font-weight: 500;
|
|
|
+}
|
|
|
+
|
|
|
+.status-badge.normal {
|
|
|
+ background: rgba(40, 167, 69, 0.2);
|
|
|
+ color: #28a745;
|
|
|
+}
|
|
|
+
|
|
|
+.status-badge.warning {
|
|
|
+ background: rgba(255, 193, 7, 0.2);
|
|
|
+ color: #ffc107;
|
|
|
+}
|
|
|
+
|
|
|
+.status-badge.critical {
|
|
|
+ background: rgba(220, 53, 69, 0.2);
|
|
|
+ color: #dc3545;
|
|
|
+}
|
|
|
+
|
|
|
+.report-section {
|
|
|
+ background: rgba(23, 42, 69, 0.8);
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 20px;
|
|
|
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
|
+ border: 1px solid rgba(100, 148, 237, 0.1);
|
|
|
+ transition: all 0.3s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.report-section:hover {
|
|
|
+ transform: translateY(-2px);
|
|
|
+ box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
|
|
|
+ border-color: rgba(100, 148, 237, 0.3);
|
|
|
+}
|
|
|
+
|
|
|
+.report-section h3 {
|
|
|
+ color: #64ffda;
|
|
|
+ margin-top: 0;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ font-size: 18px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+.report-options {
|
|
|
+ display: flex;
|
|
|
+ gap: 15px;
|
|
|
+}
|
|
|
+
|
|
|
+/* 添加一些动画效果 */
|
|
|
+@keyframes fadeIn {
|
|
|
+ from { opacity: 0; transform: translateY(10px); }
|
|
|
+ to { opacity: 1; transform: translateY(0); }
|
|
|
+}
|
|
|
+
|
|
|
+.history-container > * {
|
|
|
+ animation: fadeIn 0.5s ease forwards;
|
|
|
+}
|
|
|
+
|
|
|
+.history-header { animation-delay: 0.1s; }
|
|
|
+.filter-row { animation-delay: 0.2s; }
|
|
|
+.chart-container { animation-delay: 0.3s; }
|
|
|
+.data-table-card { animation-delay: 0.4s; }
|
|
|
+.report-section { animation-delay: 0.5s; }
|