第一次美化

This commit is contained in:
kongduo
2026-06-11 19:18:48 +08:00
parent 57b0a46183
commit 06dfe98cb6
28 changed files with 1338 additions and 325 deletions

View File

@@ -1,5 +1,7 @@
@use '@/style/main.scss';
@use '@/style/reset';
@use '@/style/table-tech.scss';
@use '@/style/loading-tech.scss';
.el-button {
font-weight: 600;
@@ -45,43 +47,6 @@
@apply overflow-hidden;
}
.el-loading-mask.is-fullscreen,
.el-loading-mask.gva-tech-loading,
.gva-tech-app .el-loading-mask {
color: var(--tech-text);
background:
radial-gradient(circle at 50% 36%, rgba(0, 212, 255, 0.16), transparent 28%),
rgba(2, 8, 23, 0.72) !important;
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
}
.el-loading-mask.is-fullscreen .el-loading-spinner,
.el-loading-mask.gva-tech-loading .el-loading-spinner,
.gva-tech-app .el-loading-mask .el-loading-spinner {
padding: 18px 24px;
border: 1px solid rgba(0, 212, 255, 0.22);
border-radius: 16px;
background: rgba(5, 16, 32, 0.78);
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.38), 0 0 22px rgba(0, 212, 255, 0.14);
}
.el-loading-mask.is-fullscreen .el-loading-spinner .path,
.el-loading-mask.gva-tech-loading .el-loading-spinner .path,
.gva-tech-app .el-loading-mask .el-loading-spinner .path {
stroke: var(--tech-cyan);
}
.el-loading-mask.is-fullscreen .el-loading-spinner .el-loading-text,
.el-loading-mask.gva-tech-loading .el-loading-spinner .el-loading-text,
.gva-tech-app .el-loading-mask .el-loading-spinner .el-loading-text {
margin-top: 10px;
font-weight: 700;
color: #67e8f9;
letter-spacing: 0.08em;
text-shadow: 0 0 12px rgba(0, 212, 255, 0.38);
}
body:not(.login-light-mode) {
.el-card,
.el-dialog,
@@ -120,7 +85,7 @@ body:not(.login-light-mode) {
.equipment-tech-page {
.el-form-item__label {
font-weight: 700;
color: var(--tech-text-muted);
color: #dceeff;
}
.el-button {
@@ -186,7 +151,7 @@ body:not(.login-light-mode) {
.el-input__inner::placeholder,
.el-textarea__inner::placeholder {
color: rgba(191, 226, 255, 0.44);
color: rgba(220, 243, 255, 0.56);
}
.el-card,
@@ -210,63 +175,6 @@ body:not(.login-light-mode) {
border-bottom-color: rgba(0, 212, 255, 0.18) !important;
}
.el-table {
overflow: hidden;
color: var(--tech-text);
border-color: rgba(0, 212, 255, 0.18) !important;
background: transparent;
&::before,
&::after,
.el-table__inner-wrapper::before {
background-color: rgba(0, 212, 255, 0.18);
}
th.el-table__cell {
color: #baf6ff !important;
border-bottom-color: rgba(0, 212, 255, 0.3);
background: linear-gradient(180deg, rgba(14, 116, 144, 0.5), rgba(15, 23, 42, 0.92)) !important;
.cell {
color: #baf6ff !important;
font-weight: 900;
letter-spacing: 0.05em;
text-shadow: 0 0 12px rgba(0, 212, 255, 0.36);
}
}
tr,
td.el-table__cell {
color: #eafcff !important;
border-bottom-color: rgba(0, 212, 255, 0.14);
background: rgba(2, 8, 23, 0.28) !important;
}
.el-table__row:hover > td.el-table__cell {
color: #ffffff !important;
background: rgba(14, 165, 233, 0.22) !important;
}
.cell {
color: inherit !important;
font-weight: 600;
line-height: 34px;
text-shadow: 0 0 8px rgba(0, 212, 255, 0.12);
}
.el-table__fixed,
.el-table__fixed-right,
.el-table__fixed-header-wrapper,
.el-table__fixed-body-wrapper,
.el-table__fixed-right-patch {
background: #061224;
}
.el-table__empty-text {
color: rgba(191, 226, 255, 0.64);
}
}
.el-pagination {
@apply mt-8;
--el-pagination-bg-color: rgba(15, 23, 42, 0.76);
@@ -364,30 +272,16 @@ body:not(.login-light-mode) {
.el-table {
tr {
th {
@apply dark:bg-slate-900;
.cell {
@apply leading-[36px];
color: #baf6ff !important;
font-weight: 900;
text-shadow: 0 0 12px rgba(0, 212, 255, 0.32);
@apply leading-[1.5];
}
}
}
.el-table__row {
td {
@apply dark:bg-slate-900;
.cell {
@apply leading-[34px];
color: #eafcff !important;
font-weight: 600;
text-shadow: 0 0 8px rgba(0, 212, 255, 0.12);
}
}
}
tr {
th {
&.is-leaf {
@apply dark:bg-slate-900;
@apply leading-[1.55];
}
}
}
@@ -443,9 +337,9 @@ html.dark {
--el-border-color: rgba(0, 212, 255, 0.24);
--el-border-color-light: rgba(0, 212, 255, 0.18);
--el-border-color-lighter: rgba(0, 212, 255, 0.12);
--el-text-color-primary: #e0f7ff;
--el-text-color-regular: #bfdbfe;
--el-text-color-secondary: rgba(191, 226, 255, 0.72);
--el-text-color-primary: #eefbff;
--el-text-color-regular: #dceeff;
--el-text-color-secondary: rgba(220, 243, 255, 0.88);
--el-input-bg-color: rgba(2, 8, 23, 0.68);
--el-mask-color: rgba(2, 6, 23, 0.72);
}

View File

@@ -0,0 +1,477 @@
.equipment-tech-page {
position: relative;
min-height: calc(100vh - 150px);
padding: 18px;
overflow: hidden;
isolation: isolate;
border-radius: 18px;
color: #dff8ff;
background:
radial-gradient(circle at 14% 10%, rgba(0, 212, 255, 0.16), transparent 28%),
radial-gradient(circle at 86% 8%, rgba(245, 158, 11, 0.12), transparent 24%),
radial-gradient(circle at 50% 92%, rgba(37, 99, 235, 0.14), transparent 34%),
linear-gradient(135deg, #020713 0%, #07111f 48%, #0f172a 100%);
&::before,
&::after {
position: absolute;
inset: 0;
z-index: -1;
pointer-events: none;
content: '';
}
&::before {
opacity: 0.42;
background-image:
linear-gradient(rgba(0, 212, 255, 0.12) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 212, 255, 0.12) 1px, transparent 1px);
background-size: 34px 34px;
mask-image: radial-gradient(circle at center, #000 0%, transparent 78%);
animation: equipmentGridDrift 22s linear infinite;
}
&::after {
background: linear-gradient(110deg, transparent 0%, rgba(0, 212, 255, 0.08) 45%, rgba(255, 255, 255, 0.16) 50%, rgba(0, 212, 255, 0.08) 55%, transparent 100%);
transform: translateX(-120%);
animation: equipmentScanLine 7s ease-in-out infinite;
}
.equipment-tech-header {
position: relative;
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 18px;
padding: 22px 24px;
margin-bottom: 16px;
overflow: hidden;
border: 1px solid rgba(0, 212, 255, 0.28);
border-radius: 18px;
background:
linear-gradient(90deg, rgba(8, 27, 54, 0.9), rgba(4, 15, 32, 0.72)),
radial-gradient(circle at 20% 20%, rgba(0, 212, 255, 0.18), transparent 36%);
box-shadow: 0 18px 46px rgba(0, 0, 0, 0.36), inset 0 0 26px rgba(0, 212, 255, 0.08);
&::before {
position: absolute;
top: 0;
left: -36%;
width: 36%;
height: 100%;
content: '';
background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.18), transparent);
animation: equipmentCardGlint 5.6s ease-in-out infinite;
}
}
.equipment-tech-kicker {
display: inline-flex;
align-items: center;
gap: 8px;
margin-bottom: 8px;
font-size: 12px;
font-weight: 700;
color: #67e8f9;
letter-spacing: 0.18em;
text-transform: uppercase;
}
.equipment-tech-title {
margin: 0;
font-size: 26px;
font-weight: 800;
line-height: 1.2;
color: #f0fbff;
letter-spacing: 0.08em;
text-shadow: 0 0 18px rgba(0, 212, 255, 0.42);
}
.equipment-tech-subtitle {
margin: 8px 0 0;
font-size: 13px;
color: rgba(220, 243, 255, 0.72);
}
.equipment-tech-header-line {
flex: 1;
min-width: 160px;
height: 2px;
margin-bottom: 16px;
background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.92), rgba(245, 158, 11, 0.82), transparent);
box-shadow: 0 0 18px rgba(0, 212, 255, 0.46);
}
.equipment-tech-stat-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
gap: 14px;
margin-bottom: 16px;
}
.equipment-tech-stat-card {
position: relative;
min-height: 92px;
padding: 16px;
overflow: hidden;
border: 1px solid rgba(0, 212, 255, 0.22);
border-radius: 16px;
background: linear-gradient(135deg, rgba(9, 24, 48, 0.88), rgba(5, 16, 32, 0.7));
box-shadow: inset 0 0 22px rgba(0, 212, 255, 0.06), 0 12px 28px rgba(0, 0, 0, 0.22);
transition: transform 0.24s ease, border-color 0.24s ease, box-shadow 0.24s ease;
&::after {
position: absolute;
right: -24px;
bottom: -24px;
width: 86px;
height: 86px;
content: '';
border: 1px solid rgba(0, 212, 255, 0.18);
border-radius: 50%;
box-shadow: 0 0 28px rgba(0, 212, 255, 0.12);
}
&:hover {
border-color: rgba(0, 212, 255, 0.56);
box-shadow: 0 16px 34px rgba(0, 0, 0, 0.3), 0 0 24px rgba(0, 212, 255, 0.16);
transform: translateY(-3px);
}
}
.equipment-tech-stat-card--success {
border-color: rgba(16, 185, 129, 0.38);
.equipment-tech-stat-value {
color: #5eead4;
}
}
.equipment-tech-stat-card--warning {
border-color: rgba(245, 158, 11, 0.42);
.equipment-tech-stat-value {
color: #fbbf24;
}
}
.equipment-tech-stat-card--danger {
border-color: rgba(239, 68, 68, 0.42);
.equipment-tech-stat-value {
color: #fb7185;
}
}
.equipment-tech-stat-label {
font-size: 13px;
color: rgba(220, 243, 255, 0.72);
}
.equipment-tech-stat-value {
margin-top: 10px;
font-family: DIN Alternate, Arial, sans-serif;
font-size: 30px;
font-weight: 800;
line-height: 1;
color: #38bdf8;
text-shadow: 0 0 16px rgba(56, 189, 248, 0.42);
}
.equipment-tech-stat-unit {
margin-left: 4px;
font-size: 13px;
font-weight: 500;
color: rgba(220, 243, 255, 0.78);
}
.gva-search-box,
.gva-table-box {
position: relative;
overflow: hidden;
color: #dff8ff;
border: 1px solid rgba(0, 212, 255, 0.22);
border-radius: 16px;
background: rgba(5, 16, 32, 0.76);
box-shadow: inset 0 0 24px rgba(0, 212, 255, 0.05), 0 14px 34px rgba(0, 0, 0, 0.24);
backdrop-filter: blur(10px);
&::before {
position: absolute;
top: 0;
left: -34%;
width: 34%;
height: 100%;
content: '';
pointer-events: none;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.09), transparent);
animation: equipmentCardGlint 8s ease-in-out infinite;
}
}
.gva-table-box {
margin-bottom: 0;
}
.gva-btn-list {
min-height: 0;
margin-bottom: 12px;
}
.el-form-item__label {
font-weight: 600;
color: rgba(218, 244, 255, 0.9);
}
.el-input__wrapper,
.el-select__wrapper {
border: 1px solid rgba(0, 212, 255, 0.2);
background: rgba(2, 8, 23, 0.72);
box-shadow: inset 0 0 14px rgba(0, 212, 255, 0.06);
}
.el-input__wrapper.is-focus,
.el-select__wrapper.is-focused {
border-color: rgba(0, 212, 255, 0.72);
box-shadow: 0 0 0 1px rgba(0, 212, 255, 0.34), 0 0 18px rgba(0, 212, 255, 0.18);
}
.el-input__inner,
.el-select__placeholder,
.el-select__selected-item {
color: #e0f7ff;
}
.el-input__inner::placeholder {
color: rgba(220, 243, 255, 0.56);
}
.el-button {
border-radius: 999px;
}
.el-button--primary:not(.is-link) {
border: 0;
background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 52%, #7c3aed 100%);
box-shadow: 0 0 20px rgba(14, 165, 233, 0.28);
}
.el-button:not(.el-button--primary):not(.is-link) {
color: #bfdbfe;
border-color: rgba(148, 163, 184, 0.28);
background: rgba(15, 23, 42, 0.74);
}
.el-table {
overflow: hidden;
background: transparent;
}
.el-divider--vertical {
border-left-color: rgba(0, 212, 255, 0.3);
}
.gva-pagination {
display: flex;
justify-content: flex-end;
padding-top: 16px;
.el-pagination {
--el-pagination-bg-color: rgba(15, 23, 42, 0.76);
--el-pagination-button-disabled-bg-color: rgba(15, 23, 42, 0.46);
--el-pagination-hover-color: #67e8f9;
--el-pagination-text-color: #bfdbfe;
--el-pagination-button-color: #bfdbfe;
}
.el-pager li,
.btn-prev,
.btn-next,
.el-input__wrapper {
border: 1px solid rgba(0, 212, 255, 0.16);
background: rgba(15, 23, 42, 0.78);
}
.el-pager li.is-active {
color: #020617;
background: #67e8f9;
}
}
.tech-status-tag {
gap: 6px;
border: 1px solid rgba(0, 212, 255, 0.26);
border-radius: 999px;
background: rgba(15, 23, 42, 0.72);
box-shadow: 0 0 16px rgba(0, 212, 255, 0.1);
}
.tech-status-dot {
display: inline-block;
width: 7px;
height: 7px;
border-radius: 50%;
background: #38bdf8;
box-shadow: 0 0 10px currentColor;
animation: equipmentDotBreath 1.8s ease-in-out infinite;
}
.tech-status-dot--online,
.tech-status-dot--success {
color: #34d399;
background: #34d399;
}
.tech-status-dot--offline,
.tech-status-dot--danger {
color: #fb7185;
background: #fb7185;
}
.tech-status-dot--warning {
color: #fbbf24;
background: #fbbf24;
}
.tech-value-chip,
.tech-coordinate {
display: inline-flex;
align-items: center;
gap: 5px;
min-height: 26px;
padding: 3px 10px;
font-family: DIN Alternate, Arial, sans-serif;
color: #dff8ff;
border: 1px solid rgba(0, 212, 255, 0.24);
border-radius: 999px;
background: rgba(2, 8, 23, 0.6);
box-shadow: inset 0 0 12px rgba(0, 212, 255, 0.06);
}
.tech-coordinate {
color: #a7f3d0;
border-color: rgba(16, 185, 129, 0.26);
}
.tech-action-buttons {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
.el-button.is-link {
height: 26px;
padding: 0 8px;
color: #67e8f9;
border: 1px solid rgba(0, 212, 255, 0.2);
border-radius: 999px;
background: rgba(14, 165, 233, 0.08);
}
}
.el-dropdown-link {
display: inline-flex;
align-items: center;
color: #67e8f9;
cursor: pointer;
}
}
.equipment-alarm-page {
.equipment-tech-header {
border-color: rgba(245, 158, 11, 0.32);
background:
linear-gradient(90deg, rgba(54, 23, 8, 0.86), rgba(4, 15, 32, 0.72)),
radial-gradient(circle at 18% 20%, rgba(245, 158, 11, 0.18), transparent 36%);
}
.equipment-tech-kicker,
.equipment-tech-title {
color: #fed7aa;
text-shadow: 0 0 18px rgba(245, 158, 11, 0.34);
}
}
.equipment-tech-dropdown {
border: 1px solid rgba(0, 212, 255, 0.22) !important;
background: rgba(5, 16, 32, 0.96) !important;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.42), 0 0 22px rgba(0, 212, 255, 0.12) !important;
.el-dropdown-menu {
background: transparent;
}
.el-dropdown-menu__item {
color: #dff8ff;
}
.el-dropdown-menu__item:not(.is-disabled):focus,
.el-dropdown-menu__item:not(.is-disabled):hover {
color: #67e8f9;
background: rgba(14, 165, 233, 0.16);
}
.el-popper__arrow::before {
border-color: rgba(0, 212, 255, 0.22) !important;
background: rgba(5, 16, 32, 0.96) !important;
}
}
@media (max-width: 768px) {
.equipment-tech-page {
padding: 12px;
.equipment-tech-header {
align-items: flex-start;
flex-direction: column;
}
.equipment-tech-header-line {
width: 100%;
margin-bottom: 0;
}
}
}
@keyframes equipmentGridDrift {
0% {
background-position: 0 0, 0 0;
}
100% {
background-position: 68px 68px, 68px 68px;
}
}
@keyframes equipmentScanLine {
0%, 42% {
transform: translateX(-120%);
}
72%, 100% {
transform: translateX(120%);
}
}
@keyframes equipmentCardGlint {
0%, 48% {
transform: translateX(0);
opacity: 0;
}
58% {
opacity: 1;
}
100% {
transform: translateX(390%);
opacity: 0;
}
}
@keyframes equipmentDotBreath {
0%, 100% {
opacity: 0.62;
transform: scale(0.86);
}
50% {
opacity: 1;
transform: scale(1.18);
}
}

130
src/style/loading-tech.scss Normal file
View File

@@ -0,0 +1,130 @@
@keyframes gvaLoadingFadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes gvaLoadingSpin {
to {
transform: rotate(360deg);
}
}
@keyframes gvaLoadingPulse {
0%,
100% {
opacity: 0.72;
}
50% {
opacity: 1;
}
}
@keyframes gvaLoadingOrbit {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.el-loading-mask.gva-tech-loading,
.gva-tech-app .el-loading-mask {
animation: gvaLoadingFadeIn 0.22s ease;
background:
radial-gradient(circle at 50% 40%, rgba(0, 212, 255, 0.1), transparent 38%),
rgba(2, 8, 23, 0.42) !important;
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
.el-loading-mask.gva-tech-loading.gva-tech-loading--fullscreen {
background:
radial-gradient(circle at 50% 38%, rgba(0, 212, 255, 0.14), transparent 40%),
rgba(2, 8, 23, 0.58) !important;
}
.el-loading-mask.gva-tech-loading .el-loading-spinner,
.gva-tech-app .el-loading-mask .el-loading-spinner {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 14px;
min-width: 148px;
padding: 24px 28px 20px;
margin-top: 0;
border: 1px solid rgba(0, 212, 255, 0.22);
border-radius: 18px;
background:
linear-gradient(145deg, rgba(10, 28, 54, 0.96), rgba(4, 14, 30, 0.92));
box-shadow:
0 22px 48px rgba(0, 0, 0, 0.34),
0 0 28px rgba(0, 212, 255, 0.1),
inset 0 0 28px rgba(0, 212, 255, 0.05);
.circular {
display: none !important;
}
&::before {
content: '';
width: 44px;
height: 44px;
border: 2px solid rgba(0, 212, 255, 0.12);
border-top-color: #00d4ff;
border-right-color: rgba(103, 232, 249, 0.55);
border-radius: 50%;
animation: gvaLoadingSpin 0.85s linear infinite;
box-shadow: 0 0 18px rgba(0, 212, 255, 0.22);
}
&::after {
position: absolute;
top: 18px;
left: 50%;
width: 56px;
height: 56px;
margin-left: -28px;
content: '';
border: 1px dashed rgba(0, 212, 255, 0.16);
border-radius: 50%;
animation: gvaLoadingOrbit 2.4s linear infinite;
pointer-events: none;
}
.el-loading-text {
position: relative;
z-index: 1;
margin: 0 !important;
padding-top: 2px;
font-size: 13px;
font-weight: 600;
line-height: 1.4;
color: #dceeff !important;
letter-spacing: 0.1em;
text-shadow: none;
animation: gvaLoadingPulse 1.6s ease-in-out infinite;
}
}
@media (prefers-reduced-motion: reduce) {
.el-loading-mask.gva-tech-loading,
.gva-tech-app .el-loading-mask {
animation: none;
}
.el-loading-mask.gva-tech-loading .el-loading-spinner::before,
.el-loading-mask.gva-tech-loading .el-loading-spinner::after,
.el-loading-mask.gva-tech-loading .el-loading-spinner .el-loading-text {
animation: none !important;
}
}

View File

@@ -1,6 +1,7 @@
@use '@/style/iconfont.css';
@use './transition.scss';
@use './equipment-tech.scss';
@use './page-tech-compat.scss';
:root {
--tech-bg: #07111f;
@@ -10,9 +11,9 @@
--tech-panel-strong: rgba(2, 8, 23, 0.92);
--tech-border: rgba(0, 212, 255, 0.22);
--tech-border-strong: rgba(0, 212, 255, 0.48);
--tech-text: #e0f7ff;
--tech-text-strong: #f4fbff;
--tech-text-muted: rgba(191, 226, 255, 0.72);
--tech-text: #eefbff;
--tech-text-strong: #ffffff;
--tech-text-muted: rgba(220, 243, 255, 0.88);
--tech-cyan: #00d4ff;
--tech-blue: #3b82f6;
--tech-amber: #f59e0b;
@@ -38,8 +39,9 @@ html.dark {
--tech-panel-soft: rgba(15, 23, 42, 0.82);
--tech-panel-strong: rgba(2, 8, 23, 0.94);
--tech-border: rgba(0, 212, 255, 0.28);
--tech-text: #e0f7ff;
--tech-text-muted: rgba(191, 226, 255, 0.72);
--tech-text: #eefbff;
--tech-text-strong: #ffffff;
--tech-text-muted: rgba(220, 243, 255, 0.88);
}
.html-grey {
@@ -429,7 +431,9 @@ html.dark {
@apply p-4 rounded my-2;
.el-table {
@apply border-x border-t border-b-0 rounded border-table-border border-solid -mx-[1px];
margin-top: 2px;
border: 1px solid rgba(0, 212, 255, 0.12);
border-radius: 12px;
}
}

View File

@@ -0,0 +1,141 @@
// 业务页面与框架科技风主题的兼容层,覆盖旧页面中硬编码的浅色背景与文字色。
.gva-tech-layout {
.text-slate-700,
.text-gray-700,
.text-gray-600 {
color: var(--tech-text) !important;
}
.text-slate-500,
.text-slate-400,
.text-slate-300,
.text-gray-500 {
color: var(--tech-text-muted) !important;
}
.project-overview {
min-height: calc(100% - 12px) !important;
padding: 12px !important;
color: var(--tech-text) !important;
background: transparent !important;
}
.overview-card,
.alarm-list,
.alarm-trend,
.alarm-card,
.alarm-table-box,
.echarts-box > .item {
color: var(--tech-text) !important;
border: 1px solid rgba(0, 212, 255, 0.22) !important;
border-radius: 12px !important;
background:
linear-gradient(135deg, rgba(9, 24, 48, 0.88), rgba(5, 16, 32, 0.76)),
radial-gradient(circle at 100% 0%, rgba(0, 212, 255, 0.08), transparent 34%) !important;
box-shadow: inset 0 0 24px rgba(0, 212, 255, 0.05), 0 14px 34px rgba(0, 0, 0, 0.24) !important;
}
.map-container {
border-color: rgba(0, 212, 255, 0.18) !important;
background: rgba(2, 8, 23, 0.62) !important;
}
.alarm-title,
.list-title,
.project-name,
.project-option-name,
.alarm-stat-value,
.process-sub-value,
.echarts-box .title {
color: var(--tech-text-strong) !important;
}
.tab,
.alarm-stat-label,
.alarm-labels,
.project-address,
.project-option-address,
.process-label,
.fullscreen-icon,
.device-location,
.device-channels,
.device-alarm {
color: #dceeff !important;
}
.tab {
&:hover,
&.active {
color: #67e8f9 !important;
}
&.active::after {
background: var(--tech-cyan) !important;
box-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
}
}
.dot {
background: var(--tech-cyan) !important;
box-shadow: 0 0 10px rgba(0, 212, 255, 0.5);
}
.alarm-values .value-item,
.alarm-stat-value {
color: var(--tech-text-strong) !important;
}
.project-radio-item {
border-color: rgba(0, 212, 255, 0.18) !important;
background: rgba(2, 8, 23, 0.42) !important;
&.is-checked {
border-color: rgba(0, 212, 255, 0.56) !important;
background: rgba(0, 212, 255, 0.12) !important;
}
}
.process-divider {
background: rgba(0, 212, 255, 0.18) !important;
}
.device-grid,
.container-device,
.gva-search-box,
.gva-table-box {
color: var(--tech-text) !important;
}
.device-grid .device-name {
color: var(--tech-text-strong) !important;
}
.el-descriptions__label,
.el-descriptions__content,
.el-descriptions__cell {
color: var(--tech-text) !important;
}
.map-device-marker {
color: var(--tech-text) !important;
border-color: rgba(0, 212, 255, 0.56) !important;
background: rgba(5, 16, 32, 0.92) !important;
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28), 0 0 16px rgba(0, 212, 255, 0.16) !important;
}
.device-grid,
.container-device {
background: transparent !important;
}
.device-grid .device-card,
.profile-container > .bg-white,
.profile-card {
color: var(--tech-text) !important;
border-color: rgba(0, 212, 255, 0.22) !important;
background:
linear-gradient(135deg, rgba(9, 24, 48, 0.88), rgba(5, 16, 32, 0.76)),
radial-gradient(circle at 100% 0%, rgba(0, 212, 255, 0.08), transparent 34%) !important;
box-shadow: inset 0 0 24px rgba(0, 212, 255, 0.05), 0 14px 34px rgba(0, 0, 0, 0.24) !important;
}
}

117
src/style/table-tech.scss Normal file
View File

@@ -0,0 +1,117 @@
// 全局表格柔和化:降低对比、增加过渡与留白,避免工业风表格显得生硬。
.gva-tech-app,
.gva-tech-layout,
.equipment-tech-page {
.gva-table-box,
.alarm-table-box,
.alarm-list,
.gva-form-box {
.el-table {
border-radius: 12px;
overflow: hidden;
}
}
.el-table {
--el-table-border-color: rgba(0, 212, 255, 0.1);
--el-table-header-bg-color: rgba(8, 27, 54, 0.72);
--el-table-row-hover-bg-color: rgba(0, 212, 255, 0.08);
--el-table-current-row-bg-color: rgba(0, 212, 255, 0.12);
--el-table-tr-bg-color: transparent;
--el-table-bg-color: transparent;
--el-table-header-text-color: rgba(191, 226, 255, 0.92);
color: var(--tech-text);
font-size: 13px;
background: transparent;
&::before,
&::after,
.el-table__inner-wrapper::before {
background-color: rgba(0, 212, 255, 0.1);
}
th.el-table__cell {
padding: 10px 0;
color: rgba(191, 226, 255, 0.92) !important;
border-bottom: 1px solid rgba(0, 212, 255, 0.14) !important;
background: rgba(8, 27, 54, 0.72) !important;
.cell {
padding: 0 14px;
color: inherit !important;
font-size: 12px;
font-weight: 600;
line-height: 1.5;
letter-spacing: 0.04em;
text-shadow: none;
}
}
td.el-table__cell {
padding: 11px 0;
color: var(--tech-text) !important;
border-bottom: 1px solid rgba(0, 212, 255, 0.08) !important;
background: rgba(2, 8, 23, 0.22) !important;
transition: background-color 0.22s ease, box-shadow 0.22s ease, color 0.22s ease;
.cell {
padding: 0 14px;
color: inherit !important;
font-size: 13px;
font-weight: 400;
line-height: 1.55;
text-shadow: none;
}
}
.el-table__body tr {
transition: background-color 0.22s ease;
}
.el-table__row:hover > td.el-table__cell {
color: #f4fbff !important;
background: rgba(0, 212, 255, 0.08) !important;
box-shadow: inset 3px 0 0 rgba(0, 212, 255, 0.55);
}
&.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
background: rgba(255, 255, 255, 0.025) !important;
}
&.el-table--striped .el-table__body tr.el-table__row--striped:hover > td.el-table__cell {
background: rgba(0, 212, 255, 0.1) !important;
}
&.el-table--border {
border: 1px solid rgba(0, 212, 255, 0.12) !important;
.el-table__cell {
border-right: 1px solid rgba(0, 212, 255, 0.06) !important;
}
th.el-table__cell,
td.el-table__cell {
border-bottom: 1px solid rgba(0, 212, 255, 0.08) !important;
}
}
.el-table__fixed,
.el-table__fixed-right,
.el-table__fixed-header-wrapper,
.el-table__fixed-body-wrapper,
.el-table__fixed-right-patch {
background: rgba(5, 16, 32, 0.96);
}
.el-table__empty-block {
min-height: 120px;
background: transparent;
}
.el-table__empty-text {
color: rgba(191, 226, 255, 0.56);
font-size: 13px;
}
}
}